Missing support for Apalis IMX8QP 1.0 Boards in BSP 7

U-Boot is not able to boot the Linux Kernel in BSP 7.2.0 because the U-Boot does not detect the right device tree file. It tries to load imx8qp-apalis-eval.dtb, but this file is not available through the sources.

U-Boot 2024.04-7.2.0-devel+git.5c6f89c91d3d (Mar 14 2025 - 21:21:12 +0000)

CPU:   NXP i.MX8QM RevB A53 at 1200 MHz at 38C

DRAM:  2 GiB
Core:  203 devices, 24 uclasses, devicetree: separate
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Model: Toradex 0048 Apalis iMX8QP 2GB WB V1.0B
Serial#: 06597545
Boot:  MMC0
Reset cause: Software reset

 BuildInfo:
  - SCFW 83624b99, SECO-FW c9de51c0, IMX-MKIMAGE 4622115c, ATF
  - U-Boot 2024.04-7.2.0-devel+git.5c6f89c91d3d

flash target is MMC:0
Net:   eth0: ethernet@5b040000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
MMC: no card present
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
5869 bytes read in 3 ms (1.9 MiB/s)
## Executing script at 9d480000
Loading DeviceTree: imx8qp-apalis-eval.dtb
Failed to load '/boot/imx8qp-apalis-eval.dtb'
Booting from mmc failed!
SCRIPT FAILED: continuing...
starting USB...
Bus usb@5b0d0000: USB EHCI 1.00
Bus usbh3: XHCI-imx8 init hccr 0x000000005b130000 and hcor 0x000000005b130080 hc_length 128
Register 2000820 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@5b0d0000 for devices... 1 USB Device(s) found
scanning bus usbh3 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
ethernet@5b040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@5b040000
BOOTP broadcast 1
BOOTP broadcast 2

The reason is the detection routine in U-Boot (board/toradex/apalis-imx8/apalis-imx8.c):

static void select_dt_from_module_version(void)
{
	if (get_pcb_revision() == PCB_VERSION_1_0)
		env_set("variant", "");
	else
		env_set("variant", "-v1.1");

	switch (tdx_hw_tag.prodid) {
	/* Select Apalis iMX8QP device trees */
	case APALIS_IMX8QP_WIFI_BT:
	case APALIS_IMX8QP:
	case APALIS_IMX8QP_WIFI_BT_1300MHZ:
	case APALIS_IMX8QP_1300MHZ:
		env_set("soc", "imx8qp");
		break;
	default:
		env_set("soc", "imx8qm");
		break;
	}
}

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

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


Hello! Thank you for providing a detailed description and U-Boot log.

Your analysis is correct: U-Boot is attempting to load the imx8qp-apalis-eval.dtb device tree when using your Apalis iMX8QP module, but the BSP 7.2.0 release does not provide a device tree with this exact name. This results in the boot failure you’re seeing.

Why This Happens

U-Boot automatically selects the device tree file based on detected hardware and sets the fdtfile environment variable accordingly. In your case, the detection routine assigns imx8qp-apalis-eval.dtb for the QuadPlus variant, but the Toradex BSP device tree sources typically only provide:

  • imx8qm-apalis-eval.dtb
  • (sometimes) imx8qm-apalis-v1.1-eval.dtb

There is no separate device tree for the iMX8QP variant.

Solution

You can manually override the device tree selection in U-Boot so it loads the available device tree file. The recommended approach is:

  1. Stop the U-Boot autoboot process (by pressing a key during boot).
  2. Check the current fdtfile and soc variables:
    printenv fdtfile
    printenv soc
    
  3. Set the fdtfile variable manually to match the device tree file present on your system (imx8qm-apalis-eval.dtb):
    setenv fdtfile imx8qm-apalis-eval.dtb
    saveenv
    
  4. Reboot.

This directs U-Boot to use imx8qm-apalis-eval.dtb, which is compatible with both iMX8QM and iMX8QP variants.

More Information

Let me know if you need instructions on modifying the device tree or on customizing your image to add a dedicated imx8qp- device tree, but for standard use, manually selecting the available imx8qm- file as shown above is the simplest and supported solution.

Best regards,
Toradex AI Assistant.

Yes, this is a workaround, but only a temporary solution.