Display port not working on custom board

Hi All.
kernel_tegra194-p2888-0008-p2822-0000.dts.txt (486.6 KB)
log.txt (148.9 KB)

I am using a custom board for the xavier industrial agx module. The board is similar to the NVIDIA Jetson AGX Xavier Developer Kit. The difference is that instead of the HDMI output on the PD2 port, I have a Display Port. I modified kernel_tegra194-p2888-0008-p2822-0000.dtb

display@15200000 → sor2 → active panel dp display

I have no image on the monitor with displayport.
log shows
tegradc 15200000.display: dp: HPD is not detected
[ 8.866115] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.868388] tegradc 15200000.display: dp: HPD is not detected
[ 8.874017] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.882245] tegradc 15200000.display: dp: HPD is not detected
[ 8.888264] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.896047] tegradc 15200000.display: dp: HPD is not detected
[ 8.901755] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.910299] tegradc 15200000.display: dp: failed to exit panel power save mode (0xfffffff2)
[8.918710] hpd: edid read prepare failed
[ 8.918715] hpd: DC from connected to disconnected

Any ideas?


please configure the pinmux of your hpd pin. If it was for HDMI, then it was a GPIO but not SFIO.

Hello WayneWWW. Thanks you for quick answer.
I did it what you suggested.
tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg was modified acording to oputput from pinmux tool.

section:
pinmux.0x02212640 = 0x00000001; # CONFIG M2
pinmux.0x02440040 = 0x00000000; # GPIO dp_aux_ch2_hpd_pm2
was removed.

section:
pinmux.0x02440040 = 0x00000042; # dp_aux_ch2_hpd_pm2: rsvd2, tristate-disable, input-enable, io_high_voltage-disable
was changed to:
pinmux.0x02440040 = 0x00000450; # dp_aux_ch2_hpd_pm2: dp, tristate-enable, input-enable, io_high_voltage-disable

I did this modyfication in /Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg
Next I flash my modified dtb from last message by
./flash.sh -d ~/kernel_tegra194-p2888-0008-p2822-0000.dtb -r -k kernel-dtb jetson-agx-xavier-industrial mmcblk0p1cd
next i manual copy kernel_tegra194-p2888-0008-p2822-0000.dtb to /boot/dtb

[sudo] password for nvidia:
[ 8.792366] hpd: state 7 (Takeover from bootloader), hpd 1, pending_hpd_evt 1
[ 8.806497] hpd: switching from state 7 (Takeover from bootloader) to state 1 (Check Plug)
[ 8.909288] hpd: state 1 (Check Plug), hpd 1, pending_hpd_evt 0
[ 8.909423] hpd: switching from state 1 (Check Plug) to state 2 (Check EDID)
[ 8.917272] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 8.923836] hpd: edid read prepare failed
[ 8.923840] hpd: DC from connected to disconnected
[ 9.966592] hpd: switching from state 2 (Check EDID) to state 3 (Disabled)

nvidia@tegra-ubuntu:~$ sudo dmesg | grep display
[ 1.021163] tegradccommon 15200000.display-hub: Nvhost Channel map failed
[ 8.183517] tegradc 15200000.display: Adding to iommu group 29
[ 8.183677] tegradccommon 15200000.display-hub: host1x channel mapped
[ 8.183712] tegradccommon 15200000.display-hub: dc_common syncpt # 1 allocated
[ 8.183875] tegradccommon 15200000.display-hub: dma mapping done
[ 8.186785] tegradc 15200000.display: disp0 connected to head0->sor2
[ 8.195519] tegradc 15200000.display: parse_dp_settings: No dp-lt-settings node
[ 8.208788] tegradc 15200000.display: DT parsed successfully
[ 8.220325] tegradc 15200000.display: Display dc.(ptrval) registered with id=0
[ 8.248409] tegradc 15200000.display: vblank syncpt # 8 for dc 0
[ 8.262370] tegradc 15200000.display: vpulse3 syncpt # 9 for dc 0
[ 8.277233] tegradc 15200000.display: dc_dp_out_hotplug_init: couldn’t get regulator vdd_hdmi_5v0
[ 8.288959] tegradc 15200000.display: dc_probe: failed hotplug init, -517
[ 8.420176] tegradc 15200000.display: disp0 connected to head0->sor2
[ 8.428793] tegradc 15200000.display: parse_dp_settings: No dp-lt-settings node
[ 8.441513] tegradc 15200000.display: DT parsed successfully
[ 8.458266] tegradc 15200000.display: Display dc.(ptrval) registered with id=0
[ 8.484581] tegradc 15200000.display: vblank syncpt # 11 for dc 0
[ 8.500071] tegradc 15200000.display: vpulse3 syncpt # 12 for dc 0
[ 8.504416] tegradc 15200000.display: probed
[ 8.650843] tegradc 15200000.display: fb registered
[ 8.654527] tegradc 15200000.display: dp: HPD is not detected
[ 8.666237] tegradc 15200000.display: dp: Failed for I2C write addr:80, size:1, stat:0x0
[ 8.738976] tegradc 15200000.display: dp: HPD is not detected
[ 8.739124] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.742024] tegradc 15200000.display: dp: HPD is not detected
[ 8.747866] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.755753] tegradc 15200000.display: dp: HPD is not detected
[ 8.761345] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.769664] tegradc 15200000.display: dp: HPD is not detected
[ 8.775525] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.783680] tegradc 15200000.display: dp: failed to exit panel power save mode (0xfffffff2)
[ 8.917471] tegradc 15200000.display: dp: HPD is not detected
[ 8.917614] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.917855] tegradc 15200000.display: dp: HPD is not detected
[ 8.918025] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.918250] tegradc 15200000.display: dp: HPD is not detected
[ 8.918421] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.918652] tegradc 15200000.display: dp: HPD is not detected
[ 8.918836] tegradc 15200000.display: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
[ 8.919070] tegradc 15200000.display: dp: failed to exit panel power save mode (0xfffffff2)
[ 9.953289] tegradc 15200000.display: sync_windows timeout
[ 9.961553] tegradc 15200000.display: blank - powerdown
[ 9.961572] tegradc 15200000.display: dp: HPD is not detected
[ 9.961576] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 9.961580] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 9.961589] tegradc 15200000.display: dp: HPD is not detected
[ 9.961593] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 9.961596] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 9.961600] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 9.961614] tegradc 15200000.display: dp: HPD is not detected
[ 9.961618] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 9.961620] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 9.961630] tegradc 15200000.display: dp: HPD is not detected
[ 9.961633] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 9.961636] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 9.961639] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 15.247296] tegradc 15200000.display: dp: HPD is not detected
[ 15.247311] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 15.247316] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 15.247329] tegradc 15200000.display: dp: HPD is not detected
[ 15.247332] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 15.247336] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 15.247339] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 15.277859] tegradc 15200000.display: dp: HPD is not detected
[ 15.277870] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 15.277874] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 15.277884] tegradc 15200000.display: dp: HPD is not detected
[ 15.277888] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 15.277890] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 15.277894] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 15.350281] tegradc 15200000.display: dp: HPD is not detected
[ 15.350307] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 15.350319] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 15.350329] tegradc 15200000.display: dp: HPD is not detected
[ 15.350334] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 15.350337] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 15.350340] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 15.425439] tegradc 15200000.display: dp: HPD is not detected
[ 15.425449] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x1, Status 0x0
[ 15.425454] tegradc 15200000.display: dp: NV_DPCD_MAX_LINK_BANDWIDTH read failed
[ 15.425464] tegradc 15200000.display: dp: HPD is not detected
[ 15.425467] tegradc 15200000.display: dp: Failed to read DPCD data. CMD 0x2, Status 0x0
[ 15.425470] tegradc 15200000.display: dp: NV_DPCD_MAX_LANE_COUNT read failed
[ 15.425473] tegradc 15200000.display: dp: Invalid link rate (0) or lane count (0)
[ 36.128175] tegradc 15200000.display: blank - powerdown

Result is the same.

Just one simple question here.

When you hotplug the DP cable to the board, will it give you more print on the dmesg?

If it does not, then pinmux still has problem. If it has new print, then pinmux shall be correct and issue is something else.

pin mux is problem,
I compile devmem2 and check a values
Memory mapped at address 0xffffafb1c000.
Value at address 0x2440040 (0xffffafb1c040): 0x142

I change tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg and make ./flash.sh -d ~/kernel_tegra194-p2888-0008-p2822-0000.dtb -r -k kernel-dtb jetson-agx-xavier-industrial

Did I miss any step?

If you use -r -k xxxx in flash command, then it will only update xxxx partition. Your cfg file won’t take effect.

I understand that the cfg file is related to the bootloader itself, which initializes iomuxes at startup. Is it possible to use flash.sh to update the bootloader, or can I flash it using the appropriate argument of flash.sh? Or maybe it is necessary to rebuild the entire kernel?

Do the full flash with your flash.sh… then bootloader will be updated.

Ok, this works.
Thanks for your help.

1 Like

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