imx8mm change lpddr4 size

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx8mm change lpddr4 size

2,510件の閲覧回数
edayes
Contributor I

Hello, we are trying to develop our own custom development board based on the imx8mm-evk board. We are using Yocto Project to build the operating system. In the LPDDR4 section of the SOM card, the original design uses a 16-gigabit 2GB memory, but due to component availability, we are using a 12-gigabit memory. When I try to boot from the SD card, I get the following information, and then U-Boot doesn't start, it remains like this. What changes do I need to make to resolve this? Can you assist me?

 

U-Boot SPL 2022.04-lf_v2022.04+g181859317b (Nov 15 2022 - 06:28:05 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
Trying to boot from MMC1
NOTICE: BL31: v2.6(release):automotive-13.0.0_1.1.0-0-g3c1583ba0
NOTICE: BL31: Built : 11:00:38, Nov 21 2022

 

0 件の賞賛
返信
5 返答(返信)

2,456件の閲覧回数
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @edayes,

I hope you are doing well.

For different DDR parts, one needs to fill the RPA file using the information given in the datasheet to generate .ds script.

i.MX 8M Family DDR Tool Release

Using that one needs to perform a DDR stress test using MSCALE DDR Tool. It will generate lpddr4_timing.c source code for u-boot. which should be replaced in the /boards directory.

One needs to make changes at multiple places to modify DDR size.

-> memory node under the device tree.
->  PHYS_SDRAM_SIZE in /include/configs/imx8mm_evk.h [u-boot].
->  BL32_BASE  in imx-atf [ATF].
-> CFG_DDR_SIZE in plat-imx/conf.mk if OP_TEE is enabled [imx-optee-os].

I hope it helps!

Thanks & Regards,
Dhruvit Vasavada

0 件の賞賛
返信

2,418件の閲覧回数
edayes
Contributor I

hi @Dhruvit 

I performed a DDR stress test using the MSCALE DDR tool, and the test was successful. I replaced the generated lpddr4_timing.c file with my own file. I set 'Phy_sdram_size' to 0x60000000 for 12 gigabits. However, I couldn't find how to calculate and change the 'bl32_base' value in the 'imx-atf' folder for 12 gigabits. However, I couldn't find how to change the bl32_base value in the imx-atf folder. The system still remains in the same place. How should I calculate the changes in different locations? Can you provide more details?

0 件の賞賛
返信

2,404件の閲覧回数
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @edayes,

I hope you are doing well.

BL32_BASE needs to be changed at /plat/imx/imx8m/imx8mm/platform.mk in imx-atf.

it can be calculated as below.

BL32_BASE = DRAM_BASE +  DRAM_SIZE - 0x02000000 

In your case, BL32_BASE should be 0x9E000000

One needs to also change TEE_LOAD_ADDR to 0x9E000000 at /iMX8M/ soc.mak in imx-boot

Please mention the UART used for debug console.

Thanks & Regards,
Dhruvit Vasavada

0 件の賞賛
返信

2,373件の閲覧回数
edayes
Contributor I

I made the following changes for the 12Gbit RAM modification:

  • PHYS_SDRAM_SIZE in /include/configs/imx8mm_evk.h set to 0x60000000
  • BL32_BASE in imx-atfset to 0x9E000000
  •  TEE_LOAD_ADDR set to 0x9E000000 at /iMX8M/ soc.mak in imx-boot
  • CFG_DDR_SIZE in plat-imx/conf.mk set to 0x60000000 I also made the following settings in the dtsi file:
   device_type = "memory"; reg = <0x0 0x40000000 0 0x60000000>;

 

I successfully performed the stress test. I replaced the lpddr4_timing.c file with my own version in my folder and built it.

However, it still doesn't work. U-boot does not open. Is there something I missed or did wrong? I would appreciate it if you could help me.

0 件の賞賛
返信

2,333件の閲覧回数
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @edayes,

I hope you are doing well.

Can you please mention which uart port is used for debug logs?

Please try to get debug logs after adding CONFIG_LOG_MAX_LEVEL=7 in u-boot defconfig.

in which folder, you have put  lpddr4_timing.c file?

Please provide me with u-boot defconfig for further debugging.

Thanks & Regards,
Dhruvit Vasavada

0 件の賞賛
返信