Jetson xavier can not use typeC interface to output screen?

hi,

I’m new to Nvidia Jetson xavier platform and want to use typeC interface to output connecting 4k screen, but the screen does not work?

i capture the dmesg info and find the print information below,

[ 3321.713751] ucsi_ccg 1-0008: port0 evt: Type-C Port Connect Detected
[ 3321.715823] ucsi_ccg 1-0008: [typec-port0] Cable state:1, cable id:2
[ 3322.841860] ucsi_ccg 1-0008: port0 evt: PD Contract Negotiation Complete
[ 3322.844826] ucsi_ccg 1-0008: get_current_pdo: 2601905a:
[ 3322.844844] ucsi_ccg 1-0008: [typec-port0] DO type 0, max_current 90, voltage 100
[ 3323.479765] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.479805] ucsi_ccg 1-0008: vdm_hdr: svid: ff00, cmd: Discover Identity (1) cmd_type: ACK, obj_pos: 0
[ 3323.483692] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.483710] ucsi_ccg 1-0008: vdm_hdr: svid: ff00, cmd: Discover SVIDs (2) cmd_type: ACK, obj_pos: 0
[ 3323.487335] ucsi_ccg 1-0008: port0 evt: Alternate Mode event
[ 3323.490988] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.491005] ucsi_ccg 1-0008: vdm_hdr: svid: ff01, cmd: Discover Modes (3) cmd_type: ACK, obj_pos: 0
[ 3323.498347] ucsi_ccg 1-0008: port0 evt: Alternate Mode event
[ 3323.499489] ucsi_ccg 1-0008: pin assign: C E
[ 3323.506776] ucsi_ccg 1-0008: port0 evt: Alternate Mode event
[ 3323.510335] ucsi_ccg 1-0008: == ALTMODE discover complete
[ 3323.518883] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.520014] ucsi_ccg 1-0008: vdm_hdr: svid: ff01, cmd: Enter Mode (4) cmd_type: ACK, obj_pos: 1
[ 3323.527254] ucsi_ccg 1-0008: port0 evt: Alternate Mode event
[ 3323.527266] ucsi_ccg 1-0008: == ALTMODE entered: id = 0, svid = ff01
[ 3323.530958] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.531017] ucsi_ccg 1-0008: vdm_hdr: svid: ff01, cmd: DP Status Update (16) cmd_type: ACK, obj_pos: 1
[ 3323.531054] ucsi_ccg 1-0008: connected: 2, power_low: 0, enabled: 1, multi-func: 0
usb_req: 0, exit_dp: 0, hpd_state: 0, irq_hpd: 0
[ 3323.534460] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.534474] ucsi_ccg 1-0008: vdm_hdr: svid: ff01, cmd: DP Configure (17) cmd_type: ACK, obj_pos: 1
[ 3323.534486] ucsi_ccg 1-0008: update_typec_extcon_dp_mode: set prop dp_lane_num=4
[ 3323.537568] ucsi_ccg 1-0008: port0 evt: Alternate Mode Hardware event
[ 3323.564120] tegradc 15210000.nvdisplay: dp: plug event received
[ 3323.564195] hpd: state 3 (Disabled), hpd 1, pending_hpd_evt 1
[ 3323.564203] hpd: switching from state 3 (Disabled) to state 0 (Reset)
[ 3323.564951] ucsi_ccg 1-0008: port0 evt: VDM Received
[ 3323.564973] ucsi_ccg 1-0008: vdm_hdr: svid: ff01, cmd: Attention (6) cmd_type: Initiator, obj_pos: 1
[ 3323.567980] ucsi_ccg 1-0008: port0 evt: Alternate Mode Hardware event
[ 3323.665941] hpd: state 0 (Reset), hpd 1, pending_hpd_evt 0
[ 3323.665965] tegradc 15210000.nvdisplay: blank - powerdown
[ 3323.666013] extcon-disp-state external-connection:disp-state: cable 44 state 0 already set.
[ 3323.666018] Extcon DP: HPD disabled
[ 3323.666023] hpd: hpd_switch 0
[ 3323.666028] hpd: switching from state 0 (Reset) to state 1 (Check Plug)
[ 3323.666086] hpd: state 1 (Check Plug), hpd 1, pending_hpd_evt 0
[ 3323.666095] hpd: switching from state 1 (Check Plug) to state 2 (Check EDID)
[ 3323.673922] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 3323.678509] tegra_edid_get_monspecs: no modes in EDID base block
[ 3323.686993] tegra_edid_get_monspecs: EDID has no valid modes
[ 3323.687147] hpd: switching from state 2 (Check EDID) to state 2 (Check EDID)
[ 3323.693891] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 3323.698437] tegra_edid_get_monspecs: no modes in EDID base block
[ 3323.706659] tegra_edid_get_monspecs: EDID has no valid modes
[ 3323.706802] hpd: switching from state 2 (Check EDID) to state 2 (Check EDID)
[ 3323.713898] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 3323.714132] tegradc 15200000.nvdisplay: unblank
[ 3323.714149] tegradc 15210000.nvdisplay: blank - powerdown
[ 3323.714158] tegradc 15220000.nvdisplay: blank - powerdown
[ 3323.718450] tegra_edid_get_monspecs: no modes in EDID base block
[ 3323.727035] tegra_edid_get_monspecs: EDID has no valid modes
[ 3323.727178] hpd: switching from state 2 (Check EDID) to state 2 (Check EDID)
[ 3323.733911] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 3323.738659] tegra_edid_get_monspecs: no modes in EDID base block
[ 3323.747276] tegra_edid_get_monspecs: EDID has no valid modes
[ 3323.747441] hpd: switching from state 2 (Check EDID) to state 2 (Check EDID)
[ 3323.753893] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[ 3323.758652] tegra_edid_get_monspecs: no modes in EDID base block
[ 3323.766925] tegra_edid_get_monspecs: EDID has no valid modes
[ 3323.767138] hpd: EDID read failed 5 times. Giving up.
[ 3323.767151] tegradc 15210000.nvdisplay: blank - powerdown
[ 3323.767188] extcon-disp-state external-connection:disp-state: cable 44 state 0 already set.
[ 3323.767192] Extcon DP: HPD disabled
[ 3323.767196] hpd: hpd_switch 0
[ 3323.767200] hpd: switching from state 2 (Check EDID) to state 3 (Disabled)
[ 3323.771869] tegradc 15200000.nvdisplay: unblank
[ 3323.771885] tegradc 15210000.nvdisplay: blank - powerdown
[ 3323.771895] tegradc 15220000.nvdisplay: blank - powerdown

i find that the same screen connect to windows 10 notebook typeC is ok,so
what is wrong with jatson xavier?

I know Iam a noob and any help would be apprecieated.
Thanks

Why report this error

Hi,

Is that monitor a special kind? Is that really on a DP port?

it is just a screen output via typeC interface. it is on a typeC port.

the 4k screen interface is typeC , not DP port or HDMI port. and it connect to windows notebook works completely ok

root@ubuntu:~# cat find /sys -name edid
No EDID
No EDID
00 ff ff ff ff ff ff 00 10 ac 41 42 4c 55 50 44
2e 1f 01 03 80 3c 22 78 ea c5 25 aa 53 4f 9d 25
10 50 54 a5 4b 00 71 4f 81 80 a9 c0 d1 c0 81 c0
81 cf 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
45 00 56 50 21 00 00 1e 00 00 00 ff 00 46 34 34
31 5a 47 33 0a 20 20 20 20 20 00 00 00 fc 00 44
45 4c 4c 20 50 32 37 32 32 48 0a 20 00 00 00 fd
00 38 4c 1e 53 11 00 0a 20 20 20 20 20 20 01 87
02 03 15 b1 4a 90 05 04 03 02 01 14 1f 12 13 65
03 0c 00 10 00 02 3a 80 18 71 38 2d 40 58 2c 45
00 56 50 21 00 00 1e 01 1d 80 18 71 1c 16 20 58
2c 25 00 56 50 21 00 00 9e 01 1d 00 72 51 d0 1e
20 6e 28 55 00 56 50 21 00 00 1e 8c 0a d0 8a 20
e0 2d 10 10 3e 96 00 56 50 21 00 00 18 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a2

  1. 請問你現在是接著一個hdmi 跟一個type C DP然後 dump log給我們嗎

  2. 如果(1)是對的話, 麻煩把hdmi移掉. 插著type C DP開機之後然後貼上完整的dmesg.
    並且再dump edid 一次

Eng version:

  1. Are you using a HDMI and type C DP at same time and dumping the log?

  2. If (1) is true, please remove HDMI, connect type C DP again and then post the dmesg
    also, dump the edid again.

  1. 是接了一个hdmi和typeC DP。
  2. 如下dmesg info 是去除了hdmi ,插上typeC screen 后重新上电的kernel打印。
    dmesg_20220822.txt (94.0 KB)

and i ssh to the ubuntu to get edid,

root@ubuntu:~# cat find /sys -name edid
No EDID
No EDID
No EDID

可以請你試著找一台有DP port的螢幕然後用 DP<-> Type C轉接頭試試看這樣螢幕會不會動嗎?

Could you try to test a natvie DP port monitor with DP<-> type C converted and see if it would work?

使用typeC 转Dp接口, 在jetson xavier上可以正常输出到Dp屏上。

看來我們沒辦法支援這種直接用type C當作sink的螢幕.
Then it looks like we cannot support such monitor with type C directly as sink. But only native DP signal monitor.

So sad to hear that !
which part limit this feature not being supported?jetson xavier display controller hardware, or kernel driver, or else ?if i Must would like this feature be supported on xavier platform, where do i start and solve this problem.

Actually, i connect the typeC screen as GPU(with typeC output display port ), everything is ok. is that your xavier integrated Graphics that limit this features not being supported?where is the rootcause?

目前看起來是當這種螢幕使用的時候edid會沒辦法讀進來. 請問你在Windows上面使用這種螢幕的時候 有辦法看到它的EDID嗎?

另外, Xavier iGPU跟 desktop GPU無關. 你現在這個case跟iGPU也無關. Xaiver上面有自己的display controller. 而且這個display controller render的時候不一定會用到iGPU資源…
現在的問題純粹是EDID沒辦法透過DP protocol讀進來. 我們的driver嘗試去讀 但你的螢幕回報沒有edid.

Looks like DP pin is not able to read the edid when such monitor is in use. When you use this kind of monitor on Windows, are you able to see its edid?

Also, Xavier iGPU has different architecture with desktop GPU. Also, the usecase you are running has nothing to do with iGPU either. Jetson AGX Xavier has a dedicated display controller. When rendering things, this may not even need GPU resources…

The current issue is just the EDID is not able to read from your monitor through DP.

thank you for your FAQ. if i can get the edid, what to do next?

我比較好奇的是, 請問你現在是要做Jetson AGX Xavier的產品嗎 ?
還是你只是要用AGX Xavier devkit這種類型的螢幕? 請問你這個問題是在Xavier devkit還是你自己有做底板?

Actually, I am more curious about what you want to do now? Do you want to make a product based on Jetson AGX Xavier? or you just want to use this kind of monitor on AGX Xavier devkit? Is this problem on Xavie devkit or your own carrier board?

yes, we teams wil make a AI product based on Jetson AGX Xavier. and wil use the typeC monitor as the product screen. we all devkit based on nvidia software and hardware.

is that any workaround to bypass the tough questions if i
get the screen edid

Hi,

所以你們打算如何在你們自己的底板上做這個type C port? 請問你們有些看過我們的product design guide嗎?
NV devkit之所以能用type C輸出DP訊號只是因為我們在底板上有一個type C alt mode switch負責把DP訊號傳進/出 Display controller.

但除了這個之外我們從來沒有任何其他用戶使用這種設計. 其他用戶都直接native DP port.

What is your plan to do the hardware design of this kind of type C port? Have you checked the product design guide document?

The reason that type C can output DP signal on devkit is due to a type C alt mode switch on the carrier board. But so far, I don’t see any other users ever tried the same design as devkit. They directly use native DP port.