I am able select only 1280x720 resolution even though HDMI monitor has 4K resolution support in the custom board with Xavier NX/Nano SoM. I have tried with both from GUI and xrandr commands. Did i miss any configuration changes? How to operate HMDI at 4K resolution
You can add an option to the “/etc/X11/xorg.conf” file, and this will allow you to see the log of what the driver thinks of every mode. In “/etc/X11/xorg.conf”, find the Section "Device", and add this option in the block:
Section "Device"
...
Option "ModeDebug"
...
Then reboot. Once rebooted, save a copy of “/var/log/Xorg.0.log” (in some cases it might be “Xorg.1.log”. You could rename this with a “.txt” file name extension, and then attach it to one of your posts here. This will tell you exactly which modes can be used.
Our driver has a mechanism to use hardcoded 720p edid when driver fails to read edid from your moniotr. Thus, have to check the dmesg.
If you already confirmed (1), and driver no error. Then maybe nothing we can help.
Tegra driver has some limitation that it will filter out some modes that are not supported. The configuration @linuxdev mentioned here is the way to enable debug log in xorg.0.log. If even the modes are not shown in xorg.0.log, it means kernel filters it out.
[ 2.316680] tegra-i2c 3190000.i2c: no acknowledge from address 0x30
[ 2.396787] tegra_edid_read_block: remainder is 130 for the last 5 attempts. Assuming bad sink EDID and ignoring. New checksum is 125
EDID read fail error in custom carrier board because it is trying to get EDID data from i2c slave address “0x30”. In case of devkit EDID data is read from i2c slave address “0x50”. Need to check why it is trying to read from “0x30” instead of “0x50”.
Any inputs on this will be helpful.
You might want to export the device tree source and post it here: dtc -I fs -O dts -o extracted_dts.txt /proc/device-tree
If you don’t have dtc installed, then “sudo apt-get install device-tree-compiler”. The device tree you export will show various i2c controller and HDMI settings the kernel used as it booted.
Do you ever change the HDMI monitor here? Will all of them hit this issue?
Also, please make sure you are using pure HDMI monitor but not something go through adapter.
I just checked the driver code to read edid, 0x30 is always there. Thus, the software should be no problem because this even work on NX devkit.
If I change the clock frequency of the i2c bus from 100kHz to 400kHz, it’s trying to get ack from 0x50 and ack is failing. Board is not supporting other resolutions like 1080p and 4K in this case.
If this only happens on custom board, then it highly possible is a design issue. Please compare your design to reference and check the design example in OEM DG, especially on the level shift of DDC and CEC lines.