Verdin imx8mp not booting

Hello, i am using a verdin imx8mp V1.1A, before i was using BSP 7.4 and it worked fine. i tried to update easy toradex easy installer to BSP 7.6 but not board is not booting, only at first boot after updating i get

U-Boot SPL 2024.07-7.6.0+git.3f772959501c (Jul 01 2024 - 18:07:18 +0000)
DDR configured as dual rank
SEC0:  RNG instantiated
Normal Boot
WDT:   Started watchdog@30280000 with servicing every 1000ms (60s timeout)
Trying to boot from BOOTROM
Boot Stage: Primary boot
Can’t found uboot image in 640K range
SPL: failed to boot from all boot devices

ERROR ### Please RESET the board


but then not even the SPL is able to start.

if i use the imx-boot-recoverytezi i see this inside boot0

Verdin iMX8MP # mmc dev 2 1
switch to partitions #1, OK
mmc2(part 1) is current device
Verdin iMX8MP #  mmc partconf 2         
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1
PARTITION_ACCESS: 0x0
Verdin iMX8MP # mmc read ${loadaddr} 0x0 0x40

MMC read: dev # 2, block # 0, count 64 ... 64 blocks read: OK
Verdin iMX8MP # md.b ${loadaddr}  
48200000: d1 00 20 41 00 00 92 00 00 00 00 00 00 00 00 00  .. A............
48200010: e0 ff 91 00 c0 ff 91 00 c0 6f 94 00 00 00 00 00  .........o......
48200020: c0 ff 91 00 00 90 02 00 00 00 00 00 00 00 00 00  ................
48200030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Verdin iMX8MP # mmc read ${loadaddr} 0x0 0x100


i understand i have a valid imx-boot, but anyway it is not booting, as i said i used toradex easyinstaller

Hi, I’m the Toradex AI Assistant.

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


Looking at the error messages you’re seeing, this appears to be a bootloader corruption issue after the BSP 7.6 update. The error “Can’t found uboot image in 640K range” and “SPL: failed to boot from all boot devices” indicates the SPL cannot locate a valid U-Boot image in the expected location (1).

Analysis of Your Boot Failure

The fact that you can see valid data in the boot partition with md.b ${loadaddr} suggests the imx-boot image is physically present, but there may be an issue with:

  1. Boot partition configuration - The eMMC boot partition settings may not be correctly configured
  2. Image corruption - The bootloader image may be partially corrupted during the update process
  3. Boot offset issues - The image may not be written to the correct offset

Recommended Recovery Steps

1. Verify Boot Partition Configuration

Check your current boot partition configuration and ensure it’s set correctly:

mmc partconf 2

The output should show BOOT_PARTITION_ENABLE: 0x1 for boot from boot0 partition (1).

2. Re-flash the Bootloader

Since you have access to recovery mode, try re-flashing the imx-boot image to the correct location. The bootloader should be written with specific dd options as shown in the Toradex Easy Installer configuration (1):

"rawfiles": [
  {
    "filename": "imx-boot",
    "dd_options": "seek=2"
  }
]

3. Complete Re-installation

The safest approach would be to perform a complete re-installation using Toradex Easy Installer:

  • Download a fresh BSP 7.6 image
  • Use Toradex Easy Installer to perform a complete erase and re-installation
  • Ensure the installation completes without errors

4. Check for Hardware Issues

If the problem persists, there might be an underlying eMMC hardware issue. You can verify this by:

  • Testing with a different BSP version to confirm the hardware is functional
  • Running eMMC health checks if available in recovery mode

The transition from BSP 7.4 to 7.6 should be straightforward, so this boot failure suggests either an incomplete installation or potential eMMC corruption during the update 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.

why seek=2? when using boot0’ and boot1 doesnt it should be 0?

You raise an excellent question about the seek=2 parameter. The offset is actually hardware-specific and depends on the SoC requirements.

Why seek=2 for i.MX8M Plus

The seek=2 parameter in the dd options specifies that the imx-boot image should be written starting at block 2 (which equals 1KB offset, since each block is 512 bytes) (1). This is not related to whether you’re using boot0 or boot1 partitions, but rather to the specific requirements of the i.MX8M Plus SoC.

Boot Partition vs. Offset Distinction

The boot partition selection (boot0 vs boot1) and the write offset within that partition are two separate concepts:

  • Boot partition selection: Controlled by mmc partconf settings
  • Write offset within partition: Controlled by the seek parameter in dd options

Hardware-Specific Requirements

Different Toradex modules may require different seek values based on their SoC requirements. The Raw Files properties in Toradex Easy Installer configuration allow specifying these offsets precisely (1):

"rawfiles": [
  {
    "filename": "imx-boot",
    "dd_options": "seek=2",
    "offset": <byte_offset>
  }
]

The offset property can specify byte offset for filename write, and negative values count from partition end (1).

For Your Specific Case

Since you’re working with a Verdin iMX8MP, the seek=2 offset is likely the correct requirement for this SoC. The fact that you can see valid data at the beginning of the boot partition with md.b ${loadaddr} suggests the image might not be at the expected offset where the ROM bootloader is looking for it.

You should verify that the imx-boot image is written to the correct offset within the boot partition, not just that it exists somewhere in the partition.

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.