OK, I think I’m beginning to understand what is going on.
-
Following WayneWWW’s anwser, I found out that HDMI 2.0 was disabled on Dell UP3216Q by default. I feel dumb because I should have started looking there first. Now the TX2 works fine at 2160p60.
-
Concerning my initial issue, the R28.1 release did not change anything, but I have enough information now to know that it’s the TV’s falt. Before starting using the Dell, I was using OLED UHD TVs from LG and always got problems with booting when connected to these TVs. Probably it’s a problem of the TVs being non-compliant. Or their particular behavior cause unknown bugs in the kernel/HDMI driver which crash the system at boot. Anyway, I don’t expect any fix on this issue any time soon, because the problem is only present on those TVs and I’m probably the only one in the world to use them with a Jetson.
To summarize:
- As far as I’m concerned, 2160p60 works out of the box provided compliant EDID.
- The OLED LG UHD TVs trigger unknown bugs in the kernel, which render them totally unusable with a Jetson (TX1/TX2). It’s unlikely anyone will ever chase such weird and use-case specific bugs.
EDIT: after more careful testing, it turns out that only one TV interrupts boot. On 2 other TVs (maybe the same model); the Jetson boots in 1080p.
In the Xorg log, the 2160p60 mode is rejected (still with “ModeDebug”) because “YUV mode is not supported”.
This reopens the issue of forcing a mode.
I extracted a correct mode with the DELL monitor, which is reported by xorg as follows:
[ 580.945] (II) NVIDIA(GPU-0): Validating Mode "3840x2160_60":
[ 580.945] (II) NVIDIA(GPU-0): Mode Sources: NVIDIA Predefined, EDID, CEA, Detailed
[ 580.945] (II) NVIDIA(GPU-0): 3840 x 2160 @ 60 Hz
[ 580.945] (II) NVIDIA(GPU-0): Pixel Clock : 594.18 MHz
[ 580.945] (II) NVIDIA(GPU-0): HRes, HSyncStart : 3840, 4016
[ 580.945] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 4104, 4400
[ 580.945] (II) NVIDIA(GPU-0): VRes, VSyncStart : 2160, 2168
[ 580.945] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 2178, 2250
[ 580.945] (II) NVIDIA(GPU-0): H/V Polarity : +/+
[ 580.945] (II) NVIDIA(GPU-0): Mode "3840x2160_60" is valid.
I added this line to xorg.conf:
Modeline "3840x2160_60.00" 594.18 3840 4016 4104 4400 2160 2168 2178 2250 +HSync +VSync
It fails in the same way:
[ 580.952] (WW) NVIDIA(GPU-0): Validating Mode "3840x2160_60":
[ 580.952] (WW) NVIDIA(GPU-0): Mode Source: X Configuration file ModeLine
[ 580.952] (WW) NVIDIA(GPU-0): 3840 x 2160 @ 60 Hz
[ 580.952] (WW) NVIDIA(GPU-0): Pixel Clock : 594.18 MHz
[ 580.952] (WW) NVIDIA(GPU-0): HRes, HSyncStart : 3840, 4016
[ 580.952] (WW) NVIDIA(GPU-0): HSyncEnd, HTotal : 4104, 4400
[ 580.952] (WW) NVIDIA(GPU-0): VRes, VSyncStart : 2160, 2168
[ 580.952] (WW) NVIDIA(GPU-0): VSyncEnd, VTotal : 2178, 2250
[ 580.952] (WW) NVIDIA(GPU-0): H/V Polarity : +/+
[ 580.952] (WW) NVIDIA(GPU-0): Mode is rejected: Only modes from the NVIDIA X driver's
[ 580.952] (WW) NVIDIA(GPU-0): predefined list and modes from the EDID are allowed
[ 580.952] (WW) NVIDIA(GPU-0): Mode "3840x2160_60" is invalid.
So, obviously, ModeLine workaround can’t work anyway (mode does not come from EDID → is not compared to predefined list → is rejected because “NVidia predefined” is missing from “Mode Sources”).