If you hotplug the cable, will xorg log show anything new?
No, nothing.
But WARN log somtimes appeared.
root@ubuntu:~# tail -f /var/log/Xorg.0.log
[ 25.247] (**) Option "config_info" "udev:/sys/devices/platform/gpio-keys/input/input0/event0"
[ 25.247] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 6)
[ 25.247] (**) Option "xkb_model" "pc105"
[ 25.247] (**) Option "xkb_layout" "us"
[ 25.249] (II) event0 - gpio-keys: is tagged by udev as: Keyboard
[ 25.249] (II) event0 - gpio-keys: device is a keyboard
[ 25.893] (--) NVIDIA(GPU-0): DFP-0: disconnected
[ 25.894] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[ 25.894] (--) NVIDIA(GPU-0): DFP-0: 165.0 MHz maximum pixel clock
[ 25.894] (--) NVIDIA(GPU-0):
[ 3897.181002] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3897.190799] ---[ end trace 743e74b308172ed1 ]---
[ 3897.195639] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3897.205313] ---[ end trace 743e74b308172ed2 ]---
[ 3897.210106] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3897.219792] ---[ end trace 743e74b308172ed3 ]---
[ 3904.338279] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3904.348043] ---[ end trace 743e74b308172ed4 ]---
[ 3904.352853] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3904.362544] ---[ end trace 743e74b308172ed5 ]---
[ 3904.367348] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 3904.377037] ---[ end trace 743e74b308172ed6 ]---
According to the POST above, [tegra234-dcb-p3701-0000-a02-p3737-0000-a01_hdmi.dtsi] cannot handle HPD.
So we applied [tegra234-dcb-p3701-0000-a02-p3737-0000-a01-hdmi-4-ga5.0.2.dtsi],
There was no change in the recognition of HPD.
As far as I could see with dcb_tool -r, there was no difference.
$ dcb_tool -r tegra234-dcb-p3701-0000-a02-p3737-0000-a01_hdmi.dtsi
=== Reading DCB blob ===
########## Tegra DCB BLOB ###############
########### Display Devices #############
Display Devices::
Display Devices : [0]
Type : [TMDS]
CCB : [0]
Heads : 0:[Y] 1:[Y]
Sor : [0 ]
HDMI capable : [1]
Connector : [0]
Bus : [0]
############### CCB Entries ###############
CCB::
*CCB entries that have both I2C and AUX ports unused (value = 31) are not displayed
CCB Index : 0
I2C Port : [6]
AUX Port : [0]
########### Connector entries #############
Connectors::
Connector Index : 0x0
Type : [HDMI]
Hotplug : A:[Y]
################# ******* #################
$ dcb_tool -r tegra234-dcb-p3701-0000-a02-p3737-0000-a01-hdmi-4-ga5.0.2.dtsi
=== Reading DCB blob ===
########## Tegra DCB BLOB ###############
########### Display Devices #############
Display Devices::
Display Devices : [0]
Type : [TMDS]
CCB : [0]
Heads : 0:[Y] 1:[Y]
Sor : [0 ]
HDMI capable : [1]
Connector : [0]
Bus : [0]
############### CCB Entries ###############
CCB::
*CCB entries that have both I2C and AUX ports unused (value = 31) are not displayed
CCB Index : 0
I2C Port : [6]
AUX Port : [0]
########### Connector entries #############
Connectors::
Connector Index : 0x0
Type : [HDMI]
Hotplug : A:[Y]
################# ******* #################
Since WARN logs are generated according to HPD, I think pinmux does not have a problem.
What modifications are needed to dcb-image for R35.3.1?
Hi,
There is actually not much change between rel-35.1 and rel-35.3.1 for DCB/pinmux change.
They are totally same. What you need to change on rel-35.1 are same as rel-35.3.1.
There is actually not much debug could be done here. Orin DCE firmware does not print log and kernel log does not help either.
For now, if you are sure your dcb/dtb/pinmux are all correct, I could only ask you to compare the HDMI schematic with the xavier nx p3509 HDMI part.
Please also convert your finalized dtb to dts and attach it here.
It looks like this thing was not shared in this post before.
They are totally same. What you need to change on rel-35.1 are same as rel-35.3.1.
OK. We will use [tegra234-dcb-p3701-0000-a02-p3737-0000-a01-hdmi-4-ga5.0.2.dtsi] for rel35.3.1.
For now, if you are sure your dcb/dtb/pinmux are all correct, I could only ask you to compare the HDMI schematic with the xavier nx p3509 HDMI part.
I would like to ask if our HW design is correct.
We follow the Design Guide and connect the BUS Lane as follows.

On the other hand, the following user described that after adjusting data lane it solved the problem.
Will the HDMI Output work with our design?
Please also convert your finalized dtb to dts and attach it here.
The finalized dtb to dts is here.
tegra234-p3701-0004-dx-m2000-gen.dts (523.4 KB)
We applied only the EEPROM, PINMUX, and HDMI changes to the R35.1 environment.
As a result, HDMI OUTPUT was appeared at booting UEFI.
In R35.3.1, we have not yet confirmed the output in UEFI either.
Therefore, there seems to be no problem connecting the HDMI Data Lane at the HW level.
However, after transitioning to the Linux Kernel, the HDMI screen was not displayed and
the HPD connected log was not output by Xorg.
root@ubuntu:~# tail -f /var/log/Xorg.0.log
[ 135.965] (**) Option "config_info" "udev:/sys/devices/platform/gpio-keys/input/input0/event0"
[ 135.965] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 6)
[ 135.965] (**) Option "xkb_model" "pc105"
[ 135.965] (**) Option "xkb_layout" "us"
[ 135.966] (II) event0 - gpio-keys: is tagged by udev as: Keyboard
[ 135.966] (II) event0 - gpio-keys: device is a keyboard
[ 136.977] (--) NVIDIA(GPU-0): DFP-0: disconnected
[ 136.977] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[ 136.977] (--) NVIDIA(GPU-0): DFP-0: 165.0 MHz maximum pixel clock
[ 136.977] (--) NVIDIA(GPU-0):
[ 170.924436] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 170.934537] ---[ end trace 9917025e2f6c611c ]---
[ 173.093386] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 173.103465] ---[ end trace 9917025e2f6c611d ]---
[ 183.312647] WARNING: CPU: 0 PID: 274 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 183.322817] ---[ end trace 9917025e2f6c611e ]---
[ 183.908692] WARNING: CPU: 0 PID: 7388 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 183.918840] ---[ end trace 9917025e2f6c611f ]---
What is the difference between R35.1 and R35.3.1 regarding HDMI Output in UEFI?
What is your method to update device tree here? What is your board config now? If it is customized one, please share the content.
Also, just a suggestion. Please stop sharing all these log as partial snippet. The full log is always the best one to check.
Attach your full log as text file here instead of copy and paste.
This is about R35.1.
What is your method to update device tree here?
Fullflash by flash.sh
Linux_for_Tegra_dev$ time sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1
What is your board config now?
・for Board conf
jetson-agx-orin-devkit.conf (3.6 KB)
・for EEPROM
tegra234-mb2-bct-common.dtsi (31.6 KB)
・for PINMUX
tegra234-mb1-bct-padvoltage-p3701-0000-a04.dtsi (2.4 KB)
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi (65.7 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi (4.5 KB)
・for DTB
tegra234-p3737-0000-a00.dtsi (8.8 KB)
tegra234-dcb-p3701-0000-a02-p3737-0000-a01-hdmi-4-ga5.0.2.dtsi (26.8 KB)
tegra234-p3701-0004-p3737-0000.dts (6.5 KB)
Result
Hi,
TBCDTB_FILE=“tegra234-p3701-0000-p3737-0000.dtb”;
This is bootloader dtb which is in use by UEFI. If this is mismatch from your kernel dtb, then behavior would be different.
Also, please share your p3701.conf.common too.
If this is mismatch from your kernel dtb, then behavior would be different.
So, do we always need to change TBCDTB_FILE same as DTB_FILE ?
Also, please share your p3701.conf.common too.
We haven’t change p3701.conf.common. It is default file.
p3701.conf.common (9.2 KB)
Yes please update to same.
Also, share me the whole flash log from flash.sh here.
So, do we always need to change TBCDTB_FILE same as DTB_FILE ?
Yes please update to same.
We updated to same, but HPD didn’t work.
202307271521_jetson-agx-orin-devkit.conf (3.7 KB)
Have you tried to change the GPIO_ACTIVE_HIGH in your os_gpio_hotplug_a to active low?
Also, I don’t suggest you just change things back to rel-35.1. It is kind of wasting time.
I don’t think there would be some situation rel-35.3.1 cannot work but rel-35.1 can work. The UEFI and kernel are totally different drivers to control. UEFI can work fine also does not mean your hardware is fine.
If you ever checked that post whose lanes are connected reversed, you will notice that his boot logo is also fine, but he had problem after entering kernel because the lane 0 and lane 2 are not connected correctly.
Compare your hardware design with p3509 devkit HDMI circuit. You can also compare the software on p3509 +p3767 because the HDMI software is totally same on Orin AGX and Orin nano in this part.
Have you tried to change the GPIO_ACTIVE_HIGH in your os_gpio_hotplug_a to active low?
Yes. However, it was not effective.
display@13800000 {
os_gpio_hotplug_a = <&tegra_main_gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_LOW>;
status = "okay";
};
Just a reminder that everything you changed here require full flash for display case to take effect.
I don’t think there would be some situation rel-35.3.1 cannot work but rel-35.1 can work.
I hope so, but there are difference that rel-35.1 allows HDMI Output in UEFI, while rel-35-3.1 does not.
Again, we changed only EEPROM, PINMUX, CONF, and DTB with the new rel35.3.1 Linux_for_Tegra, same as in rel-35.1 and rechecked.
As a result, HDMI Output was not possible in UEFI with rel35.3.1.
The UEFI and kernel are totally different drivers to control.
OK, So when will DCB Firmware start working?
Where are the entities such as binary for DCB Firmware?
I see that DCB Firmware refers to nvidia,dcb-image in DTB, Is it DTB_FILE or TBCDTB_FILE?
This is a part in the Linux Kernel that defines os_gpio_hotplug_a.
Is this not DCB Firmware? Also, is this process working?
[soruces/tegra/kernel-src/nv-kernel-display-driver/NVIDIA-kernel-module-source-TempVersion/kernel-open/nvidia/nv-gpio.c]
/*!
* @brief Mapping array of OS GPIO function ID to OS function name,
* this name is used to get GPIO number from Device Tree.
*/
static const char *osMapGpioFunc[] = {
[NV_OS_GPIO_FUNC_HOTPLUG_A] = "os_gpio_hotplug_a",
[NV_OS_GPIO_FUNC_HOTPLUG_B] = "os_gpio_hotplug_b",
};
Compare your hardware design with p3509 devkit HDMI circuit.
Thank you for your suggestion. we also check hardware design too.
DCE firmware is display-t234-dce.bin in your Linux_for_Tegra/bootloader path.
This is not open source and that is why there is not much to able to check.
The source code you are referring to is the host side part driver which is interact with DCE.