After passing the DDR RAM stress test, I copy the lpdd4_timing.c to u-boot source code tree and also modify imx8mm_evk.h with the following changes
#define PHYS_SDRAM_SIZE 0x40000000 //1GB
#define CONFIG_MXC_UART_BASE UART1_BASE_ADDR//use UART1 as debug console
Then I generate a new imx-boot-imx8mmevk-sd.bin-flash_evk in Yocto.
The boot mode is set to the same as the reference design, i.e.
BOOT_CFG1,2,5,6,11 & 13 have 10Kohm pull high resistors. All other BOOT_CFG are left unconnected.
>uuu -v -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk
**************************************
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.4.191-0-g411f78f
Your console don't support VT mode, fail back to verbose mode
Build in config:
Pctl Chip Vid Pid BcdVersion
==================================================
SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff]
SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff]
SDPS: MX8DXL 0x1fc9 0x0147
SDPS: MX28 0x15a2 0x004f
SDPS: MX815 0x1fc9 0x013e
SDPS: MX865 0x1fc9 0x0146
SDPS: MX8ULP 0x1fc9 0x014a
SDPS: MX8ULP 0x1fc9 0x014b
SDP: MX7D 0x15a2 0x0076
SDP: MX6Q 0x15a2 0x0054
SDP: MX6D 0x15a2 0x0061
SDP: MX6SL 0x15a2 0x0063
SDP: MX6SX 0x15a2 0x0071
SDP: MX6UL 0x15a2 0x007d
SDP: MX6ULL 0x15a2 0x0080
SDP: MX6SLL 0x1fc9 0x0128
SDP: MX7ULP 0x1fc9 0x0126
SDP: MXRT106X 0x1fc9 0x0135
SDP: MX8MM 0x1fc9 0x0134
SDP: MX8MQ 0x1fc9 0x012b
SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff]
SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998]
SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998]
SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999]
SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff]
SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998]
FBK: 0x066f 0x9afe
FBK: 0x066f 0x9bff
FBK: 0x1fc9 0x0153
FB: 0x0525 0xa4a5
FB: 0x18d1 0x0d02
FB: 0x3016 0x0001
FB: 0x1fc9 0x0152
Run built-in script:
uuu_version 1.2.39
# @_flash.bin | bootloader
# @_image [_flash.bin] | image burn to emmc, default is the same as bootloader
# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# This command will be run when ROM support stream mode
# i.MX8QXP, i.MX8QM
SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# These commands will be run when use SPL and will be skipped if no spl
# SDPU will be deprecated. please use SDPV instead of SDPU
# {
SDPU: delay 1000
SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00
SDPU: jump
# }
# These commands will be run when use SPL and will be skipped if no spl
# if (SPL support SDPV)
# {
SDPV: delay 1000
SDPV: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -skipspl
SDPV: jump
# }
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
FB: Done
Wait for Known USB Device Appear...
New USB Device Attached at 1:1
1:1>Start Cmd:SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
100%1:1>Okay (1.296s)
New USB Device Attached at 1:1
1:1>Start Cmd:SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
100%1:1>Okay (1.301s)
**************************************
The image is downloaded to the SoC several times but cannot be programmed to the eMMC.
Can anyone give me any hints how to resolve it?
Solved! Go to Solution.
Hello,
In your custom board do you have a type-C connector as in the EVK?
You may refer to the following community thread:
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MM-i-MX8MQ-USB2-0-Design-Without-US...
Best regards,
Aldo.
Hello,
Could you share the UART log when trying to flash uboot?
BR,
Aldo.
Hi Aldo,
Please see the log below.
U-Boot SPL 2021.04-5.10.35-2.0.0+g3463140881 (Jun 08 2021 - 01:39:44 +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 USB SDP
g_dnl_register: failed!, error: -19
SDP dnl register failed: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
Please advise.
Hi Aldo,
Enable the debug messages in spl.c but it seems useless.
U-Boot SPL 2021.04-5.10.35-2.0.0+g3463140881 (Jan 20 2022 - 19:35:03 +0800)
spl_init
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
>>SPL: board_init_r()
SEC0: RNG instantiated
Normal Boot
Trying to boot from USB SDP
g_dnl_register: g_dnl_driver.name = usb_dnl_sdp
g_dnl_register: failed!, error: -19
SDP dnl register failed: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
error code 19 is no device.
I use the information of the article (https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Manually-build-Boot-binary-for-i-MX8M-Mi... to create the flash.bin again but the same result.
As I use USB to download the flash.bin successfully, I do not understand why SPL cannot find the USB. Please help.
Hello,
In your custom board do you have a type-C connector as in the EVK?
You may refer to the following community thread:
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MM-i-MX8MQ-USB2-0-Design-Without-US...
Best regards,
Aldo.