Hello,
My custom board is unable to boot. Uboot starts but as soon as Normal Boot happens it errors out and keeps boot looping
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 2400MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
WDT: Not found!
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE: BL31: v2.4(release):lf-5.10.35-2.0.0-rc2-0-gec35fef92
NOTICE: BL31: Built : 09:05:55, May 28 2021
U-Boot 2021.04-5.10.35-2.0.0+g3463140881 (Jun 08 2021 - 01:39:44 +0000)
CPU: i.MX8MNano Quad rev1.0 1400 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 37C
Reset cause: POR
Model: NXP i.MX8MNano DDR4 EVK board
DRAM: 2 GiB
tcpc_init: Can't find device id=0x52
setup_typec: tcpc port2 init failed, err=-19
tcpc_init: Can't find device id=0x50
setup_typec: tcpc port1 init failed, err=-19
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment
[*]-Video Link 0adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
mxs_video lcd-controller@32e00000: failed to get any video link display timings
probe video device failed, ret -22
[0] lcd-controller@32e00000, video
[1] dsi_controller@32e10000, video_bridge
[2] adv7535@3d, panel
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
mxs_video lcd-controller@32e00000: failed to get any video link display timings
probe video device failed, ret -22
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
BuildInfo:
- ATF ec35fef
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:
Error: ethernet@30be0000 address not set.
Error: ethernet@30be0000 address not set.
No ethernet found.
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
starting USB...
Bus usb@32e40000: dev_get_parent_plat: null device
"Synchronous Abort" handler, esr 0x96000004
elr: 0000000040248510 lr : 0000000040248504 (reloc)
elr: 0000000054d65510 lr : 0000000054d65504
x0 : 0000000014009940 x1 : 0000000000000001
x2 : 0000000054d47150 x3 : 0000000000000001
x4 : 0000000000000013 x5 : 0000000000000020
x6 : 00000000ffffffd0 x7 : 0000000000000003
x8 : 0000000000000000 x9 : 000000000b1d5339
x10: 0020000000000000 x11: 0000000052d10acc
x12: 0000000000000006 x13: 000000000001869f
x14: 0000000052d11930 x15: 0000000000000002
x16: 0000000054d6a004 x17: 0000000000004540
x18: 0000000052d1cdb0 x19: 0000000000000001
x20: 0000000000000000 x21: 0000000052d10b2f
x22: 0000000000000000 x23: 000000000000001d
x24: 0000000054deed38 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000052d33110 x29: 0000000052d10a60
Code: 97ffac86 aa0003e8 f9400000 f940380a (f9400140)
Resetting CPU ...
resetting ...
I'm not sure what's going on. This custom board uses the same reference design as the 8MNANOD4-EVK
Bringing this backup,
I tried this again with i.MX Linux Yocto Project BSP 5.10.72_2.2.0 Release
I applied a ddr4_timing.c update.
My board has a control impedance of 50 ohms for all single ended lines. The MX8M_Nano_DDR4_RPA_v8.xlsx sheet does not support this number so I set all the impedance to 60 ohms which is close. I ran it through the ddr4 tool and it seems to finish running the stress test successfully. Generated the ddr4_timing.c and applied it to u-boot-imx and compiled it using "bitbake -c compile -f u-boot-imx"; then running "imx-image-multimedia". Used uuu to flash to emmc.
My board also use the BD71837MWV-E2 for the PMIC. I'm not sure if any extra configuration is required for this.
I'm still getting
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
starting USB...
Bus usb@32e40000: dev_get_parent_plat: null device
"Synchronous Abort" handler, esr 0x96000004
elr: 00000000402491a8 lr : 000000004024919c (reloc)
elr: 00000000bed601a8 lr : 00000000bed6019c
x0 : 0000000014009940 x1 : 0000000000000001
x2 : 00000000bed411fc x3 : 0000000000000001
x4 : 0000000000000013 x5 : 0000000000000020
x6 : 00000000ffffffd0 x7 : 0000000000000003
x8 : 0000000000000000 x9 : 00000000b381c5af
x10: 0000000100000000 x11: 00000000bcd0afcc
x12: 0000000000000006 x13: 000000000001869f
x14: 00000000bcd0be30 x15: 0000000000000002
x16: 00000000bed64cfc x17: 0000000000004540
x18: 00000000bcd16db0 x19: 0000000000000001
x20: 0000000000000000 x21: 00000000bcd0b02f
x22: 0000000000000000 x23: 000000000000001d
x24: 00000000bedee978 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000bcd2c760 x29: 00000000bcd0af60
Code: 97ffa98b aa0003e8 f9400000 f940380a (f9400140)
Resetting CPU ...
resetting ...
I've look at my schematic, USB1_VBUS is not directly connected to a 5V VBUS source, it would come from any usb device that provides 5V.
Hi,
Can I consult how you fixed the problem ?
My board suddenly gets the same boot looping failure even if I program the official pre-built image into by using uuu
What shall I do to check it step by step ?
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 2400MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
WDT: Not found!
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE: BL31: v2.4(release):lf-5.10.35-2.0.0-rc1-12-gec35fef92
NOTICE: BL31: Built : 09:05:55, May 28 2021
U-Boot 2021.04-5.10.35-2.0.0+g3463140881 (Jun 08 2021 - 01:39:44 +0000)
CPU: i.MX8MNano Quad rev1.0 1500 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 43C
Reset cause: POR
Model: NXP i.MX8MNano DDR4 EVK board
DRAM: 2 GiB
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x52 retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x30a30000
tcpc_init: Can't find device id=0x52
setup_typec: tcpc port2 init failed, err=-19
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x50 retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x30a30000
tcpc_init: Can't find device id=0x50
setup_typec: tcpc port1 init failed, err=-19
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
[*]-Video Link 0wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x3c retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x30a30000
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
mxs_video lcd-controller@32e00000: failed to get any video link display timings
probe video device failed, ret -22
[0] lcd-controller@32e00000, video
[1] dsi_controller@32e10000, video_bridge
[2] adv7535@3d, panel
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x3c retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x30a30000
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
mxs_video lcd-controller@32e00000: failed to get any video link display timings
probe video device failed, ret -22
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
BuildInfo:
- ATF ec35fef
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net: eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
starting USB...
Bus usb@32e40000: dev_get_parent_plat: null device
"Synchronous Abort" handler, esr 0x8600000e
elr: ffffffffff4ec940 lr : 0000000040248634 (reloc)
elr: 0000000014009940 lr : 0000000054d65634
x0 : 0000000000000000 x1 : 0000000052d10ac0
x2 : 0000000000000001 x3 : 0000000052d10ac0
x4 : 0000000014009940 x5 : 0000000000000000
x6 : 0000000014009940 x7 : 0000000000000000
x8 : 0000000000000000 x9 : 000000008a19706d
x10: 0000000000000000 x11: 0000000052d10acc
x12: 0000000000000006 x13: 000000000001869f
x14: 0000000052d11930 x15: 0000000000000002
x16: 0000000054d6a004 x17: 0000000000004540
x18: 0000000052d1cdb0 x19: 0000000000000001
x20: 0000000000000000 x21: 0000000052d10b2f
x22: 0000000000000000 x23: 000000000000001d
x24: 0000000054deed38 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000052d4bdf0 x29: 0000000052d10a60
Code: 00000000 00000000 00000000 00000000 (00000000)
Resetting CPU ...
It seems there's a usb HW issue.
u-boot=> usb start
starting USB...
Bus usb@32e40000: dev_get_parent_plat: null device
"Synchronous Abort" handler, esr 0x8600000e
elr: ffffffffff4ec940 lr : 0000000040248634 (reloc)
elr: 0000000014009940 lr : 0000000054d65634
x0 : 0000000000000000 x1 : 0000000052d114e0
x2 : 0000000000000001 x3 : 0000000052d114e0
x4 : 0000000014009940 x5 : 0000000000000000
x6 : 0000000014009940 x7 : 0000000000000000
x8 : 0000000000000000 x9 : 00000000bbdd704a
x10: 0000000000000000 x11: 0000000052d114ec
x12: 0000000000000006 x13: 000000000001869f
x14: 0000000052d11930 x15: 0000000000000002
x16: 0000000054d6a004 x17: 0000000000004540
x18: 0000000052d1cdb0 x19: 0000000000000001
x20: 0000000000000000 x21: 0000000052d1154f
x22: 0000000000000000 x23: 000000000000001d
x24: 0000000054deed38 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000052d2eb50 x29: 0000000052d11480
Code: 00000000 00000000 00000000 00000000 (00000000)
Resetting CPU ...
resetting ...
Hi Stephen
one can run ddr test (use latest RPA tool) and update image as described in MSCALE_DDR_Tool_User_Guide document from that link
Best regards
igor
I redid the tool and used the latest .bin file for ddr4 and got this:
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
starting USB...
Bus usb@32e40000: USB EHCI 1.00
Bus usb@32e50000: "Synchronous Abort" handler, esr 0x96000210
elr: 0000000040256a2c lr : 0000000040256a2c (reloc)
elr: 0000000054d75a2c lr : 0000000054d75a2c
x0 : 0000000002377f34 x1 : 00000000000f4240
x2 : 00000000303844d4 x3 : 0000000030380000
x4 : 0000000011000000 x5 : 0000000000000000
x6 : 0000000000000000 x7 : 0000000000000000
x8 : 0000000000000001 x9 : 00000000271a1a24
x10: 0000000000001564 x11: 0000000052d1290c
x12: 0000000000001520 x13: 0000000052d129cc
x14: 0000000052d13930 x15: 0000000000000021
x16: 0000000054d4db9c x17: 0000000000004540
x18: 0000000052d1edb0 x19: 0000000000000001
x20: 0000000032e50000 x21: 0000000052d228c0
x22: 0000000032e50000 x23: 0000000000000000
x24: 0000000052d35680 x25: 0000000052d13930
x26: 0000000000007094 x27: 0000000000000000
x28: 0000000052d35240 x29: 0000000052d12a90
Code: 52800020 97fec0a0 d2807d00 9400a9c5 (b9418680)
Resetting CPU ...
resetting ...
It sees the USB now but still errors out
one can check usb power supplies: VDD_USB_3P3, VDD_USB_1P8, VDD_USB_0P8
and connections of USB1_TXRTUNE,USB1_VBUS using Table 8. USB recommendations
i.MX 8M Nano Hardware Developer’s Guide
Best regards
igor
Reviewing our hardware schematics it is correct.
A little more detail. I'm using the latest LF5.10.35_2.0.0 linux kernel in the i.MX yocto project.
I'm only simply building core-image-minimal and flashing the eMMC using the uuu.exe tool in usb serial download mode.
After the fact I would switch it to usb boot mode.
I attached the serial output using a fresh yocto project building for imx8mn-ddr4-evk machine.
Also using the industrial version of the processor instead. Also the pre built binary L5.4.70-2.3.0 boots all the way to login prompt. Is there a difference preventing the latest release from not booting at all?
> pre built binary L5.4.70-2.3.0 boots all the way to login prompt..
if prebuilt (Demo) image works fine on custom board, one can try to build
image without additional modificiations, use i.MX Yocto Project User’s Guide
Best regards
igor
The Yocto Project for that build works. I'm just wondering if anything would be the main cause of that issue. Would it be mainly in the u-boot versions? or would it be something else.
regarding "u-boot versions", for L5.10.35_2.0.0 should be used v2021.04 uboot version described
in official NXP Release Notes document i.MX Linux Release Notes
Best regards
igor