L4T r35.1 UEFI has no HDMI output on custom board

Hi

We are developing Jetpack 5.0 BSP on our Xavier custom board. Our question is:

  • Failed to output HDMI display during UEFI.
  • Success to output HDMI display during kernel boot.

After tracing source code, UEFI is failed to discover T194GraphicsOutputDxe driver in function GetFirstWinForThisHead.

Here’s the debugging trace log in UEFI:

Head index=0 DC_DISP_SYNC_WIDTH  = 0x00000000
Head index=0 DC_DISP_BACK_PORCH  = 0x00000000
Head index=0 DC_DISP_FRONT_PORCH = 0x00000000
Head index=0 DC_DISP_DISP_ACTIVE = 0x00000000 = 0 x 0
GetFirstWinForThisHead: Head index 0 Window index=0  Disabled
GetFirstWinForThisHead: Head index 0 Window index=1  Disabled
GetFirstWinForThisHead: Head index 0 Window index=2  Disabled
GetFirstWinForThisHead: Head index 0 Window index=3  Disabled
GetFirstWinForThisHead: Head index 0 Window index=4  Disabled
GetFirstWinForThisHead: Head index 0 Window index=5  Disabled

It looks it get zero from display controller registers at any offset, e.g. DC_DISP_SYNC_WIDTH, DC_DISP_BACK_PORCH, …

Could you guide my any further info to debug this ? Thanks.

Are you sure your change in kernel dtb also applied to UEFI dtb?

yes, I do the following steps to apply kernel dtb to UEFI dtb (all steps on done in driver package)

  1. Update kernel dtb to kernel/dtb
  2. Remove bootloader/<kernel dtb> in case flash.sh didn’t update my updated kernel dtb
  3. Put machine into recovery mode
  4. Run command to flash UEFI dtb only.
    sudo ./flash.sh -r -k bootloader-dtb <model> mmcblk0p1
  5. Check updated dtb is applied in UEFI by checking model name.

Please share full log from serial console.

Hi @WayneWWW

Please see attached UEFI boot log.

UEFI-Boot-Log.txt (78.9 KB)

[0002.097] I> tegrabl_gpio_driver_register: register ‘max20024-gpio’ driver
[0002.097] I> Boot-device: eMMC
[0002.097] I> Boot_device: SDMMC_BOOT instance: 3
[0002.099] I> sdmmc-3 params source = boot args
[0002.101] W> No board IDs available
[0002.102] E> Failed to get board id info!
[0002.105] I> sdmmc bdev is already initialized
[0002.110] I> sdmmc-3 params source = boot args
[0002.116] I> Found 20 partitions in SDMMC_BOOT (instance 3)
[0002.122] I> Found 41 partitions in SDMMC_USER (instance 3)
[0002.136] E> cannot find any other nvdisp nodes
[0002.136] E> no valid display unit config found in dtb
[0002.139] W> display init failed
[0002.139] initializing target
[0002.140] calling apps_init()
[0002.143] starting app kernel_boot_app
[0002.146] I> Kernel type = Normal

Looks like bootloader cannot find correct device tree node. You better doing full flash.

Hi @WayneWWW
Thanks for your hint.
It looks like UEFI doesn’t support HDMI hotplug so we need to release HDMI reset pin during nvdisp-init stage. We manage the HDMI reset pin by tca9539 but tca9539 driver was not compiled into nvdisp-init.bin out from release. After changing cboot source, UEFI on HDMI works now.

Here’s the successful UEFI on HDMI log:

[0001.872] I> NVDisp-Init version: t194-5fe22d2e
[0001.873] I> CPU-BL Params @ 0xca020000
[0001.873] I>  0) Base:0x00000000 Size:0x00000000
[0001.873] I>  1) Base:0xc8300000 Size:0x00100000
[0001.874] I>  2) Base:0xc9800000 Size:0x00200000
[0001.874] I>  3) Base:0xc8600000 Size:0x00200000
[0001.877] I>  4) Base:0xc8200000 Size:0x00100000
[0001.881] I>  5) Base:0xc8100000 Size:0x00100000
[0001.885] I>  6) Base:0xc9400000 Size:0x00400000
[0001.890] I>  7) Base:0xc9000000 Size:0x00400000
[0001.894] I>  8) Base:0xc8000000 Size:0x00100000
[0001.899] I>  9) Base:0xc7f00000 Size:0x00100000
[0001.903] I> 10) Base:0xca800000 Size:0x00800000
[0001.908] I> 11) Base:0x40000000 Size:0x00040000
[0001.912] I> 12) Base:0xc7e00000 Size:0x00100000
[0001.917] I> 13) Base:0x40046000 Size:0x00002000
[0001.921] I> 14) Base:0x40048000 Size:0x00002000
[0001.926] I> 15) Base:0xaf000000 Size:0x00004000
[0001.930] I> 16) Base:0x4004a000 Size:0x00002000
[0001.935] I> 17) Base:0xc7c00000 Size:0x00100000
[0001.939] I> 18) Base:0x4004c000 Size:0x00002000
[0001.943] I> 19) Base:0xc9a00000 Size:0x00600000
[0001.948] I> 20) Base:0x4004e000 Size:0x00002000
[0001.952] I> 21) Base:0xc7dc0000 Size:0x0000c000
[0001.957] I> 22) Base:0x00000000 Size:0x00000000
[0001.961] I> 23) Base:0xc7de0000 Size:0x00020000
[0001.966] I> 24) Base:0xcc000000 Size:0x02000000
[0001.970] I> 25) Base:0x40050000 Size:0x00002000
[0001.975] I> 26) Base:0x40040000 Size:0x00006000
[0001.979] I> 27) Base:0xc8c00000 Size:0x00400000
[0001.984] I> 28) Base:0xc8400000 Size:0x00200000
[0001.988] I> 29) Base:0xc8800000 Size:0x00400000
[0001.993] I> 30) Base:0xc7dd0000 Size:0x00010000
[0001.997] I> 31) Base:0x00000000 Size:0x00000000
[0002.001] I> 32) Base:0xf8000000 Size:0x08000000
[0002.006] I> 33) Base:0xce000000 Size:0x2a000000
[0002.010] I> 34) Base:0xcb000000 Size:0x01000000
[0002.015] I> 35) Base:0xae000000 Size:0x01000000
[0002.019] I> 36) Base:0xa0000000 Size:0x0e000000
[0002.024] I> 37) Base:0xca000000 Size:0x00800000
[0002.028] I> 38) Base:0x80000000 Size:0x20000000
[0002.033] I> 39) Base:0xb0000000 Size:0x08000000
[0002.037] I> 40) Base:0x00000000 Size:0x00000000
[0002.042] I> 41) Base:0x00000000 Size:0x00000000
[0002.046] I> 42) Base:0x00000000 Size:0x00000000
[0002.051] I> 43) Base:0x00000000 Size:0x00000000
[0002.055] I> 44) Base:0x00000000 Size:0x00000000
[0002.060] I> 45) Base:0x00000000 Size:0x00000000
[0002.064] GIC-SPI Target CPU: 0
[0002.067] Interrupts Init done
[0002.070] calling constructors
[0002.073] initializing heap
[0002.075] I> Heap: [0xa0960000 ... 0xadf00000]
[0002.080] initializing threads
[0002.083] initializing timers
[0002.085] creating bootstrap completion thread
[0002.090] top of bootstrap2()
[0002.092] CPU: MIDR: 0x4E0F0040, MPIDR: 0x80000000
[0002.097] initializing platform
[0002.100] E> DEVICE_PROD: Invalid value data = 0, size = 0.
[0002.105] W> device prod register failed
[0002.109] I> Bl_dtb @0xadf00000
[0002.112] I> gpio framework initialized
[0002.125] I> tegrabl_gpio_driver_register: register 'nvidia,tegra194-gpio' driver
[0002.129] I> tegrabl_gpio_driver_register: register 'nvidia,tegra194-gpio-aon' driver
[0002.131] I> tegrabl_tca9539_init: i2c bus: 7, slave addr: 0x40
[0002.142] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0002.144] I> tegrabl_tca9539_init: i2c bus: 7, slave addr: 0x42
[0002.155] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0002.161] I> fixed regulator driver initialized
[0002.188] I> register 'maxim' power off handle
[0002.190] I> virtual i2c enabled
[0002.191] I> registered 'maxim,max20024' pmic
[0002.191] I> tegrabl_gpio_driver_register: register 'max20024-gpio' driver
[0002.192] I> Boot-device: eMMC
[0002.192] I> Boot_device: SDMMC_BOOT instance: 3
[0002.194] I> sdmmc-3 params source = boot args
[0002.195] W> No board IDs available
[0002.196] E> Failed to get board id info!
[0002.200] I> sdmmc bdev is already initialized
[0002.204] I> sdmmc-3 params source = boot args
[0002.211] I> Found 20 partitions in SDMMC_BOOT (instance 3)
[0002.216] I> Found 41 partitions in SDMMC_USER (instance 3)
[0002.238] I> enabling 'vdd-hdmi-5v0' regulator
[0002.246] I> regulator 'vdd-hdmi-5v0' already enabled
[0002.246] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0002.246] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0002.248] E> cannot find any other nvdisp nodes
[0002.248] E> no valid display unit config found in dtb
[0002.253] W> display init failed
[0002.254] initializing target
[0002.256] calling apps_init()
[0002.259] starting app kernel_boot_app
[0002.263] I> Kernel type = Normal

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.