Cannot load images on custom IMX8ULP board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Cannot load images on custom IMX8ULP board

Jump to solution
1,832 Views
jeanpihet
Contributor II

Hi!

We are trying to bring-up a custom board based on the IMX8ULP chip.

There is an issue when loading the images using UUU via USB. Loading fails; no output can be seen on the debug UART.

Board details:

  • IMX8ULP A2 chip revision,
  • Type-C USB1 interface to UUU,
  • UART5 has different pinmux than on EVK,
  • switch button to force USB boot mode.

Loading the U-Boot image (flash.bin) fails at 19% and then USB disconnects.

$ sudo ./uuu -V flash.bin
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.233-0-g79ce7d2

Build in config:
Pctl Chip Vid Pid BcdVersion Serial_No
==================================================
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
SDPS: MX93 0x1fc9 0x014e
SDPS: MX91 0x1fc9 0x0159
SDPS: MX95 0x1fc9 0x015d
SDPS: MX95 0x1fc9 0x015c
SDPS: MX943 0x1fc9 0x0027
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
FB: 0x0483 0x0afb
Wait for Known USB Device Appear...
New USB Device Attached at 1:21-E4DD206F132A48BD
1:21-E4DD206F132A48BD>Start Cmd:SDPS: boot -f "flash.bin"
19%1:21-E4DD206F132A48BD>Fail HID(W): LIBUSB_ERROR_IO (-1)(0.211s)

 

flash.bin has been generated using the imx-mkimage tool, from u-boot and pre-built images, like explained at:

https://community.nxp.com/t5/i-MX-Processors/i-MX8ULP-CPU-Rev-A2-Boot-failed/td-p/1710617.
make SOC=iMX8ULP flash_singleboot_m33

 

Note: loading only the U-Boot SPL image works OK but no output can be seen on the UART, no UUU command is accepted.

$ sudo ./uuu -V boot-spl-container.img 
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.233-0-g79ce7d2

Build in config:
	Pctl	 Chip		 Vid	 Pid	 BcdVersion	 Serial_No
	==================================================
	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
	SDPS:	 MX93		 0x1fc9	 0x014e
	SDPS:	 MX91		 0x1fc9	 0x0159
	SDPS:	 MX95		 0x1fc9	 0x015d
	SDPS:	 MX95		 0x1fc9	 0x015c
	SDPS:	 MX943		 0x1fc9	 0x0027
	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
	FB:	 		 0x0483	 0x0afb
Wait for Known USB Device Appear...
New USB Device Attached at 1:21-E4DD206F132A48BD
1:21-E4DD206F132A48BD>Start Cmd:SDPS: boot -f "boot-spl-container.img"
100%1:21-E4DD206F132A48BD>Okay (0.213s)
1:21-E4DD206F132A48BD>Start Cmd:SDPS: done
1:21-E4DD206F132A48BD>Okay (0s)

 

Can you please help to debug the issue? What can be checked further?

Is the A2 revision on issue with the UUU and imx-mkimage utilities?

 

Thank you very much!

Regards,

Jean

 

BP-IMX8PULP-POC 

0 Kudos
Reply
1 Solution
1,551 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @jeanpihet,

 

In the i.MX Porting Guide (UG10165), section 3.2.1 explains how DDR init varies by SoC family. “Point 6” there says that i.MX8M parts rely on U‑Boot SPL to initialize DDR (not DCD), and that users must modify the SPL DDR PHY/controller code. That statement is about 8M devices specifically. 


For i.MX8ULP, the boot flow is similar to 8M in that DDR is initialized by U‑Boot SPL, not by a DCD table in U‑Boot proper. The flash.bin built by imx‑mkimage contains two AHAB container sets:

a first set that the ROM loads to OCRAM (SPL + uPower + ELE firmware), and a second set (U‑Boot proper + TF‑A) that SPL loads to DDR after SPL has initialized DDR.
Practically, this means you customize/tune DDR in the SPL code for i.MX8ULP (just as with 8M), not in a DCD inside U‑Boot proper.

 

Does U‑Boot SPL for 8ULP already provide DDR init? If not, where do I update it?

Yes. For 8ULP, the SPL path is responsible for bringing up DDR. You’ll find the DDR init hooks under the SPL portions of the NXP U‑Boot tree for your board/SOC (board directory + arch/arm/mach-imx/… + 8ULP-specific DDR PHY/controller glue). That SPL then loads the second container (TF‑A + U‑Boot proper) into the freshly initialized DDR

Booting & flashing over USB (UUU) is it supported? Which images can I boot?

Yes, UUU (Universal Update Utility) over USB is supported for i.MX8/8ULP via the Serial Download Protocol in ROM. You can load a flash.bin directly to RAM and boot it, or use a .uuu script to perform more complex sequences.

 

Is your build procedure correct?
For 8ULP you do need u-boot-spl.bin, u-boot.bin (U‑Boot proper), bl31.bin (TF‑A), upower.bin, and ELE firmware (named mx8ulpa2-ahab-container.img for A2 silicon) placed in imx-mkimage/iMX8ULP/ before running make.

So, yes — your overall steps are right for 8ULP. The only thing to double‑check is which imx‑mkimage target matches your boot type (single‑boot vs dual‑boot) and destination (RAM vs FlexSPI vs eMMC) for your bring‑up stage.

View solution in original post

7 Replies
1,794 Views
Lukas_LH
Contributor I

Hi @Chavira ,

thank you for the fast feedback!

I'm working together with @jeanpihet  on the system, and I'm responsible for the hardware side.

We successfully completed the DRAM training using the MX8ULP_DDR_Tool and generated the matching timing files.

We successfully downloaded the DRAM training image via the serial download mode while using the DDR Tool, and we also received the UART output while using the DDR Tool.

Even though we are using the generated DRAM timing file to build the u-boot script, loading the U-Boot image (flash.bin) fails at 19% and then USB disconnects.

 

Could you point us in the direction of where we should look for the issue, and how we can generate more insightful error messages?

 

Thank you!

Best,

Lukas

0 Kudos
Reply
1,693 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @Lukas_LH

 

The LPUART5 interface on the EVK is used as the default debug UART.
Can you confirm whether you are also using UART5, as on the EVK?


If you are using a different UART, have you applied the required modifications in the BSP components (ATF, U‑Boot, Linux kernel, device tree, etc.) to reflect the change?


You may also try building and flashing the image using flash_dualboot instead of flash_singleboot_m33, for example:

make SOC=iMX8ULP REV=A2 flash_dualboot

 

Please verify that you are specifying the correct silicon revision (REV=A2 or whichever applies to your board).


Additionally, could you clarify whether you are booting from eMMC or FlexSPI?
This affects the build and flashing flow.


Best regards,
Chavira

0 Kudos
Reply
1,664 Views
jeanpihet
Contributor II

Hi Chavira,

 

Thank you for your quick reply.

 

We are using UART5, as on EVK but the pin muxing is different. The U-Boot dts has been updated with the new muxing.

The option REV=A2 is used for the generation of the flash.bin image.

The boot device is eMMC (no SD) and we are trying to first boot from UUU download.

I am now trying the flash_dualboot image and checking all differences between EVK and our boards for the pin muxing etc.

 

Regards,

Jean

0 Kudos
Reply
1,655 Views
jeanpihet
Contributor II

Hi Chavira,

I have some questions related to the DDR init and U-Boot:

  • from the porting guide, point 3.2.1 Chaning DCD table for DDR init: does the point 6 apply to iMX8ULP? Does the U-Boot SPL code provides the DDR init code? If not where to update it?
  • About booting and flashing: is it supported to boot from UUU download via USB? Is it possible to boot the images 'flash.bin' and 'boot-spl-container.img', as generated by the imx-mkimage utility?

Currently these images are built by the following procedure:

  • update dts, pinmux and DDR init code in u-boot code
  • build u-boot
  • copy u-boot.bin and spl/u-boot-spl.bin to the iMX8ULP directory under imx-mkimage
  • build flash.bin and boot-spl-container.img using 'make SOC=iMX8ULP rev=A2 flash_singleboot_m33'

Is this correct?

 

Thank you for yout support!

Jean

0 Kudos
Reply
1,552 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @jeanpihet,

 

In the i.MX Porting Guide (UG10165), section 3.2.1 explains how DDR init varies by SoC family. “Point 6” there says that i.MX8M parts rely on U‑Boot SPL to initialize DDR (not DCD), and that users must modify the SPL DDR PHY/controller code. That statement is about 8M devices specifically. 


For i.MX8ULP, the boot flow is similar to 8M in that DDR is initialized by U‑Boot SPL, not by a DCD table in U‑Boot proper. The flash.bin built by imx‑mkimage contains two AHAB container sets:

a first set that the ROM loads to OCRAM (SPL + uPower + ELE firmware), and a second set (U‑Boot proper + TF‑A) that SPL loads to DDR after SPL has initialized DDR.
Practically, this means you customize/tune DDR in the SPL code for i.MX8ULP (just as with 8M), not in a DCD inside U‑Boot proper.

 

Does U‑Boot SPL for 8ULP already provide DDR init? If not, where do I update it?

Yes. For 8ULP, the SPL path is responsible for bringing up DDR. You’ll find the DDR init hooks under the SPL portions of the NXP U‑Boot tree for your board/SOC (board directory + arch/arm/mach-imx/… + 8ULP-specific DDR PHY/controller glue). That SPL then loads the second container (TF‑A + U‑Boot proper) into the freshly initialized DDR

Booting & flashing over USB (UUU) is it supported? Which images can I boot?

Yes, UUU (Universal Update Utility) over USB is supported for i.MX8/8ULP via the Serial Download Protocol in ROM. You can load a flash.bin directly to RAM and boot it, or use a .uuu script to perform more complex sequences.

 

Is your build procedure correct?
For 8ULP you do need u-boot-spl.bin, u-boot.bin (U‑Boot proper), bl31.bin (TF‑A), upower.bin, and ELE firmware (named mx8ulpa2-ahab-container.img for A2 silicon) placed in imx-mkimage/iMX8ULP/ before running make.

So, yes — your overall steps are right for 8ULP. The only thing to double‑check is which imx‑mkimage target matches your boot type (single‑boot vs dual‑boot) and destination (RAM vs FlexSPI vs eMMC) for your bring‑up stage.

1,494 Views
jeanpihet
Contributor II

Hi Chavira,

I could solve the issue in the DTS, board specific code and the right images for M33, upower etc. U-Boot now boots OK!

Thank you for your quick and efficient support! This last post is really valuable and should be pinned for other users to use it as reference.

Regards,

Jean

0 Kudos
Reply
1,804 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @jeanpihet,

Thank you for contacting NXP Support!

 

The prebuild images and source code should only works on evk boards.

Ensure DDR training is completed correctly. Verify that all DDR configurations match your board’s hardware (Linux Kernel and U-boot).

For guidance on these topics, please refer to our porting guide

Have you properly ported our BSP to match the hardware installed on your board?



Best Regards,
Chavira

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2292726%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ECannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2292726%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi!%3C%2FP%3E%3CP%3EWe%20are%20trying%20to%20bring-up%20a%20custom%20board%20based%20on%20the%20IMX8ULP%20chip.%3C%2FP%3E%3CP%3EThere%20is%20an%20issue%20when%20loading%20the%20images%20using%20UUU%20via%20USB.%20Loading%20fails%3B%20no%20output%20can%20be%20seen%20on%20the%20debug%20UART.%3C%2FP%3E%3CP%3EBoard%20details%3A%3C%2FP%3E%3CUL%3E%3CLI%3EIMX8ULP%20A2%20chip%20revision%2C%3C%2FLI%3E%3CLI%3EType-C%20USB1%20interface%20to%20UUU%2C%3C%2FLI%3E%3CLI%3EUART5%20has%20different%20pinmux%20than%20on%20EVK%2C%3C%2FLI%3E%3CLI%3Eswitch%20button%20to%20force%20USB%20boot%20mode.%3C%2FLI%3E%3C%2FUL%3E%3CP%3ELoading%20the%20U-Boot%20image%20(flash.bin)%20fails%20at%2019%25%20and%20then%20USB%20disconnects.%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%24%20sudo%20.%2Fuuu%20-V%20flash.bin%0Auuu%20(Universal%20Update%20Utility)%20for%20nxp%20imx%20chips%20--%20libuuu_1.5.233-0-g79ce7d2%0A%0ABuild%20in%20config%3A%0APctl%20Chip%20Vid%20Pid%20BcdVersion%20Serial_No%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0ASDPS%3A%20MX8QXP%200x1fc9%200x012f%20%5B0x0002..0xffff%5D%0ASDPS%3A%20MX8QM%200x1fc9%200x0129%20%5B0x0002..0xffff%5D%0ASDPS%3A%20MX8DXL%200x1fc9%200x0147%0ASDPS%3A%20MX28%200x15a2%200x004f%0ASDPS%3A%20MX815%200x1fc9%200x013e%0ASDPS%3A%20MX865%200x1fc9%200x0146%0ASDPS%3A%20MX8ULP%200x1fc9%200x014a%0ASDPS%3A%20MX8ULP%200x1fc9%200x014b%0ASDPS%3A%20MX93%200x1fc9%200x014e%0ASDPS%3A%20MX91%200x1fc9%200x0159%0ASDPS%3A%20MX95%200x1fc9%200x015d%0ASDPS%3A%20MX95%200x1fc9%200x015c%0ASDPS%3A%20MX943%200x1fc9%200x0027%0ASDP%3A%20MX7D%200x15a2%200x0076%0ASDP%3A%20MX6Q%200x15a2%200x0054%0ASDP%3A%20MX6D%200x15a2%200x0061%0ASDP%3A%20MX6SL%200x15a2%200x0063%0ASDP%3A%20MX6SX%200x15a2%200x0071%0ASDP%3A%20MX6UL%200x15a2%200x007d%0ASDP%3A%20MX6ULL%200x15a2%200x0080%0ASDP%3A%20MX6SLL%200x1fc9%200x0128%0ASDP%3A%20MX7ULP%200x1fc9%200x0126%0ASDP%3A%20MXRT106X%200x1fc9%200x0135%0ASDP%3A%20MX8MM%200x1fc9%200x0134%0ASDP%3A%20MX8MQ%200x1fc9%200x012b%0ASDPU%3A%20SPL%200x0525%200xb4a4%20%5B0x0000..0x04ff%5D%0ASDPV%3A%20SPL1%200x0525%200xb4a4%20%5B0x0500..0x9998%5D%0ASDPV%3A%20SPL1%200x1fc9%200x0151%20%5B0x0500..0x9998%5D%0ASDPU%3A%20SPL%200x0525%200xb4a4%20%5B0x9999..0x9999%5D%0ASDPU%3A%20SPL%200x3016%200x1001%20%5B0x0000..0x04ff%5D%0ASDPV%3A%20SPL1%200x3016%200x1001%20%5B0x0500..0x9998%5D%0AFBK%3A%200x066f%200x9afe%0AFBK%3A%200x066f%200x9bff%0AFBK%3A%200x1fc9%200x0153%0AFB%3A%200x0525%200xa4a5%0AFB%3A%200x18d1%200x0d02%0AFB%3A%200x3016%200x0001%0AFB%3A%200x1fc9%200x0152%0AFB%3A%200x0483%200x0afb%0AWait%20for%20Known%20USB%20Device%20Appear...%0ANew%20USB%20Device%20Attached%20at%201%3A21-E4DD206F132A48BD%0A1%3A21-E4DD206F132A48BD%26gt%3BStart%20Cmd%3ASDPS%3A%20boot%20-f%20%22flash.bin%22%0A19%251%3A21-E4DD206F132A48BD%26gt%3BFail%20HID(W)%3A%20LIBUSB_ERROR_IO%20(-1)(0.211s)%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3Eflash.bin%20has%20been%20generated%20using%20the%20imx-mkimage%20tool%2C%20from%20u-boot%20and%20pre-built%20images%2C%20like%20explained%20at%3A%3C%2FP%3E%3CDIV%3E%3CDIV%3E%3CSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%3E5%3C%2FSPAN%3E%3CSPAN%3E%2Fi-MX-Processors%2Fi-MX%3C%2FSPAN%3E%3CSPAN%3E8%3C%2FSPAN%3E%3CSPAN%3EULP-CPU-Rev-A%3C%2FSPAN%3E%3CSPAN%3E2%3C%2FSPAN%3E%3CSPAN%3E-Boot-failed%2Ftd-p%2F%3C%2FSPAN%3E%3CSPAN%3E1710617%3C%2FSPAN%3E.%3C%2FDIV%3E%3C%2FDIV%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Emake%20SOC%3DiMX8ULP%20flash_singleboot_m33%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3ENote%3A%20loading%20only%20the%20U-Boot%20SPL%20image%20works%20OK%20but%20no%20output%20can%20be%20seen%20on%20the%20UART%2C%20no%20UUU%20command%20is%20accepted.%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%24%20sudo%20.%2Fuuu%20-V%20boot-spl-container.img%20%0Auuu%20(Universal%20Update%20Utility)%20for%20nxp%20imx%20chips%20--%20libuuu_1.5.233-0-g79ce7d2%0A%0ABuild%20in%20config%3A%0A%09Pctl%09%20Chip%09%09%20Vid%09%20Pid%09%20BcdVersion%09%20Serial_No%0A%09%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%09SDPS%3A%09%20MX8QXP%09%09%200x1fc9%09%200x012f%09%20%5B0x0002..0xffff%5D%0A%09SDPS%3A%09%20MX8QM%09%09%200x1fc9%09%200x0129%09%20%5B0x0002..0xffff%5D%0A%09SDPS%3A%09%20MX8DXL%09%09%200x1fc9%09%200x0147%0A%09SDPS%3A%09%20MX28%09%09%200x15a2%09%200x004f%0A%09SDPS%3A%09%20MX815%09%09%200x1fc9%09%200x013e%0A%09SDPS%3A%09%20MX865%09%09%200x1fc9%09%200x0146%0A%09SDPS%3A%09%20MX8ULP%09%09%200x1fc9%09%200x014a%0A%09SDPS%3A%09%20MX8ULP%09%09%200x1fc9%09%200x014b%0A%09SDPS%3A%09%20MX93%09%09%200x1fc9%09%200x014e%0A%09SDPS%3A%09%20MX91%09%09%200x1fc9%09%200x0159%0A%09SDPS%3A%09%20MX95%09%09%200x1fc9%09%200x015d%0A%09SDPS%3A%09%20MX95%09%09%200x1fc9%09%200x015c%0A%09SDPS%3A%09%20MX943%09%09%200x1fc9%09%200x0027%0A%09SDP%3A%09%20MX7D%09%09%200x15a2%09%200x0076%0A%09SDP%3A%09%20MX6Q%09%09%200x15a2%09%200x0054%0A%09SDP%3A%09%20MX6D%09%09%200x15a2%09%200x0061%0A%09SDP%3A%09%20MX6SL%09%09%200x15a2%09%200x0063%0A%09SDP%3A%09%20MX6SX%09%09%200x15a2%09%200x0071%0A%09SDP%3A%09%20MX6UL%09%09%200x15a2%09%200x007d%0A%09SDP%3A%09%20MX6ULL%09%09%200x15a2%09%200x0080%0A%09SDP%3A%09%20MX6SLL%09%09%200x1fc9%09%200x0128%0A%09SDP%3A%09%20MX7ULP%09%09%200x1fc9%09%200x0126%0A%09SDP%3A%09%20MXRT106X%09%200x1fc9%09%200x0135%0A%09SDP%3A%09%20MX8MM%09%09%200x1fc9%09%200x0134%0A%09SDP%3A%09%20MX8MQ%09%09%200x1fc9%09%200x012b%0A%09SDPU%3A%09%20SPL%09%09%200x0525%09%200xb4a4%09%20%5B0x0000..0x04ff%5D%0A%09SDPV%3A%09%20SPL1%09%09%200x0525%09%200xb4a4%09%20%5B0x0500..0x9998%5D%0A%09SDPV%3A%09%20SPL1%09%09%200x1fc9%09%200x0151%09%20%5B0x0500..0x9998%5D%0A%09SDPU%3A%09%20SPL%09%09%200x0525%09%200xb4a4%09%20%5B0x9999..0x9999%5D%0A%09SDPU%3A%09%20SPL%09%09%200x3016%09%200x1001%09%20%5B0x0000..0x04ff%5D%0A%09SDPV%3A%09%20SPL1%09%09%200x3016%09%200x1001%09%20%5B0x0500..0x9998%5D%0A%09FBK%3A%09%20%09%09%200x066f%09%200x9afe%0A%09FBK%3A%09%20%09%09%200x066f%09%200x9bff%0A%09FBK%3A%09%20%09%09%200x1fc9%09%200x0153%0A%09FB%3A%09%20%09%09%200x0525%09%200xa4a5%0A%09FB%3A%09%20%09%09%200x18d1%09%200x0d02%0A%09FB%3A%09%20%09%09%200x3016%09%200x0001%0A%09FB%3A%09%20%09%09%200x1fc9%09%200x0152%0A%09FB%3A%09%20%09%09%200x0483%09%200x0afb%0AWait%20for%20Known%20USB%20Device%20Appear...%0ANew%20USB%20Device%20Attached%20at%201%3A21-E4DD206F132A48BD%0A1%3A21-E4DD206F132A48BD%26gt%3BStart%20Cmd%3ASDPS%3A%20boot%20-f%20%22boot-spl-container.img%22%0A100%251%3A21-E4DD206F132A48BD%26gt%3BOkay%20(0.213s)%0A1%3A21-E4DD206F132A48BD%26gt%3BStart%20Cmd%3ASDPS%3A%20done%0A1%3A21-E4DD206F132A48BD%26gt%3BOkay%20(0s)%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3ECan%20you%20please%20help%20to%20debug%20the%20issue%3F%20What%20can%20be%20checked%20further%3F%3C%2FP%3E%3CP%3EIs%20the%20A2%20revision%20on%20issue%20with%20the%20UUU%20and%20imx-mkimage%20utilities%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThank%20you%20very%20much!%3C%2FP%3E%3CP%3ERegards%2C%3C%2FP%3E%3CP%3EJean%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2FBP-IMX8PULP-POC%2Fpd-p%2FBP-IMX8PULP-POC%22%20class%3D%22lia-product-mention%22%20data-product%3D%222474-1%22%20target%3D%22_blank%22%3EBP-IMX8PULP-POC%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2292726%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208%20Family%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2292823%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2292823%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F206761%22%20target%3D%22_blank%22%3E%40Chavira%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%3CP%3Ethank%20you%20for%20the%20fast%20feedback!%3C%2FP%3E%3CP%3EI'm%20working%20together%20with%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F158598%22%20target%3D%22_blank%22%3E%40jeanpihet%3C%2FA%3E%26nbsp%3B%20on%20the%20system%2C%20and%20I'm%20responsible%20for%20the%20hardware%20side.%3C%2FP%3E%3CP%3EWe%20successfully%20completed%20the%20DRAM%20training%20using%20the%20MX8ULP_DDR_Tool%20and%20generated%20the%20matching%20timing%20files.%3C%2FP%3E%3CP%3EWe%20successfully%20downloaded%20the%20DRAM%20training%20image%20via%20the%20serial%20download%20mode%20while%20using%20the%20DDR%20Tool%2C%20and%20we%20also%20received%20the%20UART%20output%20while%20using%20the%20DDR%20Tool.%3C%2FP%3E%3CP%3EEven%20though%20we%20are%20using%20the%20generated%20DRAM%20timing%20file%20to%20build%20the%20u-boot%20script%2C%20loading%20the%20U-Boot%20image%20(flash.bin)%20fails%20at%2019%25%20and%20then%20USB%20disconnects.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ECould%20you%20point%20us%20in%20the%20direction%20of%20where%20we%20should%20look%20for%20the%20issue%2C%20and%20how%20we%20can%20generate%20more%20insightful%20error%20messages%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThank%20you!%3C%2FP%3E%3CP%3EBest%2C%3C%2FP%3E%3CP%3ELukas%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2292781%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2292781%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F158598%22%20target%3D%22_blank%22%3E%40jeanpihet%3C%2FA%3E%2C%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20contacting%20NXP%20Support!%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EThe%20prebuild%20images%20and%20source%20code%20should%20only%20works%20on%20evk%20boards.%3C%2FP%3E%0A%3CP%3EEnsure%20DDR%20training%20is%20completed%20correctly.%20Verify%20that%20all%20DDR%20configurations%20match%20your%20board%E2%80%99s%20hardware%20(Linux%20Kernel%20and%20U-boot).%3C%2FP%3E%0A%3CP%3EFor%20guidance%20on%20these%20topics%2C%20please%20refer%20to%20our%20%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FUG10165.pdf%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Eporting%20guide%3C%2FA%3E.%26nbsp%3B%3C%2FP%3E%0A%3CP%3EHave%20you%20properly%20ported%20our%20BSP%20to%20match%20the%20hardware%20installed%20on%20your%20board%3F%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20Regards%2C%3CBR%20%2F%3EChavira%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2294051%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2294051%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20Chavira%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThank%20you%20for%20your%20quick%20reply.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EWe%20are%20using%20UART5%2C%20as%20on%20EVK%20but%20the%20pin%20muxing%20is%20different.%20The%20U-Boot%20dts%20has%20been%20updated%20with%20the%20new%20muxing.%3C%2FP%3E%3CP%3EThe%20option%20REV%3DA2%20is%20used%20for%20the%20generation%20of%20the%20flash.bin%20image.%3C%2FP%3E%3CP%3EThe%20boot%20device%20is%20eMMC%20(no%20SD)%20and%20we%20are%20trying%20to%20first%20boot%20from%20UUU%20download.%3C%2FP%3E%3CP%3EI%20am%20now%20trying%20the%20flash_dualboot%20image%20and%20checking%20all%20differences%20between%20EVK%20and%20our%20boards%20for%20the%20pin%20muxing%20etc.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ERegards%2C%3C%2FP%3E%3CP%3EJean%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2294251%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2294251%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20Chavira%2C%3C%2FP%3E%3CP%3EI%20have%20some%20questions%20related%20to%20the%20DDR%20init%20and%20U-Boot%3A%3C%2FP%3E%3CUL%3E%3CLI%3Efrom%20the%20porting%20guide%2C%20point%203.2.1%20Chaning%20DCD%20table%20for%20DDR%20init%3A%20does%20the%20point%206%20apply%20to%20iMX8ULP%3F%20Does%20the%20U-Boot%20SPL%20code%20provides%20the%20DDR%20init%20code%3F%20If%20not%20where%20to%20update%20it%3F%3C%2FLI%3E%3CLI%3EAbout%20booting%20and%20flashing%3A%20is%20it%20supported%20to%20boot%20from%20UUU%20download%20via%20USB%3F%20Is%20it%20possible%20to%20boot%20the%20images%20'flash.bin'%20and%20'boot-spl-container.img'%2C%20as%20generated%20by%20the%20imx-mkimage%20utility%3F%3C%2FLI%3E%3C%2FUL%3E%3CP%3ECurrently%20these%20images%20are%20built%20by%20the%20following%20procedure%3A%3C%2FP%3E%3CUL%3E%3CLI%3Eupdate%20dts%2C%20pinmux%20and%20DDR%20init%20code%20in%20u-boot%20code%3C%2FLI%3E%3CLI%3Ebuild%20u-boot%3C%2FLI%3E%3CLI%3Ecopy%20u-boot.bin%20and%20spl%2Fu-boot-spl.bin%20to%20the%20iMX8ULP%20directory%20under%20imx-mkimage%3C%2FLI%3E%3CLI%3Ebuild%20flash.bin%20and%26nbsp%3Bboot-spl-container.img%20using%20'make%20SOC%3DiMX8ULP%20rev%3DA2%20flash_singleboot_m33'%3C%2FLI%3E%3C%2FUL%3E%3CP%3EIs%20this%20correct%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThank%20you%20for%20yout%20support!%3C%2FP%3E%3CP%3EJean%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2293820%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2293820%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F226908%22%20target%3D%22_blank%22%3E%40Lukas_LH%3C%2FA%3E%2C%26nbsp%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EThe%20LPUART5%20interface%20on%20the%20EVK%20is%20used%20as%20the%20default%20debug%20UART.%3CBR%20%2F%3ECan%20you%20confirm%20whether%20you%20are%20also%20using%20UART5%2C%20as%20on%20the%20EVK%3F%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EIf%20you%20are%20using%20a%20different%20UART%2C%20have%20you%20applied%20the%20required%20modifications%20in%20the%20BSP%20components%20(ATF%2C%20U%E2%80%91Boot%2C%20Linux%20kernel%2C%20device%20tree%2C%20etc.)%20to%20reflect%20the%20change%3F%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EYou%20may%20also%20try%20building%20and%20flashing%20the%20image%20using%20flash_dualboot%20instead%20of%20flash_singleboot_m33%2C%20for%20example%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Emake%20SOC%3DiMX8ULP%20REV%3DA2%20flash_dualboot%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%0A%3CP%3EPlease%20verify%20that%20you%20are%20specifying%20the%20correct%20silicon%20revision%20(REV%3DA2%20or%20whichever%20applies%20to%20your%20board).%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EAdditionally%2C%20could%20you%20clarify%20whether%20you%20are%20booting%20from%20eMMC%20or%20FlexSPI%3F%3CBR%20%2F%3EThis%20affects%20the%20build%20and%20flashing%20flow.%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EBest%20regards%2C%3CBR%20%2F%3EChavira%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2295221%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2295221%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F158598%22%20target%3D%22_blank%22%3E%40jeanpihet%3C%2FA%3E%2C%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EIn%20the%20i.MX%20Porting%20Guide%20(UG10165)%2C%20section%203.2.1%20explains%20how%20DDR%20init%20varies%20by%20SoC%20family.%20%E2%80%9CPoint%206%E2%80%9D%20there%20says%20that%20i.MX8M%20parts%20rely%20on%20U%E2%80%91Boot%20SPL%20to%20initialize%20DDR%20(not%20DCD)%2C%20and%20that%20users%20must%20modify%20the%20SPL%20DDR%20PHY%2Fcontroller%20code.%20That%20statement%20is%20about%208M%20devices%20specifically.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EFor%20i.MX8ULP%2C%20the%20boot%20flow%20is%20similar%20to%208M%20in%20that%20DDR%20is%20initialized%20by%20U%E2%80%91Boot%20SPL%2C%20not%20by%20a%20DCD%20table%20in%20U%E2%80%91Boot%20proper.%20The%20flash.bin%20built%20by%20imx%E2%80%91mkimage%20contains%20two%20AHAB%20container%20sets%3A%3C%2FP%3E%0A%3CP%3Ea%20first%20set%20that%20the%20ROM%20loads%20to%20OCRAM%20(SPL%20%2B%20uPower%20%2B%20ELE%20firmware)%2C%20and%20a%20second%20set%20(U%E2%80%91Boot%20proper%20%2B%20TF%E2%80%91A)%20that%20SPL%20loads%20to%20DDR%20after%20SPL%20has%20initialized%20DDR.%3CBR%20%2F%3EPractically%2C%20this%20means%20you%20customize%2Ftune%20DDR%20in%20the%20SPL%20code%20for%20i.MX8ULP%20(just%20as%20with%208M)%2C%20not%20in%20a%20DCD%20inside%20U%E2%80%91Boot%20proper.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSTRONG%3EDoes%20U%E2%80%91Boot%20SPL%20for%208ULP%20already%20provide%20DDR%20init%3F%20If%20not%2C%20where%20do%20I%20update%20it%3F%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EYes.%20For%208ULP%2C%20the%20SPL%20path%20is%20responsible%20for%20bringing%20up%20DDR.%20You%E2%80%99ll%20find%20the%20DDR%20init%20hooks%20under%20the%20SPL%20portions%20of%20the%20NXP%20U%E2%80%91Boot%20tree%20for%20your%20board%2FSOC%20(board%20directory%20%2B%20arch%2Farm%2Fmach-imx%2F%E2%80%A6%20%2B%208ULP-specific%20DDR%20PHY%2Fcontroller%20glue).%20That%20SPL%20then%20loads%20the%20second%20container%20(TF%E2%80%91A%20%2B%20U%E2%80%91Boot%20proper)%20into%20the%20freshly%20initialized%20DDR%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EBooting%20%26amp%3B%20flashing%20over%20USB%20(UUU)%20is%20it%20supported%3F%20Which%20images%20can%20I%20boot%3F%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EYes%2C%20UUU%20(Universal%20Update%20Utility)%20over%20USB%20is%20supported%20for%20i.MX8%2F8ULP%20via%20the%20Serial%20Download%20Protocol%20in%20ROM.%20You%20can%20load%20a%20flash.bin%20directly%20to%20RAM%20and%20boot%20it%2C%20or%20use%20a%20.uuu%20script%20to%20perform%20more%20complex%20sequences.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSTRONG%3E%20Is%20your%20build%20procedure%20correct%3F%3CBR%20%2F%3E%3C%2FSTRONG%3EFor%208ULP%20you%20do%20need%20u-boot-spl.bin%2C%20u-boot.bin%20(U%E2%80%91Boot%20proper)%2C%20bl31.bin%20(TF%E2%80%91A)%2C%20upower.bin%2C%20and%20ELE%20firmware%20(named%20mx8ulpa2-ahab-container.img%20for%20A2%20silicon)%20placed%20in%20imx-mkimage%2FiMX8ULP%2F%20before%20running%20make.%20%3CSTRONG%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSTRONG%3ESo%2C%20yes%20%E2%80%94%20your%20overall%20steps%20are%20right%20for%208ULP.%20The%20only%20thing%20to%20double%E2%80%91check%20is%20which%20imx%E2%80%91mkimage%20target%20matches%20your%20boot%20type%20(single%E2%80%91boot%20vs%20dual%E2%80%91boot)%20and%20destination%20(RAM%20vs%20FlexSPI%20vs%20eMMC)%20for%20your%20bring%E2%80%91up%20stage.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2295302%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cannot%20load%20images%20on%20custom%20IMX8ULP%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2295302%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20Chavira%2C%3C%2FP%3E%3CP%3EI%20could%20solve%20the%20issue%20in%20the%20DTS%2C%20board%20specific%20code%20and%20the%20right%20images%20for%20M33%2C%20upower%20etc.%20U-Boot%20now%20boots%20OK!%3C%2FP%3E%3CP%3EThank%20you%20for%20your%20quick%20and%20efficient%20support!%20This%20last%20post%20is%20really%20valuable%20and%20should%20be%20pinned%20for%20other%20users%20to%20use%20it%20as%20reference.%3C%2FP%3E%3CP%3ERegards%2C%3C%2FP%3E%3CP%3EJean%3C%2FP%3E%3C%2FLINGO-BODY%3E