Jetson Orin quickly initializes a 1080x1920 resolution display via the HDMI connector during the boot stage

Hardware: Jetson Orin,
JetPack Version: JetPack 6.2,

Display Interface: HDMI 1080x1920

Issue Description

Our requirement is to display a custom logo at 1080x1920 portrait resolution via HDMI within 1 second after power-on.

Currently, the UEFI boot time alone (from entry to HDMI logo display) is approximately 8.9 seconds on DEBUG build. Even after significant driver/feature pruning, the boot time cannot be reduced to under 3 seconds, let alone the 1-second target.

Key Findings from Official Documentation

1. UEFI Boot Logo Resolution Support

According to NVIDIA official documentation and forum threads, the UEFI boot logo supports the following resolutions :

  • 640x480

  • 1280x720

  • 1920x1080

1080x1920 (portrait mode) is NOT listed as a supported resolution for UEFI boot logo display. This suggests that the current UEFI GOP (Graphics Output Protocol) driver may not support portrait orientation initialization at boot time.

2. Boot Time Breakdown (from internal measurement)

Component Time Consumed Percentage
nvgop-chips-platform GOP initialization ~2916ms 32.8%
MmCommunicationOptee session setup ~371ms 4.2%
Other UEFI components ~5613ms 63%
Total UEFI boot time ~8900ms 100%

The GOP initialization alone exceeds the 1-second target and cannot be optimized as it is a pre-compiled closed-source binary (nvgop-chips-platform.efi).

Technical Barriers

Barrier 1: Portrait Resolution (1080x1920) Not Supported

From the UEFI boot logo documentation, only standard landscape resolutions (640x480, 1280x720, 1920x1080) are supported. There is no mention of portrait mode (1080x1920) support .

Question for NVIDIA: Does the UEFI GOP driver support 1080x1920 portrait mode initialization? If yes, what configuration is required?

Barrier 2: GOP Initialization Cannot Be Accelerated

The nvgop-chips-platform.efi driver takes ~2916ms during ConnectController. This is a pre-compiled closed-source binary provided by NVIDIA that we cannot modify or optimize .

The GOP initialization process includes:

  • Display controller hardware initialization

  • HDCP handshake

  • HDMI link training

  • Framebuffer allocation

All these operations are handled internally by the closed-source driver and cannot be:

  • Shortened via external PCD or configuration parameters

  • Delayed until after logo display (logo display depends on GOP)

Barrier 3: 1-Second Target vs Current Baseline

Even if we eliminate all other boot time contributors, the GOP initialization alone (~2916ms) exceeds the 1-second requirement. Achieving <1s boot with logo display is mathematically impossible with the current GOP driver.

Specific Requests to NVIDIA

Based on the analysis above, we respectfully request NVIDIA’s support on the following:

Request 1: Portrait Mode Support

  • Please confirm whether 1080x1920 portrait resolution is supported for UEFI boot logo display.

  • If supported, please provide guidance on configuration.

  • If not supported, please consider adding portrait mode support in future UEFI releases.

Request 2: GOP Initialization Optimization

  • Provide an optimized version of nvgop-chips-platform.efi with significantly reduced initialization time (<500ms).

  • Or implement phased GOP initialization:

    • Phase 1: Minimal display capability (just enough to show logo) within <500ms

    • Phase 2: Full display initialization in background after logo is shown

Request 3: Alternative Fast Boot Display Path

  • Is there an alternative method to show a custom logo on HDMI earlier than UEFI GOP?

  • Can the bootloader (MB2) or earlier stage initialize display output?

Additional Information

According to the optimization configuration in the official documentation, some key log outputs in MB1, MB2, UEFI, and rootfs have been disabled. The modification points are as follows:

  1. diff --git a/Linux_for_Tegra/p3701.conf.common b/Linux_for_Tegra/p3701.conf.common
    index f8d526703..03fad1367 100644
    --- a/Linux_for_Tegra/p3701.conf.common
    +++ b/Linux_for_Tegra/p3701.conf.common
    @@ -153,11 +153,11 @@ process_fuse_level()
     
     # Common values and/or defaults across P3701:
     
    -ODMDATA="gbe-uphy-config-22,hsstp-lane-map-3,nvhs-uphy-config-0,hsio-uphy-config-0,gbe0-enable-10g";
    +ODMDATA="gbe-uphy-config-22,nvhs-uphy-config-0,hsio-uphy-config-0,gbe0-enable-10g,hsstp-lane-map-3";
     CHIPID=0x23;
     ITS_FILE=;
     OVERLAY_DTB_FILE="L4TConfiguration.dtbo,tegra234-p3701-overlay.dtbo";
    -CMDLINE_ADD="mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0"
    +CMDLINE_ADD="mminit_loglevel=4 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 net.ifnames=0 quiet"
     target_board="generic";
     ROOTFSSIZE=55GiB;
     ROOT_DEV="mmcblk0p1 ------------ internal eMMC.
    
    
  2. diff --git a/Linux_for_Tegra/bootloader/tegra234-mb1-bct-misc-common.dtsi b/Linux_for_Tegra/bootloader/tegra234-mb1-bct-misc-common.dtsi
    index 32ead8270..e81f40357 100644
    --- a/Linux_for_Tegra/bootloader/tegra234-mb1-bct-misc-common.dtsi
    +++ b/Linux_for_Tegra/bootloader/tegra234-mb1-bct-misc-common.dtsi
    @@ -183,7 +183,7 @@
     #ifdef DISABLE_UART_MB1_MB2
                 log_level = <0>;
     #else
    -            log_level = <4>;
    +            log_level = <0>;
     #endif
                 uart8_usb_port_sel = <0>;
                 usb2_nvjtag = <0>;
    
  3. # Decompile device tree binary (dtb) to device tree source (dts)
    dtc -O dts -o bootloader/generic/tegra234-bpmp-3701-0000-3737-0000.dts -I dtb bootloader/generic/tegra234-bpmp-3701-0000-3737-0000.dtb
    
    # Compile device tree source (dts) to device tree binary (dtb)
    dtc -O dtb -o bootloader/generic/tegra234-bpmp-3701-0000-3737-0000.dtb -I dts bootloader/generic/tegra234-bpmp-3701-0000-3737-0000.dts
    
    

    boottime_serial_060400_log.txt (77.2 KB)

    # Flash the QSPI firmware partition in eMMC individually"
    sudo ADDITIONAL_DTB_OVERLAY="BootOrderEmmc.dtbo" ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml --no-systemimg jetson-agx-orin-devkit internal
    

Hi @yuhaibao,

For JetPack 6.2 / Jetson Linux 36.4.3 on Jetson AGX Orin, the supported UEFI logo customization path is to replace the existing UEFI logo BMP assets.

  1. 1080x1920 portrait logo

    The current Jetson Linux UEFI documentation only describes the standard logo assets:

    • nvidiagray480.bmp
    • nvidiagray720.bmp
    • nvidiagray1080.bmp

    A 1080x1920 portrait UEFI boot logo mode, or UEFI display rotation for this logo path, is not documented as a supported configuration. Your attached boot log also shows the UEFI logo path using Screen 1920x1080, not 1080x1920.

  2. GOP initialization time

    The HDMI logo display depends on the UEFI GOP/display initialization. There is no public Jetson Linux configuration option or PCD setting to shorten nvgop-chips-platform.efi initialization to the sub-500 ms range or to split it into a minimal-logo phase followed by background full initialization.

    Also, please note that the attached log shows a custom/debug UEFI build:

    t23x_general UEFI firmware (version r36.5-b7da3700-dirty ...)
    

    So the timing in this log should not be treated as the stock JetPack 6.2 / R36.4.3 release baseline.

  3. Alternative earlier HDMI logo path

    We do not have a supported MB2-or-earlier HDMI logo display path for Jetson AGX Orin. With the standard Jetson Linux boot flow, HDMI logo output is handled through UEFI GOP, so it cannot be shown before that display path is initialized.

Recommendation:

The 1080x1920 portrait HDMI logo within 1 second after power-on requirement is outside the currently documented/supported Jetson Linux UEFI logo configuration. If you need to evaluate boot-time optimization separately, please benchmark with the stock JetPack 6.2 / Jetson Linux 36.4.3 release UEFI first.

Official documentation pointer:

Hope this helps!

I have already used the r36.5-updates branch from the edk2-repo repository (https://github.com/NVIDIA/edk2-nvidia/wiki/Build) to build the latest version of the UEFI boot file.

Hi @yuhaibao,

Thanks for confirming.

Using the r36.5-updates UEFI source branch means this should be treated as an R36.5/custom UEFI baseline, not a stock JetPack 6.2 / Jetson Linux 36.4.3 baseline.

However, the support answer is still the same: the R36.5 UEFI documentation still only documents replacing the standard logo BMP assets (nvidiagray480.bmp, nvidiagray720.bmp, and nvidiagray1080.bmp). It does not document a supported 1080x1920 portrait UEFI logo mode or display rotation path.

Your log also still shows:

BootLogoEnableLogo: Screen 1920x1080, getting images...

So the 1080x1920 portrait HDMI logo within 1 second after power-on requirement remains outside the currently documented/supported Jetson Linux UEFI logo configuration.

If you want to evaluate boot-time optimization separately, please measure with a consistent stock release baseline, such as stock JetPack 6.2 / Jetson Linux 36.4.3 or stock JetPack 6.2.2 / Jetson Linux 36.5.

R36.5 UEFI documentation:

Thanks.