U-boot default internal dtb

Hi,
i am trying to patch u-boot lcd resolution and timing. (imx7d emmc , YOCTO and toradex 7.2.0)

Is u-boot-toradex using the dtsi with u-boot in the name
u-boot-toradex/2024.07/git/arch/arm/dts/imx7d-colibri-emmc-eval-v3-u-boot.dtsi

or only using imx7d-colibri-emmc-eval-v3.dts and its includes ?

Best Regards - Paul

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 Paul,

Thank you for your question!

On the i.MX 7D eMMC platform with Torizon/Yocto using the Toradex U-Boot (u-boot-toradex), the U-Boot build system is set up to use special device tree source include files with -u-boot.dtsi in their names when present. These files are designed to override or provide settings specific to U-Boot that differ from what the Linux kernel would need.

How this works for your board:

  • The primary device tree file for U-Boot would be imx7d-colibri-emmc-eval-v3.dts.
  • If the .dts file contains a line such as #include "imx7d-colibri-emmc-eval-v3-u-boot.dtsi" or if the build system is configured to automatically include the corresponding -u-boot.dtsi, then those settings will be applied for U-Boot only.
  • This mechanism helps maintain separation between kernel-specific and U-Boot-specific hardware settings, such as LCD timing.

To sum up:
Yes, U-Boot Toradex uses both the main .dts and, if present and included, the corresponding -u-boot.dtsi files for your i.MX7D Colibri eMMC board. You can place your LCD timing and resolution changes in either location, but placing U-Boot-specific changes in the *-u-boot.dtsi file ensures they won’t affect the Linux kernel’s device tree.

For more details:

If you need guidance with making the LCD timing patch, feel free to ask!

Best regards,
Toradex AI Assistant.

Hi AI
imx7d-colibri-emmc-eval-v3.dts source does not include the u-boot.dtsi unless there is a bitbake recipe changing something

– edit –
Assuming that the *u-boot.dtsi was a mistake I’ll be testing a patch of imx7d-colibri-emmc-eval-v3.dts on monday.

Regrads - Paul

Dear @BDSKPEF,

Thank you for sharing the hurdle you are facing with us. May I ask if the display is working otherwise? Is there simply just a resolution issue or does the display remain dark? What specific interface are you using? Is it connected via parallel RGB? Is there anything you can see during booting or in u-boot?

Best regards,
Collin

Hi Collin,

the display is black during u-boot , it does not show anything before the kernel splash screen.
Display is set in kernel by dtbo with same definition as the u-boot devicetree patch.
We are using the Colibri evaluation board LVDS connector.
Actually, there is no signal on LCD_PCLK_WR before the kernel splash shows.

The problem might simply relate to the discontinuation of splash support in u-boot-toradex, which i am trying to (re)configure in the u-boot .config. (Ill go through the posts related to this again :slight_smile: )

Best Regards - Paul

@ToradexAI
The standard uboot-imx from github will use the directly referenced dts/dtsi files and on top of that include all files with the same names extended with “-u-boot” .
So that build system is configured as mentioned in the quote.
This leaves the question wether the YOCTO build does the same ?

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

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


Hello Paul,

Great follow-up question!

When building U-Boot for the i.MX 7D with Yocto (especially with Toradex BSP 7.x.y releases), the Yocto-based build system uses the upstream U-Boot source, which adopts the same device tree handling behavior as the mainline U-Boot:
For each <board>.dts, the build system looks for a corresponding *-u-boot.dtsi and, if present, includes it automatically—even if the .dts does not explicitly reference it.
This mechanism is upstream U-Boot behavior and is not changed by either Yocto or Toradex meta layers.

So, when you build U-Boot using Yocto recipes provided by Toradex (e.g., u-boot-toradex_%.bbappend), the device tree inclusion logic remains as follows:

  • The build will process your main .dts file for the board.
  • If a *-u-boot.dtsi file matching the .dts basename exists, its changes are automatically overlaid for the U-Boot build.
  • You do not need to directly reference the *-u-boot.dtsi in your .dts or modify the recipe to make this work.

Practical implication:
If you want settings (e.g., LCD resolution/timing) to apply only for U-Boot, place those changes in the relevant *-u-boot.dtsi.
If they should apply to both U-Boot and kernel, use the board’s main .dts or shared .dtsi.

References:

Let me know if you would like more guidance about LCD configuration or U-Boot splash support.

Best regards,
Toradex AI Assistant.