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;
}
}
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?
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:
Stop the U-Boot autoboot process (by pressing a key during boot).
Check the current fdtfile and soc variables:
printenv fdtfile
printenv soc
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
Reboot.
This directs U-Boot to use imx8qm-apalis-eval.dtb, which is compatible with both iMX8QM and iMX8QP variants.
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.
Do you have other Apalis iMX8QP boards? If you do, let me know if you manage to boot into any of them.
Also, take a look into this commit. Can you try building u-boot without this patch and see if it works? For your board you should build from the toradex_imx_lf_v2024.04 branch. You can find instructions for building u-boot from source here.
@leonardo.costa.tx Thank you for your response. Today I was able to build a clean version of the tdx-reference-multimedia-image with no recipe modifications today and it is unfortunately not booting due to the same issue as in my initial post.
Did you try it on Revision 1.0 of the Apalis Board or are you using a newer version? I assume that this is only an issue for PCB 1.0. Could you please check?
Yes, manually setting the device tree file works. But take care, that your proposed imx8qp-apalis-v1.1-eval.dts is not a binary device tree file and will not work. The variants from the AI assistant do work.
The reverting of the path solves the problem.
I’m really looking forward for having an upstream solution in the official layers soon!