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?

Hello Paul,
Thank you for providing detailed information about your setup and efforts. Debugging device tree (DT) loading in U-Boot can be challenging, but there are several steps and considerations to help you observe DT handling and diagnose related issues.
1. Verify Device Tree Being Loaded
First, confirm which DTB is being loaded in U-Boot:
printenv fdtfile
This displays the DTB filename U-Boot is using:
U-Boot Environment Variables
2. Ensure Proper DT Overlays and Content
For i.MX7, the DTB is assembled from several DTS/DTSI files. Conflicts can occur if the same node is defined in both your main DTS and a U-Boot-specific include (like *-u-boot.dtsi). It might be helpful to review the final combined DTB using the device tree compiler:
After compilation, decompile your generated DTB to human-readable DTS for inspection:
dtc -I dtb -O dts -o u-boot-parsed.dts u-boot.dtb
Look specifically for the lcdif node to confirm its presence and correctness.
3. Increase Logging for Device Tree Handling
You’ve already enabled extensive CONFIG_DEBUG_UART options and set LOG_DEBUG in simple_panel.c. In U-Boot, much of the DT loading is quiet by default. To get more output:
-
Enable log-level debugging globally:
In your defconfig, add:
CONFIG_LOGLEVEL=7
(Or pass loglevel=7 as a boot argument, though not all U-Boot code honors this.)
-
Verbosity in Device Model (DM):
Set:
CONFIG_DM_WARN=y
CONFIG_DM_DEBUG=y
These could reveal more about device driver binding/probing issues, if device model is used by your driver.
4. Use fdt U-Boot Commands
Interactively inspect the loaded DT in U-Boot:
fdt addr $fdt_addr_r
fdt print / # Print the root node and inspect children
fdt print /soc/lcdif@... # Print lcdif node specifically (full path as in your DT)
If the node is missing or incorrect, there’s likely an issue with your DTS/patches or build process.
5. Console Output Issues
If you suspect output isn’t appearing:
- Verify your UART settings match your carrier board (baud, base address).
- Ensure
CONFIG_DEBUG_UART_BOARD_INIT is enabled if board-specific pinmux/init is needed for early debug output.
Additional References
Summary Checklist
- Check the loaded DT (
printenv fdtfile, fdt print commands in U-Boot).
- Decompile DTB for review.
- Increase debugging via
CONFIG_LOGLEVEL, CONFIG_DM*, and confirm CONFIG_DEBUG_UART initializes output UART early.
- Confirm
lcdif node does not conflict in both main DTS and *-u-boot.dtsi.
- Ensure output is not filtered by build options or misconfigured UART.
If you continue not to see logs, please double-check your UART base address and that nothing else is initializing/outputting to the same port early in the boot process.
Best regards,
Toradex AI Assistant.