Colibri imx7d OS corruption

Hi Toradex team,

We are using Colibri imx7d som in our Switch devices. We are using form long time and these units are running successfully in the field. but recently we have incurred some problem in the Colibri imx7d som is continuously rebooting. After analyzing we have found that the config block and partition in som are corrupted.
we are unable re-load new OS in those SOM's with our board and with Colibri evaluation board also. Please suggest us what we do we have 30 units in that situation.
  when we power ON the board we are continuously getting below messges

U-Boot 2020.07-5.4.0-devel+git.eb6c58cb0140 (Aug 20 2021 - 16:27:07 +0000)

CPU:   Freescale i.MX7D rev1.3 1000 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 29C
Reset cause: POR
DRAM:  1 GiB
PMIC:  RN5T567 LSIVER=0x01 OTPVER=0x0d
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
MISSING TORADEX CONFIG BLOCK
Model: Toradex Colibri iMX7D
SEC0: RNG instantiated
Net:   eth0: ethernet@30be0000
Hit any key to stop autoboot:  0 
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** No partition table - mmc 0 **
starting USB...
Bus usb@30b10000: USB EHCI 1.00
Bus usb@30b20000: USB EHCI 1.00
scanning bus usb@30b10000 for devices... 1 USB Device(s) found
scanning bus usb@30b20000 for devices... 4 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
ethernet@30be0000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@30be0000
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17

Retry time exceeded; starting again

When we try load the New OS with evaluation board we are getting below messages

Hit any key to stop autoboot:  0 
USB EHCI 1.00
SDP: initialize...
SDP: handle requests...
Downloading file of size 33458128 to 0x82100000... done
Downloading file of size 378 to 0x82000000... done
Jumping to header at 0x82000000
Header Tag is not an IMX image
## Loading kernel from FIT Image at 82100000 ...
   Using 'config@imx7d-colibri-emmc-eval-v3.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x82100108
     Data Size:    6984192 Bytes = 6.7 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x81000000
     Entry Point:  0x81000000
     Hash algo:    sha1
     Hash value:   490dccdf06b3dec19f8110a3270114559fc46eb2
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 82100000 ...
   Using 'config@imx7d-colibri-emmc-eval-v3.dtb' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  tezi-initramfs
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x827ef8fc
     Data Size:    26181632 Bytes = 25 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   e566d335fb634e03c202f4c232a16cae26fc8a96
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 82100000 ...
   Using 'config@imx7d-colibri-emmc-eval-v3.dtb' configuration
   Trying 'fdt@imx7d-colibri-emmc-eval-v3.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x827c40ac
     Data Size:    56238 Bytes = 54.9 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   5c7c209a9f79b3c2cecf5bd72fc2c9209b38d2f9
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x827c40ac
EHCI failed to shut down host controller.
   Loading Kernel Image
   Loading Device Tree to 8ffef000, end 8ffffbad ... OK

Starting kernel ...

[    0.027088] debugfs: Directory 'dummy-iomuxc-gpr@30340000' with parent 'regmap' already present!
[    0.257287] debugfs: Directory 'dummy-src@30390000' with parent 'regmap' already present!
[    0.334023] fec 30be0000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[    0.378724] CPUidle arm: CPU 0 failed to init idle CPU ops
Running /etc/rc.local...
Toradex Easy Installer 5.5.0+build.6 () 
Starting udev
[   12.001885] mmc0: Timeout waiting for hardware interrupt.
[   12.007291] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[   12.013734] mmc0: sdhci: Sys addr:  0x822af000 | Version:  0x00000002
[   12.020176] mmc0: sdhci: Blk size:  0x00000200 | Blk cnt:  0x00000008
[   12.026618] mmc0: sdhci: Argument:  0x003ab780 | Trn mode: 0x0000003b
[   12.033060] mmc0: sdhci: Present:   0x01f8820e | Host ctl: 0x00000031
[   12.039502] mmc0: sdhci: Power:     0x00000002 | Blk gap:  0x00000080
[   12.045943] mmc0: sdhci: Wake-up:   0x00000008 | Clock:    0x0000007f
[   12.052385] mmc0: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000
[   12.058826] mmc0: sdhci: Int enab:  0x117f100b | Sig enab: 0x117f100b
[   12.065267] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000302
[   12.071709] mmc0: sdhci: Caps:      0x07eb0000 | Caps_1:   0x8000b407
[   12.078151] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x00ffffff
[   12.084593] mmc0: sdhci: Resp[0]:   0x80000900 | Resp[1]:  0x7ff6db80
[   12.091034] mmc0: sdhci: Resp[2]:   0x320f5900 | Resp[3]:  0x00000900
[   12.097475] mmc0: sdhci: Host ctl2: 0x00000008
[   12.101920] mmc0: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0xac597204
[   12.108360] mmc0: sdhci: ============================================
[   22.241874] mmc0: Timeout waiting for hardware interrupt.
[   22.247278] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[   22.253721] mmc0: sdhci: Sys addr:  0x822af000 | Version:  0x00000002
[   22.260163] mmc0: sdhci: Blk size:  0x00000200 | Blk cnt:  0x00000008
[   22.266604] mmc0: sdhci: Argument:  0x003ab780 | Trn mode: 0x0000003b
[   22.273045] mmc0: sdhci: Present:   0x01f8820e | Host ctl: 0x00000031
[   22.279487] mmc0: sdhci: Power:     0x00000002 | Blk gap:  0x00000080
[   22.285928] mmc0: sdhci: Wake-up:   0x00000008 | Clock:    0x0000007f
[   22.292369] mmc0: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000
[   22.298811] mmc0: sdhci: Int enab:  0x117f100b | Sig enab: 0x117f100b
[   22.305252] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000302
[   22.311694] mmc0: sdhci: Caps:      0x07eb0000 | Caps_1:   0x8000b407
[   22.318136] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x00ffffff
[   22.324578] mmc0: sdhci: Resp[0]:   0x80000900 | Resp[1]:  0x7ff6db80
[   22.331019] mmc0: sdhci: Resp[2]:   0x320f5900 | Resp[3]:  0x00000900
[   22.337459] mmc0: sdhci: Host ctl2: 0x00000008
[   22.341904] mmc0: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0xac597204
[   22.348344] mmc0: sdhci: ============================================


For u r reference we have  attaching some images

Please suggest us what we have to do and why the config block is corrupting.

Hi, I’m the Toradex AI Assistant.

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


Recovering Colibri iMX7D Modules with Corrupted Config Block

Understanding the Issue

Your Colibri iMX7D modules are showing the “MISSING TORADEX CONFIG BLOCK” error, which indicates the config block has been corrupted (1). This is preventing proper boot and OS installation.

Recovery Solution

Step 1: Access U-Boot Console

  1. Connect to the serial console and interrupt the boot process by pressing any key when you see the U-Boot prompt (1)
  2. You should see the U-Boot console prompt: Colibri iMX7 #

Step 2: Recreate the Config Block

Use the cfgblock create command to recreate the config block (1):

> cfgblock create

(1)

The system will prompt you for module information. For Colibri iMX7D, you’ll need to provide:

  • Module ID (for iMX7D modules)
  • Module version (e.g., V1.1A)
  • Serial number

Step 3: Alternative Method with Parameters

If you know the exact module details, you can create the config block directly (1):

> cfgblock create -y [barcode]

(1)

Where [barcode] contains the module information.

Step 4: Save and Reload

After creating the config block:

> cfgblock reload

(1)

This reloads the config block from flash.

Important Notes

eMMC Considerations

The config block corruption might be related to eMMC wear or other storage issues (2). The config block is stored in the last block of the primary boot partition, and its location is calculated relative to the end of the boot partition (2).

Using Toradex Easy Installer

Once the config block is recreated, you should be able to use Toradex Easy Installer to flash new OS images. The update method using USB flash drives mentioned in older documentation is deprecated (3). Use Toradex Easy Installer instead for OS installation (3).

Prevention

To prevent future config block corruption:

  • Ensure proper power supply stability
  • Monitor eMMC health if possible
  • Consider implementing proper shutdown procedures in your application

The config block contains critical module identification information, and its corruption can prevent proper boot and OS installation. Following these recovery steps should restore functionality to your 30 affected units.

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.

Hi @ks501865,
Is this issue happening on all 30 units or only with unit?

Hi Sahil

this issue is happening on all the 30 units in the field. Please suggest us how to proceed further.

Hi @ks501865 ,
Do you mean that all these 30 units are returned from field having the same issue?
Its very unlikely of these many module failures.
Please send an email at support.in@toradex.com and we will connect on a call.

Hi Sahil,

Thanks for your response. we have sent a mail to support.in@toradex.com.