Orin nx dp enable fail

Orin nx (16GB) DP failed to start, I referred to the following website to modify the DP output, and also modified the GPIO pin multiplexing. However, after power on, DP cannot output and an error will be reported.

https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/SD/Kernel/DisplayConfigurationAndBringUp/OrinDisplayconfig.html#sd-kernel-displayconfigurationandbringup-orindisplayconfig

When I connect the DP cable, the following error message appears.
[ 92.731880] WARNING: CPU: 0 PID: 0 at drivers/gpio/gpio-tegra186.c:937 tegra186_gpio_irq+0x1ac/0x1f0
[ 92.741786] —[ end trace beb94c49bf5fbcb1 ]—

log
log.txt (59.0 KB)

dtb file:
tegra234-p3767-0000-p3509-a02.dtb (333.5 KB)

I can confirm that there is no problem with the DP hardware on the baseboard, because we were able to get output using another core board.

I modified the pin multiplexing, adjusted the DCB image, and re-flashed the system, but still cannot get any output. Is there anything wrong that I missed? What materials do I need to provide to help solve this problem?
thanks.

please remove the hotplug gpio from your dtb.

del the os_gpio_hotplug_a = <0x05 0x60 0x00>;?

Yes, that is for HDMI to use.

And please make sure to do full flash. You cannot upgrade dtb only.

Okay, thank you. I’ll give it a try, but I may not be able to tell you the results until tomorrow. I hope to see the output screen.

I re-flashed the system after modifying the configuration, but there is still no output from the display port (DP).
Let me summarize the changes I have made:
First, adjust the pinmux configuration according to the Jetson_Orin_NX_series_and_Orin_Nano_series_Pinmux_Config_Template.xlsm. After the adjustment, use the Jetson_Orin_NX_Series_+HDMI A03 configuration, which has already been modified for the dp (display port).
Replace the generated dtsi file to Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3767-hdmi-a03.dtsi.
tegra234-mb1-bct-pinmux-p3767-hdmi-a03.dtsi (65.8 KB)

Then adjust the dcb parameters. The adjustment file is located at: Linux_for_Tegra\sources\hardware\nvidia\platform\t23x\concord\kernel-dts\tegra234-dcb-p3701-0000-a02-p3737-0000-a01.dtsi.
tegra234-dcb-p3701-0000-a02-p3737-0000-a01.dtsi (27.5 KB)
refer to the following website:

Meanwhile, according to the problem you mentioned earlier, you have deleted the HDMI plug-and-play detection pin in the following file: Linux_for_Tegra\source\public\hardware\nvidia\platform\t23x\p3768\kernel-dts\cvb\tegra234-p3509-a02.dtsi.

Finally, the system was recompiled and fully flashed using the 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 p3509-a02+p3767-0000 internal

However, the DP still does not display any output. Did I miss any steps, or is there something wrong with the previous configuration? The DP hardware should not have any issues because it can output DP signals using our own designed carrier board with the Xavier NX core board.

dmesg log:
dmesg.log (71.3 KB)

I have been debugging for many days and have been stuck in this place. I hope you can help me solve the problem. Thank you very much.

Hi,

Are you talking about you updated the dcb in the file tegra234-dcb-p3701-0000-a02-p3737-0000-a01.dtsi?

Yes, I updated this file with the data mentioned on the previous website。
Did I update the wrong place, or is there a problem with the data I used?

Yes, that is the wrong place. Please trace the source code of tegra234-p3767-0000-p3509-a02.dts.

There should be a file as this one.
->tegra234-dcb-p3767-0000-hdmi.dtsi

And there is another file which is for DP.
→ tegra234-dcb-p3767-0000-dp.dtsi

The dcb image in that “dp” dtsi is for displayport… so you just need to swap the file from hdmi one to dp one and you don’t need to update dcb image manually.

1 Like

I traced the tegra234-p3767-0000-p3509-a02.dts file and found that it calls the tegra234-dcb-p3767-0000-hdmi.dtsi file. I replaced the contents of this file with the contents of the tegra234-dcb-p3767-0000-dp.dtsi file, and restored the original values in the tegra234-dcb-p3701-0000-a02-p3737-0000-a01.dtsi and tegra234-p3509-a02.dtsi files. After recompiling, I obtained a dtb file, but even after replacing it in the file system, I still cannot output dp signals. Do I need to re-flash it?

please do full flash. Do not just replacing in file system.

Also, pinmux requires full flash too. Please read the flash log and make sure your pinmux file is really getting flashed.

1 Like

I see, it’s finally resolved. Thank you very much.

1 Like

Hi 243953617, I have the same problem and I am following your thread to resolve it. I saw that you use the HDMI pinmux tab to generate new pinmux with changed signals for DP. Is there a reason for not using the DP tab in the pinmux spreadsheet to generate a DP pinmux.

regards, rapidproto

I compared the differences between HDMI and DP and found that modifying HDMI would require less work. Of course, this is only specific to our design. If you are able to work directly with the DP option, then there should not be any problem.

Thanks 243953617,

Can you refer me to a guide on setting up the environment and re-compiling kernel and pinmux for someone new to this level of detail.

I am finding a lot of dis-jointed information with no clear method for setting up the environment and repeating exactly what you have done to fix DP on Orin.

regards, rapidproto

Sorry, my English is not very good, the specific steps may be difficult to describe clearly, all the steps are in the official manual, which has specific operation steps, including kernel compilation and pin multiplexing. [For example, below is the kernel compilation step:
Kernel Customization — Jetson Linux Developer Guide documentation (nvidia.com)
[It is best to carefully check the directory, where you can usually find the answer you need]

Hi Wayne,

I am trying to redo this solution by configuring the dp dtsi file and changing pinmux using the dp tab, instead of copying contents of dp file to hdmi file, however, flashing fails when it reaches the new dp version of the dtsi file

[ 4.7579 ] Generating signatures
[ 4.7592 ] tegrasign_v3.py --key None --list images_list.xml --pubkeyhash pub_key.key --sha sha512
[ 4.7596 ] Assuming zero filled SBK key
[ 4.9035 ] Warning: pub_key.key is not found
[ 4.9055 ] Pre-processing config: tegra234-mb1-bct-reset-p3767-0000.dts
[ 4.9128 ] Pre-processing config: tegra234-mb1-bct-device-p3767-0000.dts
[ 4.9209 ] Pre-processing config: tegra234-mb1-bct-cprod-p3767-0000.dts
[ 4.9279 ] Pre-processing config: tegra234-mb1-bct-gpioint-p3767-0000.dts
[ 4.9375 ] Pre-processing config: tegra234-mb1-bct-misc-p3767-0000.dts
[ 4.9511 ] Pre-processing config: tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi
Error: Return value 1
Command cpp -nostdinc -x assembler-with-cpp -D IN_DTS_CONTEXT tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi tegra234-mb1-bct-pinmux-p3767-dp-a03_cpp.dts
Error: /home/z/SSD/L4T-35.2.1-Orin/Linux_for_Tegra/bootloader/signed/flash.idx is not found
Error: failed to relocate images to /home/z/SSD/L4T-35.2.1-Orin/Linux_for_Tegra/tools/kernel_flash/images
Cleaning up…

This error is not related to SSD sectors as this fault does not occur if I change the p3509-a02+p3767-0000.conf file back to hdmi dtsi files

I have attached my procedure,

Jetson Orin kernel customisation procedure.docx (89.0 KB)

can you let me know if this procedure is correct.

regards, rapidproto

Please use the A03 one instead of the A01 one in pinmux

Hi Wayne, I generated the pinmux files using the A03 DP tab in pinmux spreadsheet and created these three files. Is this what you are referring to…

Orin-jetson_orin_nx_series_+dp a03-gpio-default.dtsi
Orin-jetson_orin_nx_series_+dp a03-padvoltage-default.dtsi
Orin-jetson_orin_nx_series_+dp a03-pinmux.dtsi