AGX Orin 32G HDMI couldn't display in L4T 36.4.3

Hi, teams. With our own carrier board, the HDMI couldn’t display. I patched L4T 36.4.3 as follows, based on other discussions in the forum:

  1. I modified bootloader tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi :
    dp_aux_ch0_hpd_pm0 {
    nvidia,pins = "dp_aux_ch0_hpd_pm0";
    nvidia,function = "rsvd1";
    nvidia,pull = <TEGRA_PIN_PULL_NONE>;
    nvidia,tristate = <TEGRA_PIN_ENABLE>;
    nvidia,enable-input = <TEGRA_PIN_ENABLE>;
    nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
    nvidia,lpdr = <TEGRA_PIN_DISABLE>;
    };

  2. added TEGRA234_MAIN_GPIO(M, 0) in tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi :
    gpio@2200000 {
    gpio-init-names = "default";
    gpio-init-0 = <&gpio_main_default>;
    gpio_main_default: default {
    gpio-input = <
    ...
    TEGRA234_MAIN_GPIO(M, 0)

  3. added “os_gpio_hotplug_a” in tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi :
    display@13800000 {
    os_gpio_hotplug_a = <&gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_HIGH>;
    status = "okay";
    };

  4. I copied tegra234-dcb-p3767-0000-hdmi.dts to tegra234-dcb-p3737-0000-hdmi.dts, and added in Makefile:
    dtbo-y += tegra234-dcb-p3767-0000-hdmi.dtbo
    dtbo-y += tegra234-dcb-p3737-0000-hdmi.dtbo
    dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3701-0004.dtbo

    Used dcb_tool read tegra234-dcb-p3737-0000-hdmi.dts:

  5. I added tegra234-dcb-p3737-0000-hdmi.dtbo in jetson-agx-orin-devkit.conf:
    OVERLAY_DTB_FILE="L4TConfiguration.dtbo,tegra234-p3737-0000+p3701-0000-dynamic.dtbo,tegra234-carveouts.dtbo,tegra-optee.dtbo,tegra234-dcb-p3737-0000-hdmi.dtbo";
    DCE_OVERLAY_DTB_FILE="tegra234-dcb-p3737-0000-hdmi.dtbo";

  6. finally, I recompiled kernel, dtbs and flash all images.
    sudo ./flash.sh jetson-agx-orin-devkit internal
    Some flash log:

  7. But I couldn’t find gpio-424 (PM.00) any thing by follow command:
    cat /sys/kernel/debug/gpio


    gpioinfo |grep PM

  8. I run xrandr print hdmi disconnected,but I had connected hdmi cable:
    image
    Here is nvidia display module:

  9. I might read ‘os_gpio_hotplug_a’ at device tree and I might also read the value by decompiling /proc/device-tree :


    sudo dtc -I fs -O dts -s -S 4 -o 1.dts /proc/device-tree
    image

  10. Nothing print when I plugged hdmi cable.

  11. We might capture waves by I2C when hdmi cable was plugged, but We read i2c6 which printed timeout by i2cdetect command.

  12. This is our hardware sche:


Hi,

Did this board ever work in rel-35 before?

Looks like the hotplug detection never working.
Have you measure the hardware signal of HPD during hotplug?

Also, could you attach the full boot up log but not such partial screenshot?

Hi,@WayneWWW

We detected HPD changed 0 to 1.8V when cable plugged. The first time we used agx orin module on our carrier board, so we just only downloaded l4t-36.4.3. I might read hpd register 0x02440030 show 0x00001051. When we plugged the cable, how to get hpd gpio value by software, like register or cat /sys/kernel/debug gpio?
Here is boot up log and flash log:
Jetson_AGX_Orin_64G_flash.txt (102.8 KB)
Jetson_AGX_Orin_64G_bootup.txt (103.3 KB)

It is not possible to do that on rel-36. The firewall setting already blocked CCPLEX to access such register.
Also, please try more monitors. EDID read on Orin is part of HPD detection too. If you provide a monitor that has no EDID, then it will be seen as “not detected” too.

Hi,@WayneWWW

We tried to 3 types of screens,AOC,Samsung and ASUS. There was nothing by dmesg when we plugged cable. Then we degraded re3561,when we plugged cable, printed gpio irq error:

Here is version:

Print disconnected:

Here is log:
re3561_kernel_log.txt (101.1 KB)

We reviewed hardware, couldn’t find difference.

Hi,

For rel-35, we have a existing patch over this post that you could apply.

If even this one does not work for you, then it is hardware problem.
Please review with design guide document.