NXP BSP on Verdin iMX95 V1.0B

Hi,

I’m using i.MX95 Verdin EVK v1.2 carrier board from Toradex and Verdin i.MX95 Hexa 8GB WB IT v1.0B SoM.

So far I have used SoM that came with the carrier board (so I suppose A0 revision) and I it has flashed succesfully with NXP BSP, but now I want to use the new revision.

I flashed Linux 6.12.49_2.2.0 on SD card and tried to boot the board, but I got a screen that was forcing me to install the system either using Torade Easy Installer or Linux Reference Image (that was new to me because on the last SoM it just booted directly from SD card).
After trying both of this options for install, I see that they don’t use my SD card for boot and I can only see files from the card under run/media, but after I try to use let’s say some custom device tree from my card during Uboot, I get an error.

Also I have tried flashing the BSP on eMMC using instructions from i.MX 95 Verdin EVK Getting Started document, but every time it crashes on 57 percent:

~/LF_v6.12.49-2.2.0_images_IMX95$ sudo ./uuu -v -b emmc_all ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all ./imx-image-full-imx95-19x19-verdin.wic
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

Run built-in script:
 
uuu_version 1.4.149

# @_flash.bin            | bootloader, which can extract from wic image
# @_image   [_flash.bin] | wic image burn to emmc.


# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
SDP: boot -f ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all -scanlimited 0x800000

# This command will be run when ROM support stream mode
# i.MX8QXP, i.MX8QM
SDPS: boot -scanterm -f ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all -scanlimited 0x800000

# 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-imx95-19x19-verdin-sd.bin-flash_all -offset 0x57c00
SDPU: jump -scanlimited 0x800000
# }

# 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-imx95-19x19-verdin-sd.bin-flash_all -skipspl -scanterm -scanlimited 0x800000
SDPV: jump -scanlimited 0x800000
# }


FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
FB: flash -raw2sparse all ./imx-image-full-imx95-19x19-verdin.wic
FB: flash -scanterm -scanlimited 0x800000 bootloader ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all
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-03438798F6CF454B
1:1-03438798F6CF454B>Start Cmd:SDPS: boot -scanterm -f ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all -scanlimited 0x800000
57%1:1-03438798F6CF454B>Fail HID(W): LIBUSB_ERROR_NO_DEVICE (-4)(2.875s)

I have tried different combinations of cables and ports and flashing on Windows, but it all fails.

Is this combination of carrier and SoM possible to flash using NXP BSP and use custom device trees?
My goal is to port existing drivers and device trees from older BSP that worked with the older SoM to new BSP and new SoM.

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


i.MX95 Verdin EVK Flashing Issues

Based on your setup with the i.MX95 Verdin EVK v1.2 carrier board and Verdin i.MX95 Hexa 8GB WB IT v1.0B SoM, there are several issues to address.

Silicon Version Compatibility

The flashing command depends on the silicon version (1). Since you mentioned using a new revision SoM (v1.0B), you need to identify whether it’s Alpha A1 or Beta B0 silicon:

  • For Alpha - A1 Silicon (1):
sudo ./uuu -v -b emmc_all ./imx-boot-imx95-a1-19x19-verdin-sd.bin-flash_all ./imx-image-full-imx95-19x19-verdin.wic
  • For Beta - B0 Silicon (LF_v6.6.23-2.0.0 to LF_v6.12.20_2.0.0) (1):
sudo ./uuu -v -b emmc_all ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all ./imx-image-full-imx95evk.wic

Device Tree Configuration

For proper HDMI display output, you need to configure the correct device tree in U-Boot (1):

  1. Connect via serial communication (2)
  2. Press reset button B7 (1)
  3. Press backspace before autoboot to enter U-Boot console (1)
  4. Configure the EVK device tree (1):

For LF_v6.6.23-2.0.0 and newer images (1):

setenv fdtfile imx95-19x19-verdin-lt8912.dtb
saveenv

For LF_v6.6.3-1.0.0_images_IMX95 image (1):

setenv fdtfile imx95-19x19-titan-lt8912.dtb
saveenv
  1. Continue boot sequence (1):
bootd

Custom Device Tree Loading

To use custom device trees from your SD card, you can modify the fdtfile variable in U-Boot (3). You can set a new device tree directly using:

setenv fdtfile your_custom_device_tree.dtb
saveenv

Troubleshooting the 57% Failure

The LIBUSB_ERROR_NO_DEVICE (-4) error at 57% suggests a USB connection issue during flashing (1). Ensure:

  1. USB1 OTG (J5) is properly connected to the host machine (1)
  2. Keep pressing Recovery Button (B8) while changing power switch S6 to “ON” (1)
  3. Use a Linux host machine as some steps require Linux-specific software (2)

Device Tree Overlay Support

For porting existing drivers and device trees, you can use Device Tree Overlays (4). The development process involves:

  1. Writing a Device Tree Overlay (.dts) file (4)
  2. Compiling the .dts file to generate a .dtbo file (4)
  3. Enabling the overlay using the .dtbo file (4)

Custom overlays can be deployed by copying the .dtbo file to the overlays/ directory in the boot partition and adding it to the overlays.txt file (4).

Your combination of carrier board and SoM should work with NXP BSP and custom device trees, but ensure you’re using the correct flashing command for your silicon version and have the proper USB connection during the flashing process.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

My SoM should be B0 Silicon, but I tried using different combinations of bootloader and wic files and they all fail when flashing.
Also, my SW2 switch was set to 1010 during this eMMC flashing, as it is described in i.MX 95 Verdin EVK Getting Started document.

Type of device tree is not that important at this time, I just want to install clean Linux 6.12.49_2.2.0 from NXP on my platform.
That is why I’m asking here is this combination of carrier and SoM supported for this BSP.

Based on your description and the specific error you’re encountering, there are a few critical points to address regarding the i.MX95 Verdin EVK compatibility and flashing process.

Silicon Version and Flashing Commands

For B0 Silicon with the LF_v6.12.49_2.2.0 release, you should use the correct flashing command (1):

sudo ./uuu -v -b emmc_all ./imx-boot-imx95-19x19-verdin-sd.bin-flash_all ./imx-image-full-imx95evk.wic

However, the documentation indicates that NXP introduced support for the i.MX 95 Beta silicon in the LF_v6.12.20_2.0.0 release (1). Since you’re using LF_v6.12.49_2.2.0, this should be compatible with B0 silicon.

Hardware Compatibility

The i.MX95 Verdin EVK v1.2 carrier board with Verdin i.MX95 Hexa 8GB WB IT v1.0B SoM combination should be supported by the NXP BSP. The documentation confirms that the board comes with NXP’s reference images and can be reflashed (1).

Troubleshooting the USB Connection Issue

The LIBUSB_ERROR_NO_DEVICE (-4) error at 57% suggests a USB communication failure during the flashing process (1). Here are specific steps to resolve this:

1. Verify Recovery Mode Setup

  • Ensure USB1 OTG (J5) is connected to your host machine (1)
  • Keep pressing the Recovery Button (B8) while changing power switch S6 to “ON” (1)
  • The SW2 switch should indeed be set to 1010 for eMMC boot (1)

2. Check USB Connection Stability

  • Try different USB cables (preferably shorter, high-quality cables)
  • Use different USB ports on your host machine
  • Ensure the USB connection remains stable throughout the entire flashing process

3. Host System Requirements

  • Use a Linux host system if possible, as the uuu utility works more reliably on Linux
  • Ensure you have proper permissions (running with sudo)
  • Check that no other processes are accessing the USB device

Alternative Approach

If the eMMC flashing continues to fail, you can try:

  1. Boot from SD card first to verify the hardware works
  2. Flash to eMMC from within Linux once you have a working system running from SD

Verification Steps

To confirm your setup is correct:

  1. Verify the exact files you’re using match the B0 silicon requirements
  2. Check that the Recovery Button (B8) is being held properly during power-on
  3. Monitor the USB connection stability during the flashing process

The combination you’re using should be supported by the NXP BSP LF_v6.12.49_2.2.0. The issue appears to be related to the USB communication during flashing rather than hardware incompatibility.

Best regards, Toradex AI Assistant.

**


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hello @mjurisic ,

The i.MX95 Verdin EVK , despite its name, is not compatible with the Verdin i.MX95 Hexa 8GB WB IT v1.0B SoM. The EVK pinout is different from other Verdin Modules and that’s why this will not work. You should use this module along with any of the Verdin Carrier Boards.

Best regards,

Marcio