Hello, I've got a custom board using i.MX 91 and 16Gbit LPDDR4 (Micron MT53E1G16D1FW-046 WT:A).
We do have DDR tool "i.MX_CFG_v13_EAR1_MX93" and USer guide as "DDR tool User Guide_v13_EAR1".
Using this we have geberated the ddr_timing.c file. This ddr_timing.c file we have used in spl_uboot for DDR
configuration in lpddr4 mode.
We able to build the uboot. but after power on we getting stuck un spl_uboot only as below
"
U-Boot SPL 2022.04-lf_v2022.04+g73b88f0342 (Mar 01 2023 - 07:35:40 +0000)
SOC: 0xa0009300
LC: 0x40010
M33 prepare ok
Trying to boot from BOOTROM
Boot Stage: Primary boot
Load image from 0x48c00 by ROM_API
NOTICE: BL31: v2.6(release):lf-6.1.1-1.0.0-0-g616a4588f
"
Note :
1. We dont have RPA for iMX91
2. We have used DDR tool "i.MX_CFG_v13_EAR1_MX93" for ddr_timing.c file creation
Could you please suggest input so that we can configure the lpddr4 mode and want to boot iMX91 ?
Still I am not able to resolve this issue
Hi @Ranjit131185,
I hope you are doing well.
Please make sure that you have performed DDR validation as mentioned in 4.3 DDR validation in User Guide for Config Tools for i.MX
Yes, I did the lpddr4 and lpddr4x mode validation.
log are as below
#################### Result for: wrc ###### Run 1 ##################################################
Microsoft Windows [Version 10.0.19044.3208]
(c) Microsoft Corporation. All rights reserved.
C:\Users\146716\shared VM\i.MX_CFG_v13_EAR1_MX93\i.MX_CFG_v13_EAR1_MX93\bin>prompt test-prefix :
test-prefix : "C:/Users/146716/shared VM/i.MX_CFG_v13_EAR1_MX93/i.MX_CFG_v13_EAR1_MX93/bin/python3/python" -m memtool.s -d "C:/Users/146716/shared VM/i.MX_CFG_v13_EAR1_MX93/i.MX_CFG_v13_EAR1_MX93/mcu_data/processors/MIMX93xx/ksdk2_0/mem_validation/ddrc" -p "C:/Users/146716/AppData/Local/Temp/1/mem_validation/phy_training_operational_tests_3_0_.log" -l INFO "C:/Users/146716/AppData/Local/Temp/1/mem_validation/connect.json" "C:/Users/146716/AppData/Local/Temp/1/mem_validation/test.json" "C:/Users/146716/AppData/Local/Temp/1/mem_validation/phy.json" "C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_registers.json" "C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_config.json" "C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_config_in.json"
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/connect.json
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/test.json
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/phy.json
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_registers.json
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_config.json
INFO memtool.utils.helper *****C:/Users/146716/AppData/Local/Temp/1/mem_validation/ddrc_config_in.json
INFO memtool.processor.imx93.imx93_processor Xls mapping load time 0.024529
INFO memtool.processor.imx93.mimx93 Config time 0.478142
INFO memtool.processor.imx93.mimx93 DS file time 0.490804
INFO memtool.phyinit.phy_init Run phyinit for 2022.01\lpddr4
INFO memtool.comm.serial_channel Using serial: COM16
INFO memtool.comm.serial_channel Send reset to target
INFO libusbsio Loading SIO library: C:\Users\146716\shared VM\i.MX_CFG_v13_EAR1_MX93\i.MX_CFG_v13_EAR1_MX93\bin\python3\libusbsio\bin\x64\libusbsio.dll
INFO libusbsio HID enumeration[1317391511520]: initialized
INFO libusbsio HID enumeration[1317391511520]: finished, total 10 devices
INFO memtool.common.sdp_interface USB scan time 0.019092
INFO libusbsio HID enumeration[1317391512336]: initialized
INFO libusbsio HID enumeration[1317391512336]: finished, total 10 devices
INFO memtool.common.sdp_interface USB scan time 0.011106
INFO spsdk.sdp.sdps Connect: OO Blank 93 (0x1FC9, 0x014E)
INFO libusbsio.hidapi.dev Opening HID device at path: 'b'\\\\?\\hid#vid_1fc9&pid_014e#6&309bbce5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}''
INFO libusbsio.hidapi.dev HID device 1317672291040 is now open
INFO libusbsio.hidapi.dev HID device 1317672291040 closed
INFO memtool.common.base_test Read app state WAIT_FOR_INPUT
INFO memtool.common.base_test Write app log level
INFO memtool.common.base_test Write app state CONFIG_RECEIVED
INFO test_app [INFO]: Execute Training Firmware for 1D pstate0@1866MHz...
INFO test_app [INFO]: Training Firmware completed for 1D pstate0@1866MHz with status 0; Execution ended in 0s.0ms.0us...
INFO test_app [INFO]: Get CDD registers for pstate 0...
INFO test_app [INFO]: Execute Training Firmware for 2D pstate0@1866MHz...
INFO test_app [INFO]: Training Firmware completed for 2D pstate0@1866MHz with status 0; Execution ended in 0s.0ms.0us...
INFO test_app Waiting for check_dfi_init_complete...
INFO test_app DFI init completed...
INFO memtool.common.base_test Read app state WAIT_FOR_INPUT
INFO memtool.common.base_test Read phy status
INFO memtool.common.base_test Read app state WAIT_FOR_INPUT
INFO memtool.common.base_test Write input param start_addr = 0x80000000
INFO memtool.common.base_test Write input param size = 33554432
INFO memtool.common.base_test Write input param params = [0xAABBCCDD,0x01234567,0xFFFFFFFF,0xAAAAAAAA,0xAABBCCDD,0x01234567,0xFFFFFFFF,0xAAAAAAAA,0xAABBCCDD,0x01234567,0xFFFFFFFF,0xAAAAAAAA,0xAABBCCDD,0x01234567,0xFFFFFFFF,0xAAAAAAAA]
INFO memtool.common.base_test Write input param flags = 16
INFO memtool.common.base_test Write input param cache = True
INFO memtool.common.base_test Write input param test = 101
INFO memtool.common.base_test Write app state INPUT_RECEIVED
INFO test_app Run WRC test for frequency point0@1866MHz...
INFO test_app [INFO]: WRC test...
INFO test_app [INFO]: WRC test ended with status PASS and 0 fails...
INFO memtool.common.base_test Read symbol app_state = 0x5588dcfe
INFO memtool.common.base_test Read symbol num_records = 0x1
INFO memtool.common.base_test App state WAIT_FOR_INPUT
INFO memtool.common.base_test Read symbol debug = [0, 0, 0, 0, 0, 0, 0, 0]
INFO memtool.common.base_test Read symbol err_capt_regs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
INFO memtool.common.base_test Read symbol debug_regs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
INFO memtool.common.base_test Read symbol state = 1
INFO memtool.common.base_test Read symbol test_id = 101
INFO memtool.common.base_test Record 0 state TestStatus.PASS
INFO memtool.common.base_test Read test data [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
INFO memtool.common.base_test Read app state WAIT_FOR_INPUT
INFO memtool.common.base_test Read phy status
INFO root Number of logged items 0xf
INFO memtool.common.base_test Test 101 finished with state 1
{'app_state': 1435032830, 'num_records': 1, 'debug': '[0, 0, 0, 0, 0, 0, 0, 0]', 'err_capt_regs': '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]', 'debug_regs': '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]', 'records': [{'state': 1, 'test_id': 101, 'data': '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'}]}
****DONE****
below screenshot of DDR validation successfully for Firmware Init Tests and Operational Tests.