Unable to read EDID for HDMI on AGX Orin

Hi Nvidia:
We’re using AGX Orin 64GB + Customized Board with HDMI + Jetpack 6.1.
We used hardware/nvidia/t23x/nv-public/overlay/tegra234-dcb-p3767-0000-hdmi.dts in source code as dcb image for AGX Orin. Also, we we enabled the GPIO pin to get Hotplug working.
The full changed file can be found in patch:
0001-Enable-HDMI-4K.patch.txt (33.0 KB)

Also, if you want to check the dcb file:
js1000-hdmi.dts.txt (28.4 KB)

This trick worked back in Jetpack 5.1.2, hence HW design should be OK.
However, after upgrading to Jetpack 6.1, the login session will not able to display properly in 4K resolution, as shown in the video:

In 0:54, AGX Orin is in UEFI stage. As you can see, the resolution is abnormal, contents only displayed in the center of the monitor (Dell P2415QB).
In 1:08, AGX Orin is booting in kernel. The resolution remained abnormal.
In 1:29, AGX Orin is now at Login session, but with corrupted frames. It only recovered by replug the HDMI cable.
In 1:40, we login into OS, but the display is still not working. Though it back to normal in 1:53, but soon dead again right after 3 secs.
In 2:03, we re-plug the HDMI cable. It’s back to normal, but still got a chance to dead again (not captured this time. But it might suddenly dead again like 1:53.)

Xrandr looks OK; Serial log showed nothing special, hence we dumped dmesg:
hdmi-poweroff-dmesg.txt (62.3 KB)

This issue also happened even we upgrade to Jetpack 6.2. But we want to remain in Jetpack 6.1 if possible.
We also tried another monitor (AOC_U2829VF), and the issue remained:

We tried Orin NX 16G + Jetpack 6.2 + HDMI, worked like charm.
We tried different HDMI cables, issue remained.

Please Help.

Many Thanks.

Hi James,

This trick worked back in Jetpack 5.1.2, hence HW design should be OK.

Sorry that I am little confused here. What trick are you talking about here? Are we using EDID from physical monitor or some hacked method?

Hi WayneWWW:
Sorry for the misleading.
Trick means HDMI porting.

So same DCB/trick would work on Orin NX + your custom board + HDMI but failed only on Orin AGX?

Hi WayneWWW:

Orin NX 16GB + this DCB on Jetpack 6.2 + custom board for NX + HDMI is working.
AGX Orin 64GB + this DCB on Jetpack 6.1 + custom board for AGX + HDMI is not working.

But xrandr can give you the correct result?

Yes, xrandr showed the same.
Here is xrandr output when snowing:
xrandr-when-snowing.txt (667 Bytes)

Here is xrandr after re-plug HDMI, which were captured when it acts normal:
xrandr-when-snowing.txt (667 Bytes)

Edit:
We test several reboots, sometimes ( 30~40%) dmesg will output another error:
dmesg-flip-event.txt (63.2 KB)

[ 25.054962] [drm:nv_drm_atomic_commit [nvidia_drm]] ERROR [nvidia-drm] [GPU ID 0x00020000] Flip event timeout on head 0

Not sure if this message helped. In our observations, this error message might or might not output when the issue is hit.

Hi WayneWWW:
We found a way to reproduce this issue on AGX Orin + HDMI + Jetpack 6.1.

  1. Boot to OS
  2. In Login sessions, use Ctrl + Alt + F4 to switch to another tty console ( 80% chance the console is working while 20% chance will lead to snowing screen)
  3. Ctrl + Alt + F1 to switch back to Login sessions.
  4. Screen are now snowing. Serial console reported:

[ 25.054962] [drm:nv_drm_atomic_commit [nvidia_drm]] ERROR [nvidia-drm] [GPU ID 0x00020000] Flip event timeout on head 0

We login and get the dmesg output:
ctrl-alt-dmesg.txt (63.5 KB)


We did the same test on Orin NX + HDMI + Jetpack 6.2.

  1. Boot up
  2. Ctrl + Alt + F4, leads to snowing screen (100%)
  3. Ctrl + Alt + F1, mostly normal login session. However, after we login, around 60% chance will lead to corrupted display, as shown in picture:

The OS is still alive, I can get the dmesg output:
ctrl-alt-NX-dmesg.txt (59.6 KB)

There is also a message about flip event:

[ 136.534348] NVRM nvCheckFailedNoLog: Check failed: CliGetEventInfo(rpc_params->hClient, rpc_params->hEvent, &pEvent) @ dce_client_rpc.c:337
[ 139.745611] [drm:nv_drm_atomic_commit [nvidia_drm]] ERROR [nvidia-drm] [GPU ID 0x00020000] Flip event timeout on head 0


Just another callback, this monitor does not work on AGX Orin + MST board + DP 4K output before. Ref
We modified the DSC_FORCE_DISABLE when we were trying to display 4K resolution via MST board on this monitor. FYI.

Please help.

Many Thanks.

Hi @bross_kuo

Is your step (alt+ctrl +F4/F1) able to reproduce this issue on devkit? Orin + Xavier NX devkit carrier board which has HDMI port.

Hi Wayne,
I can’t reproduce this issue on Orin NANO 8G + Xavier NX devkit carrier board with Jetpack 6.2,
Ctrl + Alt + F4 → 20250220_2.jpg
Ctrl + Alt + F1 → 20250220
thanks.



.jpg

Hi BrossKuo:
Thanks for the support. Can you please try on a 4K monitor?

Many Thanks.

Hi James,
I try to use 4k monitor to do test,
resolution is 4K@30 when booting, but change to 1080P@60 when enter desktop,
and unable to change to 4k resolution in display settings, no idea why,
of course, still can’t reproduce this issue,
BTW,
it looks not 4K monitor in the picture you provided?
thanks.

Hi,

If issue is not able to be reproduced on NV devkit, then I think reviewing the hardware schematic might be needed. It is not possible to debug this error remotely.

Hi Bross:
I’m sure it’s 4K resolution, by checking xrandr. The reason it looks like 1080p it’s because we change the scaling option to 200 % in display settings. We also tried tests on both scaling 100% and 200%, it does not effect the issue happening or not.

We just tried on another monitor, BenQ EL2870U, the results are pretty different.
The monitor can still display normally, but the dmesg still output Unable to read EDID and Flip event timeout.
Consider that this monitor can display normally in MST chip situation mentioned before, I’ll give it a try about FSC.

I think the HW should be fine, since JP 5.1.2 is working find.

Hi James,
I check resolution by monitor’s OSD, it should be correct,
I also check again, dmesg without “Unable to read EDID”,
and I use “xrandr --verbose” command able to get EDID info in DP-1 section in desktop mode(in CLI mode, get “Can’t open display” error), it will be null when HDMI unplug,
and what is FSC?
thanks.

Hi Bross:
Sorry for the late response.
DSC, not FSC, that’s a typo. And I just found that’s the option for DP, not HDMI.
I can also get EDID info in desktop even when dmesg said unable to read EDID, it might not be the root cause:
xrandr-and-EDID.txt (7.6 KB)

We really need your help. Hardware should be OK not only because we passed the SI test, also it worked on Jetpack 5.1.2.

Hi Wayne, Bross:
We are still trying to reproduce the issue on Xavier NX.
Before that, we also want to check that:

  1. We were trying to set PREEMPHASIS and PRESHOOT to 0x10101010 by modifying DCB image. From the info we dumped, it seems the value is set correctly:
    After dcbFile.txt (16.4 KB)
    After flashing, the PREEMPHASIS value from 0x1380c120 is 0x10101010, but the PRESHOOT is still remain 0x00. Is the value set wrong?

1.a These value seems to adjust the HDMI data lane and clock lane, right? Since the dmesg reported Unable to read EDED, is there a way to amplify the signal strength on DP_AUX_CH2_N and DP_AUX_CH2_P?

  1. We were thinking about another workaround that will trigger the hotplug event after bootup to reduce the change of triggering the issue. But I can’t get the IRQ number nor expose it to /sys/class in source/nvdisplay/kernel-open/nvidia/nv-gpio.c. printk, pr_info, nv_printf didn’t show anything on this file, but it’s the only one we found in source about HDMI hotplug. Is it even possible to expose the IRQ?

Please help.

Many Thanks.

Are you saying that the change of “PREEMPHASIS” in dcb will take effect but PRESHOOT won’t?

Hi:
Yes, as shown:
image

How did you operate the dcb tool to update PRESHOOT?