How to enable DVI output

We have an AGX carrier board with two display ouptuts, one HDMI and a DVI.

We did follow the link below to enable second HDMI to simulate a DVI out, but no display.
Maybe it’s not a good way to do.

https://devtalk.nvidia.com/default/topic/1049344/jetson-agx-xavier/topic-how-to-enable-the-dp-port-on-xavier-without-the-usb-type-c-controller-/

Thank you for any advice,

Hi HuiW,

Xavier/TX2/TX1 does not support DVI or VGA. Please use HDMI monitor to verify the port.

You are designing 2 hdmi ports, aren’t you?

HI WayneWWW,

Thank you for your prompt support.
We do have a HDMI and a DVI, but we use a transfer a cable (DVI ->HDMI) to test for now.
Currently, first HDMI and second HDMI do work as separately plugin one of them.
But failed to launch os as two HDMIs are both connected.

Attached please find the error message.
We might need to work on some settings.
Thank you for any advice,
agx_r32_2_1_cs_htmi_dvi_error.txt (93.9 KB)
agx_2html_err.dts.txt (353 KB)

I am curious if you know the EDID data for both monitors? I am wondering if perhaps there is an attempt to run both monitors at the same settings. The reason this might matter is that the driver only accepts certain modes and only via the EDID. If it turns out that a chosen mode which works for one does not work for another, then perhaps some edge case exists.

NOTE: Unless your DVI supports digital (e.g., DVI-D) and supports EDID (along with any adapter passing the EDID through), then this cannot work.

Hi HuiW,

Your error log does not looks like an direct error from display driver.
Could you try to debug and narrow down the cause?

Also, as your other issues filed before, please do clean up your device tree and leave only those you need.

For example, it sounds your usecase only needs 2 heads. Then please disable unnecessary sor and nvdisplay in dts.

Thanks linuxdev and WayneWWW,

Actually, I don’t know the EDID related information and still trying getting information now.

I just realized the error message --“WARNING: pll_d has no dyn ramp” showed as 2nd HDMI monitor was connected. But the error message did not affect to launch OS as only the 2nd HDMI was connected.

I will try to disable unnecessary sor and nvdisplay and tried again.
However, SOR parameters are setup in several different dts and I’m not sure which paratemters should be disable.

However, agx supports three monitors and already enabled three SOR parameters without any problem.
I actually only modified SOR0 from DP to HDMI.

I have still not found the information to setup the related parameters setting.

For example:
should “out-parent-clk” be modified? how to modify? (tegra194_hdmi.dtsi)

&sor0_hdmi_display {
generic-infoframe-type = <HDMI_INFOFRAME_TYPE_HDR>;
disp-default-out {
nvidia,out-type = <TEGRA_DC_OUT_HDMI>;
nvidia,out-hotplug-state = <0>;
nvidia,out-parent-clk = “pll_d”;
nvidia,out-xres = <4096>;
nvidia,out-yres = <2160>;
};
};

&sor1_hdmi_display {
generic-infoframe-type = <HDMI_INFOFRAME_TYPE_HDR>;
disp-default-out {
nvidia,out-type = <TEGRA_DC_OUT_HDMI>;
nvidia,out-hotplug-state = <0>;
nvidia,out-parent-clk = “plld2”;
nvidia,out-xres = <4096>;
nvidia,out-yres = <2160>;
};
};

&sor2_hdmi_display {
generic-infoframe-type = <HDMI_INFOFRAME_TYPE_HDR>;
disp-default-out {
nvidia,out-type = <TEGRA_DC_OUT_HDMI>;
nvidia,out-hotplug-state = <0>;
nvidia,out-parent-clk = “plld3”;
nvidia,out-xres = <4096>;
nvidia,out-yres = <2160>;
};
};

or avdd_hdmi-supply,avdd_hdmi_pll-supply be modified??

&head1 {
status = “okay”;
nvidia,fb-bpp = <32>;
nvidia,fbmem-size = <265420800>; /* 8K (7680*4320) 32bpp double buffered /
nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;
win-mask = <0x3>;
nvidia,fb-win = <0>;
nvidia,dc-connector = <&sor0>;
nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;
avdd_hdmi-supply = <&p2888_spmic_sd0>; /
1v0 /
avdd_hdmi_pll-supply = <&p2888_spmic_sd1>; /
1v8 /
vdd_hdmi_5v0-supply = <&p2822_vdd_dvi_5v0>; /
5v0 */
};

Thank you for any advice,

However, SOR parameters are setup in several different dts and I’m not sure which paratemters should be disable.

Please study how dts works.
https://elinux.org/Device_Tree_Reference

If you still don’t know where to disable these sors. Just disable them in the dts you are flashing.

should “out-parent-clk” be modified? how to modify? (tegra194_hdmi.dtsi)

No, I don’t think it needs to be changed.

or avdd_hdmi-supply,avdd_hdmi_pll-supply be modified??
If these regulators don’t exist on your custom carrier board, then yes, you need to change it.

Please also try to find out how to trigger this issue.

Hi WayneWWW,

Thank you for your support.

I disabled unnecessary sor and nvdisplay and still got the same error result.
— first HDMI and second HDMI do work as separately connected one of them.
But failed to launch os as two HDMIs are both connected.

Attached please find the error message.
I don’t know how to make progress now.

Is there any other we need to do to enable two HDMI on agx xavier?

Thank you for any advice,
agx_r32_2_1_error4_p.txt (99.8 KB)

Hi HuiW,

I disabled unnecessary sor and nvdisplay and still got the same error result.

I still see you have 3 sor and 3 nvdisplay enabled there. Why? Aren’t we using only 2 hdmi here?
Do you require a dp?

sor {
			status = "okay";

sor1 {
			status = "okay";

sor2 {
			status = "okay";

nvdisplay@15200000 {
			status = "okay";
nvdisplay@15210000 {
			status = "okay";
nvdisplay@15220000 {
			status = "okay";

Also, why do you use the same nvidia,fb-win and win-mask on two different heads? Please just use the default values.

nvdisplay@15200000 ->
	               win-mask = <0x3>;
			nvidia,fb-win = <0x0>;

nvdisplay@15210000->
			win-mask = <0x3>;
			nvidia,fb-win = <0x0>;

WayneWWW,

Thank you so much for your prompt support.

It works now by following your instructions.
Sorry. It’s my bad. I mixed up some files.

Thank you,