U-Boot Splash Screen Issue on Verdin iMX8MP (Custom Ivy Carrier Board, HDMI, Yocto BSP 7.5 Scarthgap)

U-Boot and Kernel Parameter Configuration for Verdin iMX8MP

Based on the official documentation, I can provide specific guidance on your questions:

1. U-Boot Environment Variables and Kernel Parameters

For kernel parameter configuration on Verdin iMX8MP, you can use the tdxargs environment variable(1). This is a Toradex-specific variable that contains kernel arguments used in Toradex BSPs(1).

The kernel parameters you mentioned are supported. The tdxargs variable is set dynamically and contains kernel parameters(1).

2. U-Boot Environment Management Without UART

When UART access is unavailable, you have several options for U-Boot environment management:

Environment Variable Persistence: When using setenv and printenv on U-Boot serial console, you are dealing with the RAM representation of the environment(2). Changes made with setenv will only be valid for the current U-Boot instance(2). To ensure that the changes persist, you need to manually call saveenv, which will write the entire environment to the preconfigured non-volatile location(2).

Build-time Configuration: You can configure U-Boot environment variables through Yocto build configuration. The default environment is set in compilation time and is built into the U-Boot binary(2).

3. HDMI Display Configuration

For HDMI output on iMX8 series modules, the documentation shows that enabling the HDMI overlay is needed(3):

# cp /boot/overlays.txt ~/overlays_backup.txt
# echo "fdt_overlays=apalis-imx8_hdmi_overlay.dtbo" > /boot/overlays.txt
# sync
# reboot

(3)

A connected monitor provides the modes it is capable of displaying and its preferred mode through DDC/EDID(3). The kernel then decides on the mode depending on the capabilities of the monitor and the SoM(3).

To force one of the possible modes, add the desired mode on the kernel command line(3):

video=HDMI-A-1:1280x720

(3)

4. Yocto Build Configuration

For cross-compilation setup, you need to configure environment variables such as ARCH and CROSS_COMPILE(4). For 64-bit Arm (which applies to Verdin iMX8MP), you would use(4):

export ARCH=arm64
export PATH=${HOME}/gcc-linaro-aarch64/bin/:${PATH}
export DTC_FLAGS='-@'
export CROSS_COMPILE=aarch64-none-linux-gnu-

(4)

5. Boot Time Optimization Considerations

For reducing boot time, you can reduce the boot delay by setting the bootdelay environment variable to a lower value or zero(5). You can also optimize the kernel command line by minimizing console outputs and removing or reducing the verbosity of console messages to speed up the boot process(5).

6. Recommendations

Based on the documentation:

  1. Use tdxargs for kernel parameters - This is the Toradex-specific variable for kernel arguments(1)
  2. Configure HDMI overlay properly - Ensure the correct overlay is loaded for HDMI output(3)
  3. Manage environment variables carefully - Use saveenv to persist changes when needed(2)
  4. Consider build-time configuration - For systems without UART access, build-time environment configuration is recommended(2)

The documentation confirms that the approach should focus on Linux-level display initialization rather than U-Boot splash screens for iMX8-based modules, with proper kernel parameter configuration for a clean boot experience.

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.