Device: CompuLab IOT-GATE-iMX8 (Mini), part number IOTG-IMX8-D4 — 4 GB LPDDR4 (Etron).
balena device type: iot-gate-imx8
balenaOS version flashed:
Flash method: official USB-key getting-started procedure.
Summary:
After flashing balenaOS, the device no longer boots. It fails during early DRAM init in the bootloader (SPL), before reaching the OS. The device’s factory bootloader boots the same hardware perfectly, so the hardware is healthy — the failure is specific to the bootloader shipped in the balenaOS image.
Evidence from the serial console:
Factory CompuLab bootloader (works) — reads DRAM config from the onboard EEPROM:
U-Boot SPL 2023.04-iot-gate-imx8-4.2.0 …
DDRINFO(eeprom): Etron 4096G @ 3000 MHz
… DRAM init succeeds, full U-Boot loads, “DRAM: 4 GiB”, device boots.
After the balena flasher overwrites the eMMC bootloader (“Updating the bootloader on mmc [2:1]”) and resets, the balena bootloader takes over and does NOT read the EEPROM — it tries a fixed table of DRAM profiles and fails on all of them:
DDRINFO: Cfg attempt: [ 1/10 ] … [ 10/10 ]
Training FAILED (repeatedly)
DDRINFO: Ran out all [ 10 ] cfg attempts. A non supported configuration.
Before powering up, connect to Serial Port => CLI from U-Boot
U-Boot SPL 2023.04-IOTG-IMX8PLUS-2.2-g70a7183523f (Mar 08 2026 - 09:50:10 +0200)
pca9450@25 [ldo4][u] = 1v8
DDRINFO: EEPROM VALID DATA [ [ cafecafe ] = ff070010 4
DDRINFO(D): Kingston 4096MB @ 3200 MHz
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3200MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
DDRINFO(M): mr5-8 [ 0xff070010 ]
DDRINFO(E): mr5-8 [ 0xff070010 ]
SEC0: RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE: Do not release JR0 to NS as it can be used by HAB
NOTICE: BL31: v2.10.0 (release):automotive-15.0.0_1.1.0
NOTICE: BL31: Built : 08:52:12, Nov 4 2024
U-Boot 2023.04-IOTG-IMX8PLUS-2.2-g70a7183523f (Mar 08 2026 - 09:50:10 +0200)
CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 38C
Reset cause: POR
Model: CompuLab IOT-GATE-IMX8PLUS
DRAM: 4 GiB
Core: 246 devices, 31 uclasses, devicetree: separate
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
Fail to setup video link
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net: eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
Running BSP bootcmd ...
Running usb_ul ...
starting USB...
Bus usb@38100000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus usb@38200000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@38100000 for devices... 1 USB Device(s) found
scanning bus usb@38200000 for devices... 3 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
** Bad device specification usb 0 **
Couldn't find partition usb 0:1
Can't set block device
loading Image
** Bad device specification usb 0 **
Couldn't find partition usb 0:1
Can't set block device
Running sd_ul ...
Card did not respond to voltage select! : -110
** Bad device specification mmc 1 **
Couldn't find partition mmc 1:1
Can't set block device
loading Image
Card did not respond to voltage select! : -110
** Bad device specification mmc 1 **
Couldn't find partition mmc 1:1
Can't set block device
Running emmc_ul ...
** No partition table - mmc 2 **
Couldn't find partition mmc 2:1
Can't set block device
loading Image
** No partition table - mmc 2 **
Couldn't find partition mmc 2:1
Can't set block device
iot-gate-imx8plus=> help