Hi Nvidia Team,
I have successfully configured my HDMI ports using dcb tools and followed Display Configuration for Jetson Thor — NVIDIA Jetson Linux Developer Guide but i am still seeing empty black screen on monitor, also what does “Be aware that the Jetson Thor DCE DTS file is not the same as the kernel DTS file. The display DCB DTSI file must be included in both the kernel and DCE DTS files.” mean?, Do i need to copy it again at different location other than kernel.
Regards,
Vrushti
You could ignore that comment first. Please elaborate what HDMI setting you did in the DCB file.
Hi @WayneWWW , here are my display configurations.
########## Tegra DCB BLOB ###############
########### Display Devices #############
Display Devices::
Display Devices : [2]
Type : [TMDS]
CCB : [2]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [2]
Bus : [2]
Pad Link : [2]
Display Devices : [3]
Type : [TMDS]
CCB : [3]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [3]
Bus : [3]
Pad Link : [3]
############### 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]
CCB Index : 1
I2C Port : [10]
AUX Port : [1]
CCB Index : 2
I2C Port : [4]
AUX Port : [2]
CCB Index : 3
I2C Port : [8]
AUX Port : [3]
########### Connector entries #############
Connectors::
Connector Index : 0x2
Type : [HDMI]
Hotplug : A:[Y]
Connector Index : 0x3
Type : [HDMI]
Hotplug : A:[Y]
diff --git a/hardware/nvidia/t264/nv-public/nv-platform/tegra264-p4071-0000.dtsi b/hardware/nvidia/t264/nv-public/nv-platform/tegra264-p4071-0000.dtsi
index f149c4b0b..a74636759 100644
--- a/hardware/nvidia/t264/nv-public/nv-platform/tegra264-p4071-0000.dtsi
+++ b/hardware/nvidia/t264/nv-public/nv-platform/tegra264-p4071-0000.dtsi
@@ -571,13 +571,37 @@
enable-active-high;
};
+ vdd_5v0_hdmi1_cvb: regulator-vdd-5v0-hdmi1 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDD_5V0_HDMI1";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio_main TEGRA264_MAIN_GPIO(U, 7) GPIO_ACTIVE_HIGH>;
+ vcc-supply = <&vdd_5v_cvb>;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ vdd_5v0_hdmi2_cvb: regulator-vdd-5v0-hdmi2 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDD_5V0_HDMI2";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio_main TEGRA264_MAIN_GPIO(U, 5) GPIO_ACTIVE_HIGH>;
+ vcc-supply = <&vdd_5v_cvb>;
+ regulator-always-on;
+ enable-active-high;
+ };
+
dce@8808000000 {
status = "okay";
};
display@8808c00000 {
status = "okay";
- os_gpio_hotplug_a = <&gpio_main TEGRA264_MAIN_GPIO(F, 4) GPIO_ACTIVE_LOW>;
+ /* os_gpio_hotplug_a = <&gpio_main TEGRA264_MAIN_GPIO(F, 4) GPIO_ACTIVE_LOW>; HDMI1 disabled*/
+ os_gpio_hotplug_c = <&gpio_main TEGRA264_MAIN_GPIO(F, 5) GPIO_ACTIVE_LOW>;
+ os_gpio_hotplug_d = <&gpio_main TEGRA264_MAIN_GPIO(F, 6) GPIO_ACTIVE_LOW>;
nvdisplay-niso {
Multiple HDMI would have issue if using the original DCB tool in the BSP.
Please refer to this thread.
Hi @WayneWWW , can you confirm the changes made in regulator for enable pins of hdmi’s , where PU.07 is enable pin for HDMI2 and PU.05 is enable pin for HDMI3 (hdmi1 refers to hdmi2 , hdmi2 - hmdi3)
Hi @WayneWWW , With this tool i am able to detect hdmi on both the ports but the issue is if i connect both hdmi’s on boot it works, after boot one of the hdmi doesnt work
What is your DCB setting now and which HDMI is not working?
Hi @WayneWWW , this are my current display configurations.
== Modified DCB ==
########## Tegra DCB BLOB ###############
########### Display Devices #############
Display Devices::
Display Devices : [2]
Type : [TMDS]
CCB : [2]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [2]
Bus : [2]
Pad Link : [2]
Display Devices : [3]
Type : [TMDS]
CCB : [3]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [3]
Bus : [3]
Pad Link : [3]
############### 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]
CCB Index : 1
I2C Port : [10]
AUX Port : [1]
CCB Index : 2
I2C Port : [4]
AUX Port : [2]
CCB Index : 3
I2C Port : [8]
AUX Port : [3]
########### Connector entries #############
Connectors::
Connector Index : 0x2
Type : [HDMI]
Hotplug : A:[Y] B:[N] C:[Y] D:[N] E:[N] F:[N] G:[N]
Connector Index : 0x3
Type : [HDMI]
Hotplug : A:[Y] B:[N] C:[N] D:[Y] E:[N] F:[N] G:[N]
Individually both ports works fine, but after boot HDMI for Display Device 3 doent work.
Your setting is wrong. You are sharing multiple HPD GPIOs on 2 displays… There should be only one option here with “Y”.
Please also check if the pinmux setting of this is correct or not.
Also check if xorg log does not give you any new response when you hotplug the cable on display 3 after boot up.
If it does not respond, it means HPD setting has issue.
Hi @WayneWWW , the hotplug works when both hdmi is connected during boot, but if only one is connected the other hdmi doesnt work on hotplug
No, your method to confirm HPD work or not might be wrong.
Do the following experiment first.
-
Just connect that one display that has issue before boot.
-
Boot up your Jetson.
-
You shall see the display is up
-
Run “export DISPLAY=:0” and “xrandr” command. See if the xrandr command is able to give out the monitor info.
-
Unplug your HDMI cable.
-
Run xrandr command again when no monitor is connected.
-
Share me the result of this xrandr attempt.
I am not sure what does that mean here. Have you fixed your obvious DCB mistake that I pointed out?
If you didn’t fix that, then one monitor would affect another one.
Hi @WayneWWW , please check the below screenshots
- On bootup when display is connected
- After display disconnected checked from debug uart
Hi @WayneWWW ,
Thanks for the feedback. I double-checked the configuration based on your note, but the hotplug behavior suggests the DCB settings are actually correct. Here is what we are seeing during testing:
- Dual-Boot Success: If both HDMI cables are connected during boot, both monitors initialize and HPD works perfectly.
- Single-Port Success: If only one HDMI cable is connected, it boots up fine, and hotplugging works perfectly on that specific port.
- The Issue: The failure only happens when one HDMI is already connected/working, and we try to hotplug the second monitor. This issue happens identically on both ports.
Because the individual ports function perfectly on their own, the hotplug logic is properly configured.
I am not sure what you are trying to tell there because DCB content just has a obvious mistake and I am not sure why you don’t want to fix that?
Connector Index : 0x2
Type : [HDMI]
Hotplug : A:[Y] B:[N] C:[Y] D:[N] E:[N] F:[N] G:[N]
Connector Index : 0x3
Type : [HDMI]
Hotplug : A:[Y] B:[N] C:[N] D:[Y] E:[N] F:[N] G:[N]
Your “A” setting should not be Y. Let each of them use their own C and D GPIO field.
This is a very basic mistake that you could fix first and we could discuss about the rest of items then.
Please help confirm if xorg log will give you any new log after you hotplug the cable when you hit your so-called issue as xrandr seems not able to work on your side when monitor is removed.
If you don’t know what I am telling, please just tell. Don’t waste time doing any experiment when you don’t get my points.
- Dual-Boot Success: If both HDMI cables are connected during boot, both monitors initialize and HPD works perfectly.
- Single-Port Success: If only one HDMI cable is connected, it boots up fine, and hotplugging works perfectly on that specific port.
For these two cases, do below experiment for me and share the result (do this test after you fix the DCB content)
-
Just connect either one or two displays before boot.
-
Boot up your Jetson.
-
You shall see the display is up
-
Check your xorg log (/var/log/Xorg.0.log)
-
Unplug your HDMI cable.
-
Check your xorg log again to see if any new log is printed.
-
Share me the result of this.
Hi @WayneWWW , i have made the changes that sets A to N.
########## Tegra DCB BLOB ###############
########### Display Devices #############
Display Devices::
Display Devices : [2]
Type : [TMDS]
CCB : [2]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [2]
Bus : [2]
Pad Link : [2]
Display Devices : [3]
Type : [TMDS]
CCB : [3]
Heads : 0:[Y] 1:[Y]
Sor : [1 ]
HDMI capable : [1]
Connector : [3]
Bus : [3]
Pad Link : [3]
############### 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]
CCB Index : 1
I2C Port : [10]
AUX Port : [1]
CCB Index : 2
I2C Port : [4]
AUX Port : [2]
CCB Index : 3
I2C Port : [8]
AUX Port : [3]
########### Connector entries #############
Connectors::
Connector Index : 0x2
Type : [HDMI]
Hotplug : A:[N] B:[N] C:[Y] D:[N] E:[N] F:[N] G:[N]
Connector Index : 0x3
Type : [HDMI]
Hotplug : A:[N] B:[N] C:[N] D:[Y] E:[N] F:[N] G:[N]
display@8808c00000 {
status = "okay";
- os_gpio_hotplug_a = <&gpio_main TEGRA264_MAIN_GPIO(F, 4) GPIO_ACTIVE_LOW>;
+ /*os_gpio_hotplug_a = <&gpio_main TEGRA264_MAIN_GPIO(F, 4) GPIO_ACTIVE_LOW>;*/
+ os_gpio_hotplug_c = <&gpio_main TEGRA264_MAIN_GPIO(F, 5) GPIO_ACTIVE_LOW>;
+ os_gpio_hotplug_d = <&gpio_main TEGRA264_MAIN_GPIO(F, 6) GPIO_ACTIVE_LOW>;
nvdisplay-niso {
status = "okay";
};
I also checked the Xorg.0.log after hotplug no new prints were observed.
Hi @WayneWWW , I have done the experiment please find the attached Xorg.0.log and Xorg.1.log, also no new prints were observed after hotplug.
Xorg.0.log.txt (21.8 KB)
Xorg.1.log.txt (20.5 KB)
- Following logs were seen in dmesg
[ 16.168972] l4tbr0: port 1(usb0) entered forwarding state
[ 16.329399] nv_platform 8808c00000.display: Adding to iommu group 90
[ 16.329471] nv_platform 8808c00000.display: Cannot reserve IOVA region of 0 size
[ 16.329558] nv_platform 8808c00000.display: Cannot reserve IOVA region of 0 size
[ 16.332519] platform 8808c00000.display:nvdisplay-niso: Adding to iommu group 91
[ 16.335742] NVRM: devm_reset_control_get failed, err: -2
[ 16.335747] NVRM: devm_reset_control_get failed, err: -2
[ 16.335749] NVRM: mipi_cal devm_reset_control_get failed, err: -2
[ 16.336195] NVRM: loading NVIDIA UNIX Open Kernel Module for aarch64 TempVersion Release Build (r595_00) (root@9JD3NZ3-Desk) Thu Jul 30 11:47:56
[ 16.374982] nvidia-modeset: Loading NVIDIA UNIX Open Kernel Mode Setting Driver for aarch64 TempVersion Release Build (r595_00) (root@9JD3NZ3-De6
[ 16.377577] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 16.517218] enP2p1s0: 0xffff80008abf0000, da:0a:de:75:50:bd, IRQ 292
[ 16.550371] r8126 0002:01:00.0 enP2p1s0: registered PHC device on enP2p1s0
[ 16.550378] r8126 0002:01:00.0 enP2p1s0: reset PHC clock
[ 16.560318] enP3p4s0: 0xffff800089fd0000, 8a:ca:22:34:78:91, IRQ 221
[ 16.591912] r8126 0003:04:00.0 enP3p4s0: registered PHC device on enP3p4s0
[ 16.591917] r8126 0003:04:00.0 enP3p4s0: reset PHC clock
[ 17.140421] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
[ 17.140434] nvidia 0000:01:00.0: [drm] No compatible format found
[ 17.140453] nvidia 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 17.140480] [drm] [nvidia-drm] [GPU ID 0xfffffffe] Loading driver
[ 17.335206] nvidia-modeset: WARNING: HW supports 8 heads. Limiting to 4 heads
[ 17.335762] nvidia-modeset: WARNING: GPU:0: The head configuration (0xff) is inconsistent with the number of heads (4)
[ 17.342757] NVRM: GPU1 nvCheckOkFailedNoLog: Check failed: Call not supported [NV_ERR_NOT_SUPPORTED] (0x00000056) returned from pRmApi->Control(pRmA4
[ 17.729680] [drm] Initialized nvidia-drm 0.0.0 20160202 for 8808c00000.display on minor 2
[ 17.729689] [drm] [nvidia-drm] [GPU ID 0xfffffffe] Invalid framebuffer console info
[ 18.090315] Console: switching to colour frame buffer device 240x67
[ 18.505103] nv_platform 8808c00000.display: [drm] fb0: nvidia-drmdrmfb frame buffer device
[ 21.495268] rfkill: input handler disabled
[ 26.375251] platform sound: deferred probe pending: tegra-audio-graph-card: parse error
[ 32.037261] tegra-i2c c600000.i2c: I2C transfer timed out
[ 32.708577] rfkill: input handler enabled
[ 35.196864] rfkill: input handler disabled
[ 35.325891] EXT4-fs (sda1): recovery complete
[ 35.325937] EXT4-fs (sda1): mounted filesystem 0beac915-8c96-47e5-8537-f35d65d63142 r/w with ordered data mode. Quota mode: none.
[ 58.267052] loop1: detected capacity change from 0 to 8
[ 135.933113] tegra-i2c c600000.i2c: I2C transfer timed out
Hi,
Just want to confirm. So when you remove the HDMI cable out from your board. The xorg log does not tell you that the monitor is disconnected for below cases?
- Dual-Boot Success: If both HDMI cables are connected during boot, both monitors initialize and HPD works perfectly.
- Single-Port Success: If only one HDMI cable is connected, it boots up fine, and hotplugging works perfectly on that specific port.