HDMI not working on custom board

Hardware:
Orin nano module P3767-0003(with 256GB nvme) + customboard.

Custom borad status:

  1. Modified form Orin nano dev kit, but changed DP to HDMI.
  2. No EEPROM on it.

Jetpack:
5.1.3

My target:
Enable the HDMI output on custom borad.

Method:

  1. I copied p3768-0000+p3767-0000.conf, named it p3768-0000+p3767-0000-zhou.conf, and modified two places:

    -PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi";
    -PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3767-dp-a03.dtsi";
    +PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3767-hdmi-a03.dtsi";
    +PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3767-hdmi-a03.dtsi";
    
  2. Modify ./bootloader/t186ref/BCT/tegra234-mb2-bct-misc-p3767-0000.dts:

    cvb_eeprom_read_size = <0x0>;
    
  3. Modify ./bootloader/t186ref/BCT/tegra234-mb2-bct-scr-p3767-0000.dts:

    +reg@322 { /* GPIO_M_SCR_00_0 */
    +          exclusion-info = <2>;
    +          value = <0x38009696>;
    +        };
    
  4. Download kernel, then modify ./source/public/hardware/nvidia/platform/t23x/p3768/kernel-dts/tegra234-p3767-0000-p3768-0000-a0.dts.

    -#include "tegra234-dcb-p3767-0000-dp.dtsi"
    +#include "tegra234-dcb-p3767-0000-hdmi.dtsi"
    
  5. Then build the kernel and apply new image\dtb according to Kernel customization.

Sucessed flash with command:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 p3768-0000+p3767-0000-zhou internal

host_log.txt (317.7 KB)

Issues:
Sadly no output on hdmi at all…

1.xrandr can query HDMI device, but when HDMI cable is plugged in or not, it aways shows disconnected.

xrandr --query -display :0.0

2.Tips for checking HPD is working, when HDMI cable is plugged in it shows ‘1’.

echo 424  > /sys/class/gpio/export
cat /sys/class/gpio/PM.00/value

So please help me.
Thanks!

By the way:

  1. I can’t use p3509-a02+p3767-0000.conf for flashing, because my custom board nvme doesn’t fit for it.

The gpio hotplug node is not added to device tree. Please check the display node under p3509 device tree and you will know what I am telling.

Decompile tegra234-p3767-0000-p3509-a02.dtb I can see “os_gpio_hotplug_a = <0x6 0x60 0x0>;”
Do you mean this?

Yes, it means os_gpio_hotplug_a = <&gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_HIGH>;

Thanks, then how can this be achieved?

achieve what…?

Sorry for that reply, I mean how to patch “os_gpio_hotplug_a = <&gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_HIGH>;”?

Add it to your device tree…

Do you mean this:

  1. Decompile tegra234-p3767-0000-p3768-0000-a0.dtb, then add node “os_gpio_hotplug_a = <&gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_HIGH>;” under “display@13800000”?

Add it to your source code… just as what you just did

Download kernel, then modify ./source/public/hardware/nvidia/platform/t23x/p3768/kernel-dts/tegra234-p3767-0000-p3768-0000-a0.dts.

Sorry, I am newbie to modifying the device tree. Anyway I will try the method you mentioned.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.