DisplayPort Output on X1

Hey all.

I’m working with a custom carrier module I’ve made which integrates with the X1. I am trying to use a display port output though instead of HDMI and am having difficulty figuring out what in the software needs to be changed to enable this (HDMI works out of the box on the jetson board).

Has anyone tried doing displayport output?

I assume something needs to be changed in the device tree.
I found in tegra210-jetson-cv-prods.dtsi the main register writes for the SOR1 display interface (same interface I’ve hooked my DP interface on).

I also see other dts files referencing display port, though going through the list of includes I do not believe they are being used (tegra210-ers* files).

Note I am using the same pins on my board that the standard X1 jetson carrier board (p2597) uses for its HDMI output. These pins being DP1/HDMI:

E36
E35
D37
D36
C38
C37
E39
E38
A35
A34
A33

I believe SOR1 can be either DP or HDMI and it just uses these same pins.
My assumption would be some software work must be done to define that it is using DP instead of HDMI and this is where i am stuck.

Comparing my bootup to the standard X1 carriers bootup, i see my graphics driver faults with a message “[ 5.266421] can not determine display type”

I traced this to an error thrown by /video/tegra/dc/of_dc.c

Hi x1tester62,

Yes, HDMI and DP share the same pins. Default design is for HDMI output, so before software work, the hardware rework is needed as the circuit design has a little difference. Suggest to refer to chapter7.3, figure17/18/19, JetsonTX1_OEM_Product_DesignGuide.pdf to do changes.

I followed those figures and believe everything is hooked up correctly.
I actually have my board in house already and am testing.

Hence I am now onto the software work and that is where I am confused as what to do next.

So basically this also mean not HDMI and DP at the same tine as I understand it.
Is this right?

Yes, as they share same pins.

Still no info on what software changes need to be made to get DP to work?

Hello, x1tester62:
You are right. There are some other software changes to bring-up DP1. The BSP released enables HDMI by default.

  1. in arch/arm64/configs/tegra21_defconfig, enable DP by adding
    CONFIG_TEGRA_DP=y
  2. in pinmux DTS file, switch pcc1 to dp mode:
    nvidia,function = “dp”;
  3. add proper dp DTS file and include that file in arch/arm64/boot/dts/tegra210-jetson-e-base-p2595-0000-a00.dts
    (please refer to sample file in BSP package)
  4. Add power information in host1x of file arch/arm64/boot/dts/tegra210-jetson-e-base-p2595-0000-a00.dts like:
    /* dp */
    vdd-dp-pwr-supply = <&vdd_3v3>;
    avdd-dp-pll-supply = <&max77620_sd3>;
    vdd-edp-sec-mode-supply = <&vdd_sys_boost>;
    vdd-dp-pad-supply = <&max77620_ldo8>;

br
Chenjian

Hey jachen.

Thanks for the help but currently am still having trouble.
Here is where i am currently at. Note i am on a p2597-2180 board.

I enabled CONFIG_TEGRA_DP

File:tegra210-jetson-cv-base-p2597-2180-a00.dts
Change:
#include “tegra210-platforms/tegra210-ers-dp-e2220-1170-a00.dtsi”
/this was the only ‘dp’ related file I could find so i included it/

File: tegra210-jetson-cv-punmux-p2597-2180-a00.dtsi
Change:
hdmi_int_dp_hpd_pcc1 {
nvidia,pins = “hdmi_int_dp_hpd_pcc1”;
nvidia,function = “dp”;
nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
};

File: tegra210-jetson-cv-power-tree-p2597-2180-a00.dtsi
Change:
host1x {
dc@54200000 {
avdd_dsi_csi-supply = <&max77620_ldo0>;
avdd_lcd-supply = <&en_avdd_disp_3v3>;
dvdd_lcd-supply = <&en_dvdd_disp_1v8>;
vdd_lcd_bl_en-supply = <&lcd_bl_en>;
vdd_lcd_bl-supply = <&vdd_3v3>;
/* eDP */
vdd_ds_1v8-supply = <&en_dvdd_disp_1v8>;
avdd_io_edp-supply = <&max77620_gpio7>;
/*DP */
vdd-dp-pwr-supply = <&vdd_3v3>;
avdd-dp-pll-supply = <&max77620_sd3>;
vdd-edp-sec-mode-supply = <&vdd_sys_boost>;
vdd-dp-pad-supply = <&max77620_ldo8>;

};

Hello, x1tester62:
What kind of problem you met?
Generally, to bring-up it, you may have to check some signals and try to figure out why it fails, and then check the corresponding software configurations.

br
Chenjian

simply not getting any video on the diplayport connector. Will pull out a scope when I get the chance to see if anything is present.

Do the edits I made make sense though?

I’m still having major issues getting DP to work.
I am now at the point where i have an fb being probed and mounted but i still don’t know if it is actually working (i’m still getting nothing out on a monitor).

I got this far by editing my dts and doing some hacks in /video/tegra/dc to force sor1 id 1
My dts has the following under host1x:

/* tegradc.1 */
dc@54240000 {
	status = "okay";
	nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;
	nvidia,emc-clk-rate = <300000000>;
	nvidia,cmu-enable = <1>;
	nvidia,fb-bpp = <32>; /* bits per pixel */
	nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;
	/* dp */
	vdd-dp-pwr-supply = <&vdd_3v3>;
	avdd-dp-pll-supply = <&max77620_sd3>;
	vdd-edp-sec-mode-supply = <&vdd_sys_boost>;
	vdd-dp-pad-supply = <&max77620_ldo8>;			
};
sor1 {
	nvidia,sor1-output-type = "dp";
	status = "okay";
	compatible = "dp, display";
	dp-display {
		status = "okay";
		compatible = "dp, display";
		nvidia,is_ext_dp_panel = <1>;		
		disp-default-out {
			nvidia,out-type = <TEGRA_DC_OUT_DP>;
			nvidia,out-align = <TEGRA_DC_ALIGN_MSB>;
			nvidia,out-order = <TEGRA_DC_ORDER_RED_BLUE>;
			nvidia,out-flags = <TEGRA_DC_OUT_CONTINUOUS_MODE>;
			nvidia,out-pins = <TEGRA_DC_OUT_PIN_H_SYNC TEGRA_DC_OUT_PIN_POL_LOW
					   TEGRA_DC_OUT_PIN_V_SYNC TEGRA_DC_OUT_PIN_POL_LOW
					   TEGRA_DC_OUT_PIN_PIXEL_CLOCK TEGRA_DC_OUT_PIN_POL_LOW
					   TEGRA_DC_OUT_PIN_DATA_ENABLE TEGRA_DC_OUT_PIN_POL_HIGH>;
			nvidia,out-parent-clk = "pll_d2";
		};
	};
};

i now have the following printing to dmesg:

tegradc tegradc.1: Display dc.54240000 registered with id=1
parse_dp_settings: No dp-gr-settings node
of_dc_parse_platform_data: could not find vrr-settings node
of_dc_parse_platform_data: could not find SD settings node
of_dc_parse_platform_data: could not find cmu node
of_dc_parse_platform_data: could not find cmu node for adobeRGB
tegradc tegradc.1: DT parsed successfully
tegradc tegradc.1: dp: couldn't get regulator vdd_hdmi_5v0
tegradc tegradc.1: nominal-pclk:25200000 parent:25200000 div:1.0 pclk:25200000 24948000~27468000
tegradc tegradc.1: dp: HPD is not detected
tegradc tegradc.1: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
tegradc tegradc.1: dp: HPD is not detected
tegradc tegradc.1: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
tegradc tegradc.1: dp: HPD is not detected
tegradc tegradc.1: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
tegradc tegradc.1: dp: HPD is not detected
tegradc tegradc.1: dp: Failed to write DPCD data. CMD 0x600, Status 0x0
tegradc tegradc.1: dp: failed to power on panel (0xfffffff2)
tegradc tegradc.1: probed
tegradc tegradc.1: fb registered

I now get the following when running startx:

[  1433.582]
X.Org X Server 1.15.1
Release Date: 2014-04-13
[  1433.582] X Protocol Version 11, Revision 0
[  1433.582] Build Operating System: Linux 3.2.0-60-highbank armv7l Ubuntu
[  1433.582] Current Operating System: Linux localhost 3.10.67 #39 SMP PREEMPT Thu Jul 21 17:23:36 EDT 2016 aarch64
[  1433.582] Kernel command line: fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096t
[  1433.583] Build Date: 30 July 2014  12:24:34AM
[  1433.583] xorg-server 2:1.15.1-0ubuntu2.1 (For technical support please see http://www.ubuntu.com/support)
[  1433.583] Current version of pixman: 0.30.2
[  1433.583]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[  1433.583] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1433.583] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Jul 21 21:50:06 2016
[  1433.583] (==) Using config file: "/etc/X11/xorg.conf"
[  1433.584] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1433.584] (==) No Layout section.  Using the first Screen section.
[  1433.584] (==) No screen section available. Using defaults.
[  1433.584] (**) |-->Screen "Default Screen Section" (0)
[  1433.585] (**) |   |-->Monitor "<default monitor>"
[  1433.585] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[  1433.585] (**) |   |-->Device "Tegra0"
[  1433.585] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[  1433.585] (==) Automatically adding devices
[  1433.585] (==) Automatically enabling devices
[  1433.585] (==) Automatically adding GPU devices
[  1433.585] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[  1433.585]    Entry deleted from font path.
[  1433.585] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[  1433.585]    Entry deleted from font path.
[  1433.585] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[  1433.585]    Entry deleted from font path.
[  1433.585] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[  1433.585]    Entry deleted from font path.
[  1433.586] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[  1433.586]    Entry deleted from font path.
[  1433.586] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/Type1,
        built-ins
[  1433.586] (==) ModulePath set to "/usr/lib/arm-linux-gnueabihf/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[  1433.586] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[  1433.586] (II) Loader magic: 0xab190f10
[  1433.586] (II) Module ABI versions:
[  1433.586]    X.Org ANSI C Emulation: 0.4
[  1433.586]    X.Org Video Driver: 15.0
[  1433.586]    X.Org XInput driver : 20.0
[  1433.586]    X.Org Server Extension : 8.0
[  1433.586] Initializing built-in extension Generic Event Extension
[  1433.586] Initializing built-in extension SHAPE
[  1433.586] Initializing built-in extension MIT-SHM
[  1433.586] Initializing built-in extension XInputExtension
[  1433.586] Initializing built-in extension XTEST
[  1433.586] Initializing built-in extension BIG-REQUESTS
[  1433.586] Initializing built-in extension SYNC
[  1433.586] Initializing built-in extension XKEYBOARD
[  1433.587] Initializing built-in extension XC-MISC
[  1433.587] Initializing built-in extension SECURITY
[  1433.587] Initializing built-in extension XINERAMA
[  1433.587] Initializing built-in extension XFIXES
[  1433.587] Initializing built-in extension RENDER
[  1433.587] Initializing built-in extension RANDR
[  1433.587] Initializing built-in extension COMPOSITE
[  1433.587] Initializing built-in extension DAMAGE
[  1433.587] Initializing built-in extension MIT-SCREEN-SAVER
[  1433.587] Initializing built-in extension DOUBLE-BUFFER
[  1433.587] Initializing built-in extension RECORD
[  1433.587] Initializing built-in extension DPMS
[  1433.587] Initializing built-in extension Present
[  1433.587] Initializing built-in extension DRI3
[  1433.587] Initializing built-in extension X-Resource
[  1433.587] Initializing built-in extension XVideo
[  1433.587] Initializing built-in extension XVideo-MotionCompensation
[  1433.587] Initializing built-in extension SELinux
[  1433.587] Initializing built-in extension XFree86-VidModeExtension
[  1433.587] Initializing built-in extension XFree86-DGA
[  1433.587] Initializing built-in extension XFree86-DRI
[  1433.587] Initializing built-in extension DRI2
[  1433.587] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[  1433.587] (II) "glx" will be loaded by default.
[  1433.587] (WW) "xmir" is not to be loaded by default. Skipping.
[  1433.587] (II) LoadModule: "extmod"
[  1433.588] (II) Module "extmod" already built-in
[  1433.588] (II) LoadModule: "glx"
[  1433.588] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  1433.612] (II) Module glx: vendor="NVIDIA Corporation"
[  1433.612]    compiled for 4.0.2, module version = 1.0.0
[  1433.612]    Module class: X.Org Server Extension
[  1433.612] (II) NVIDIA GLX Module  23.2.0  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-630)  Mon Feb  8 17:42:14 PST 2016
[  1433.612] Loading extension GLX
[  1433.612] (II) LoadModule: "nvidia"
[  1433.612] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[  1433.613] (II) Module nvidia: vendor="NVIDIA Corporation"
[  1433.613]    compiled for 4.0.2, module version = 1.0.0
[  1433.613]    Module class: X.Org Video Driver
[  1433.613] (II) NVIDIA dlloader X Driver  23.2.0  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-630)  Mon Feb  8 17:44:11 PST 2016
[  1433.613] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  1433.613] (--) using VT number 7

[  1433.613] (WW) Falling back to old probe method for NVIDIA
[  1433.613] (II) Loading sub module "fb"
[  1433.613] (II) LoadModule: "fb"
[  1433.614] (II) Loading /usr/lib/xorg/modules/libfb.so
[  1433.614] (II) Module fb: vendor="X.Org Foundation"
[  1433.614]    compiled for 1.15.1, module version = 1.0.0
[  1433.614]    ABI class: X.Org ANSI C Emulation, version 0.4
[  1433.614] (II) Loading sub module "wfb"
[  1433.614] (II) LoadModule: "wfb"
[  1433.614] (II) Loading /usr/lib/xorg/modules/libwfb.so
[  1433.615] (II) Module wfb: vendor="X.Org Foundation"
[  1433.615]    compiled for 1.15.1, module version = 1.0.0
[  1433.615]    ABI class: X.Org ANSI C Emulation, version 0.4
[  1433.615] (II) Loading sub module "ramdac"
[  1433.615] (II) LoadModule: "ramdac"
[  1433.615] (II) Module "ramdac" already built-in
[  1433.615] (II) NVIDIA(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[  1433.615] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[  1433.615] (==) NVIDIA(0): RGB weight 888
[  1433.615] (==) NVIDIA(0): Default visual is TrueColor
[  1433.615] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  1433.615] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[  1433.616] (**) NVIDIA(0): Enabling 2D acceleration
[  1433.632] (EE) NVIDIA(GPU-0): Failed to initialize client
[  1433.632] (EE)
[  1433.632] (EE) Backtrace:
[  1433.632] (EE)
[  1433.632] (EE) Segmentation fault at address 0x48
[  1433.632] (EE)
Fatal server error:
[  1433.632] (EE) Caught signal 11 (Segmentation fault). Server aborting
[  1433.632] (EE)
[  1433.633] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[  1433.633] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1433.633] (EE)
[  1433.633] (EE) Server terminated with error (1). Closing log file.

All. I got a little further and hotplug is now being detected. So i can unplug and replug and the X1 recognizes. In addition, my monitor displays a no sync detected message when the plug is not plugged in, but removes the message once attached to the X1.

Unfortunately i am only getting a black screen though.

Here is my current dmesg output:

[    5.244323] tegra_dc_probe
[    5.245561] tegradc tegradc.1: Display dc.54240000 registered with id=1
[    5.298074] parse_dp_settings: No dp-gr-settings node
[    5.322366] of_dc_parse_platform_data: could not find vrr-settings node
[    5.328955] of_dc_parse_platform_data: could not find SD settings node
[    5.335492] of_dc_parse_platform_data: could not find cmu node
[    5.341278] of_dc_parse_platform_data: could not find cmu node for adobeRGB
[    5.348209] tegradc tegradc.1: DT parsed successfully
[    5.356256] tegradc tegradc.1: dp: couldn't get regulator vdd_hdmi_5v0
[    5.410752] tegradc tegradc.1: nominal-pclk:25200000 parent:25200000 div:1.0 pclk:25200000 24948000~27468000
[    5.855277] dp lt: state 0 (Reset), hpd 1, pending_lt_evt 1
[    5.860433] dp lt: switching from state 0 (Reset) to state 0 (Reset)
[    5.866743] dp lt: state 0 (Reset), hpd 1, pending_lt_evt 0
[    5.913119] dp lt: config: lane 0: vs level: 0, pe level: 0, pc2 level: 0
[    5.919886] dp lt: config: lane 1: vs level: 0, pe level: 0, pc2 level: 0
[    5.926630] dp lt: config: lane 2: vs level: 0, pe level: 0, pc2 level: 0
[    5.933407] dp lt: config: lane 3: vs level: 0, pe level: 0, pc2 level: 0
[    5.940161] dp lt: tx_pu: 0x20
[    6.032242] dp lt: switching from state 0 (Reset) to state 2 (clock recovery)
[    6.039228] dp lt: state 2 (clock recovery), hpd 1, pending_lt_evt 0
[    6.060371] dp lt: config: lane 0: vs level: 0, pe level: 0, pc2 level: 0
[    6.067116] dp lt: config: lane 1: vs level: 0, pe level: 0, pc2 level: 0
[    6.073893] dp lt: config: lane 2: vs level: 0, pe level: 0, pc2 level: 0
[    6.080649] dp lt: config: lane 3: vs level: 0, pe level: 0, pc2 level: 0
[    6.087393] dp lt: tx_pu: 0x20
[    6.149729] tegradc tegradc.1: dp: aux write defer (0x10020000) -- 6
[    6.211860] dp lt: CR done
[    6.214359] dp lt: switching from state 2 (clock recovery) to state 3 (channel equalization)
[    6.222789] dp lt: state 3 (channel equalization), hpd 1, pending_lt_evt 0
[    6.314718] dp lt: new config: lane 0: vs level: 0, pe level: 0, pc2 level: 0
[    6.321669] dp lt: new config: lane 1: vs level: 0, pe level: 0, pc2 level: 0
[    6.328760] dp lt: new config: lane 2: vs level: 0, pe level: 0, pc2 level: 0
[    6.335883] dp lt: new config: lane 3: vs level: 0, pe level: 0, pc2 level: 0
[    6.342991] dp lt: config: lane 0: vs level: 0, pe level: 0, pc2 level: 0
[    6.349751] dp lt: config: lane 1: vs level: 0, pe level: 0, pc2 level: 0
[    6.356496] dp lt: config: lane 2: vs level: 0, pe level: 0, pc2 level: 0
[    6.363268] dp lt: config: lane 3: vs level: 0, pe level: 0, pc2 level: 0
[    6.370028] dp lt: tx_pu: 0x20
[    6.461979] dp lt: CE retry
[    6.464738] dp lt: switching from state 3 (channel equalization) to state 3 (channel equalization)
[    6.473693] dp lt: state 3 (channel equalization), hpd 1, pending_lt_evt 0
[    6.551490] dp lt: CE done
[    6.553931] dp lt: switching from state 3 (channel equalization) to state 5 (link training pass)
[    6.562867] tegradc tegradc.1: probed
[    6.562928] tegradc tegradc.1: nominal-pclk:185597000 parent:185596875 div:1.0 pclk:185596875 183741030~202300730
[    6.587006] tegradc tegradc.1: fb registered

and when i run startx i still get the same segmentation fault i had in my previous post. Any ideas?

This is on sor1 forcing an id of 1 in the \dc\ files.

If you look at “/var/log/Xorg.0.log”, do you see an ABI version section like this, and does the ABI match?

[    13.302] (II) Module ABI versions:
[    13.302]    X.Org ANSI C Emulation: 0.4
[    13.302]    X.Org Video Driver: 15.0
[    13.302]    X.Org XInput driver : 20.0
[    13.302]    X.Org Server Extension : 8.0

You may want to post the Xorg.0.log.

Here is the full .log

[   220.657]
X.Org X Server 1.15.1
Release Date: 2014-04-13
[   220.657] X Protocol Version 11, Revision 0
[   220.657] Build Operating System: Linux 3.2.0-60-highbank armv7l Ubuntu
[   220.657] Current Operating System: Linux localhost 3.10.67 #50 SMP PREEMPT Fri Jul 22 17:46:15 EDT 2016 aarch64
[   220.657] Kernel command line: fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096t
[   220.657] Build Date: 30 July 2014  12:24:34AM
[   220.657] xorg-server 2:1.15.1-0ubuntu2.1 (For technical support please see http://www.ubuntu.com/support)
[   220.657] Current version of pixman: 0.30.2
[   220.657]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[   220.657] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   220.658] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Jul 22 21:51:00 2016
[   220.658] (==) Using config file: "/etc/X11/xorg.conf"
[   220.658] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   220.659] (==) No Layout section.  Using the first Screen section.
[   220.659] (==) No screen section available. Using defaults.
[   220.659] (**) |-->Screen "Default Screen Section" (0)
[   220.659] (**) |   |-->Monitor "<default monitor>"
[   220.659] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[   220.659] (**) |   |-->Device "Tegra0"
[   220.659] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[   220.659] (==) Automatically adding devices
[   220.660] (==) Automatically enabling devices
[   220.660] (==) Automatically adding GPU devices
[   220.660] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[   220.660]    Entry deleted from font path.
[   220.660] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[   220.660]    Entry deleted from font path.
[   220.660] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[   220.660]    Entry deleted from font path.
[   220.660] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[   220.660]    Entry deleted from font path.
[   220.660] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[   220.660]    Entry deleted from font path.
[   220.660] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/Type1,
        built-ins
[   220.660] (==) ModulePath set to "/usr/lib/arm-linux-gnueabihf/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[   220.660] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[   220.660] (II) Loader magic: 0xab3e1f10
[   220.660] (II) Module ABI versions:
[   220.660]    X.Org ANSI C Emulation: 0.4
[   220.660]    X.Org Video Driver: 15.0
[   220.660]    X.Org XInput driver : 20.0
[   220.660]    X.Org Server Extension : 8.0
[   220.661] Initializing built-in extension Generic Event Extension
[   220.661] Initializing built-in extension SHAPE
[   220.661] Initializing built-in extension MIT-SHM
[   220.661] Initializing built-in extension XInputExtension
[   220.661] Initializing built-in extension XTEST
[   220.661] Initializing built-in extension BIG-REQUESTS
[   220.661] Initializing built-in extension SYNC
[   220.661] Initializing built-in extension XKEYBOARD
[   220.661] Initializing built-in extension XC-MISC
[   220.661] Initializing built-in extension SECURITY
[   220.661] Initializing built-in extension XINERAMA
[   220.661] Initializing built-in extension XFIXES
[   220.661] Initializing built-in extension RENDER
[   220.661] Initializing built-in extension RANDR
[   220.661] Initializing built-in extension COMPOSITE
[   220.661] Initializing built-in extension DAMAGE
[   220.661] Initializing built-in extension MIT-SCREEN-SAVER
[   220.661] Initializing built-in extension DOUBLE-BUFFER
[   220.661] Initializing built-in extension RECORD
[   220.661] Initializing built-in extension DPMS
[   220.662] Initializing built-in extension Present
[   220.662] Initializing built-in extension DRI3
[   220.662] Initializing built-in extension X-Resource
[   220.662] Initializing built-in extension XVideo
[   220.662] Initializing built-in extension XVideo-MotionCompensation
[   220.662] Initializing built-in extension SELinux
[   220.662] Initializing built-in extension XFree86-VidModeExtension
[   220.662] Initializing built-in extension XFree86-DGA
[   220.662] Initializing built-in extension XFree86-DRI
[   220.662] Initializing built-in extension DRI2
[   220.662] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[   220.662] (II) "glx" will be loaded by default.
[   220.662] (WW) "xmir" is not to be loaded by default. Skipping.
[   220.662] (II) LoadModule: "extmod"
[   220.662] (II) Module "extmod" already built-in
[   220.662] (II) LoadModule: "glx"
[   220.663] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   220.684] (II) Module glx: vendor="NVIDIA Corporation"
[   220.684]    compiled for 4.0.2, module version = 1.0.0
[   220.684]    Module class: X.Org Server Extension
[   220.684] (II) NVIDIA GLX Module  23.2.0  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-630)  Mon Feb  8 17:42:14 PST 2016
[   220.684] Loading extension GLX
[   220.684] (II) LoadModule: "nvidia"
[   220.684] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   220.685] (II) Module nvidia: vendor="NVIDIA Corporation"
[   220.685]    compiled for 4.0.2, module version = 1.0.0
[   220.685]    Module class: X.Org Video Driver
[   220.685] (II) NVIDIA dlloader X Driver  23.2.0  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-630)  Mon Feb  8 17:44:11 PST 2016
[   220.685] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[   220.685] (--) using VT number 7

[   220.685] (WW) Falling back to old probe method for NVIDIA
[   220.685] (II) Loading sub module "fb"
[   220.686] (II) LoadModule: "fb"
[   220.686] (II) Loading /usr/lib/xorg/modules/libfb.so
[   220.686] (II) Module fb: vendor="X.Org Foundation"
[   220.686]    compiled for 1.15.1, module version = 1.0.0
[   220.686]    ABI class: X.Org ANSI C Emulation, version 0.4
[   220.686] (II) Loading sub module "wfb"
[   220.686] (II) LoadModule: "wfb"
[   220.687] (II) Loading /usr/lib/xorg/modules/libwfb.so
[   220.687] (II) Module wfb: vendor="X.Org Foundation"
[   220.687]    compiled for 1.15.1, module version = 1.0.0
[   220.687]    ABI class: X.Org ANSI C Emulation, version 0.4
[   220.687] (II) Loading sub module "ramdac"
[   220.687] (II) LoadModule: "ramdac"
[   220.687] (II) Module "ramdac" already built-in
[   220.688] (II) NVIDIA(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[   220.688] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[   220.688] (==) NVIDIA(0): RGB weight 888
[   220.688] (==) NVIDIA(0): Default visual is TrueColor
[   220.688] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[   220.688] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[   220.688] (**) NVIDIA(0): Enabling 2D acceleration
[   220.704] (EE) NVIDIA(GPU-0): Failed to initialize client
[   220.705] (EE)
[   220.705] (EE) Backtrace:
[   220.705] (EE)
[   220.705] (EE) Segmentation fault at address 0x48
[   220.705] (EE)
Fatal server error:
[   220.705] (EE) Caught signal 11 (Segmentation fault). Server aborting
[   220.705] (EE)
[   220.706] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[   220.706] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   220.706] (EE)
[   220.706] (EE) Server terminated with error (1). Closing log file.

Again i made some mods to the video/tegra/dc/ files to force ID 1 so sor1 mounts and not sor. But besides that it should all be the same.

All

I was able to change my kernel command line to boot the console to my fb1 (instead of default fb0) and that worked.

I get the console printing to my DisplayPort monitor. Hence at a baseline harware level it is working which is a relief to know. I now know this is definitely a software/driver issue and not a hardware issue.

I am still stuck getting the SegFault from the nvidia driver. I tried using fbdev instead of nvidia and it does not segfault, but it also doesn’t work.

Let me know if there is any advice in how to determine what can be causing this segfault. I see the main error is “(EE) NVIDIA(GPU-0): Failed to initialize client”

Here’s the interesting part of the log near the end:

(**) NVIDIA(0): Enabling 2D acceleration
NVIDIA(GPU-0): Failed to initialize client
(EE)
(EE) Backtrace:
(EE)
(EE) Segmentation fault at address 0x48
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting

Right after showing the enabling 2D part it should say something like this:

Valid display device(s) on GPU-0 at SoC
     DFP-0

So it all looks good until it tries to detect what display is connected. If you use serial console or ssh you should be able to continue using command line without the display functioning. I suggest install packages “read-edid” and “edid-decode”, then seeing if these commands work:

get-edid | parse-edid
get-edid | edid-decode

These read the i2c DDC/EDID data…which is probably what the X server was doing at the moment of failure.

Welp looks like my schematic has a little error on the AUX lines that i’m gonna to have to fix. That would explain why they aren’t reading anything properly from the monitor.

Ill have to try and tack a wire on and see if it works. Thanks a ton for the help.

Quick question, does the Nvidia’s driver support communication to the monitor via the new DP aux protocl or does it only support I2C uses these Aux lines?

Fixed the error real quick, still nothing changed. Looking back it looks like it may not have been necessary.

running the get-edid commands fail with the following:

get-edid | parse-edid
This is read-edid version 3.0.1. Prepare for som[ 9850.827271] tegra-i2c 7000c000.i2c: no acknowledge from address 0x50
e fun.
Attempting to use i2c interface
No EDID on bus 0[ 9850.852116] tegra-i2c 7000c400.i2c: no acknowledge from address 0x50

No EDID on bus 1
[ 9851.859848] tegra-i2c 7000c700.i2c: --- register dump for debugging ----
[ 9851.894668] tegra-i2c 7000c700.i2c: I2C_CNFG - 0x22c00
[ 9851.913825] tegra-i2c 7000c700.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 9851.929765] tegra-i2c 7000c700.i2c: I2C_FIFO_CONTROL - 0xe0
[ 9851.937462] tegra-i2c 7000c700.i2c: I2C_FIFO_STATUS - 0x800040
[ 9851.945452] tegra-i2c 7000c700.i2c: I2C_INT_MASK - 0xed
[ 9851.952843] tegra-i2c 7000c700.i2c: I2C_INT_STATUS - 0x0
[ 9851.960264] tegra-i2c 7000c700.i2c: msg->len - 1
[ 9851.966963] tegra-i2c 7000c700.i2c: is_msg_write - 1
[ 9851.974017] tegra-i2c 7000c700.i2c: next_msg->len - 1
[ 9851.980943] tegra-i2c 7000c700.i2c: is_next_msg_write - 0
[ 9851.988103] tegra-i2c 7000c700.i2c: buf_remaining - 1
[ 9851.994956] tegra-i2c 7000c700.i2c: i2c transfer timed out, addr 0x0050, data 0x00
No EDID on bus 3
[ 9852.004650] tegra-i2c 7000d000.i2c: no acknowledge from address 0x50
No EDID on bus 4
[ 9853.010024] tegra-i2c 7000d100.i2c: --- register dump for debugging ----
[ 9853.044749] tegra-i2c 7000d100.i2c: I2C_CNFG - 0x22c00
[ 9853.052094] tegra-i2c 7000d100.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 9853.060937] tegra-i2c 7000d100.i2c: I2C_FIFO_CONTROL - 0xe0
[ 9853.068655] tegra-i2c 7000d100.i2c: I2C_FIFO_STATUS - 0x800040
[ 9853.076596] tegra-i2c 7000d100.i2c: I2C_INT_MASK - 0xed
[ 9853.083929] tegra-i2c 7000d100.i2c: I2C_INT_STATUS - 0x0
[ 9853.091333] tegra-i2c 7000d100.i2c: msg->len - 1
[ 9853.098070] tegra-i2c 7000d100.i2c: is_msg_write - 1
[ 9853.105109] tegra-i2c 7000d100.i2c: next_msg->len - 1
[ 9853.111911] tegra-i2c 7000d100.i2c: is_next_msg_write - 0
[ 9853.119037] tegra-i2c 7000d100.i2c: buf_remaining - 1
[ 9853.125866] tegra-i2c 7000d100.i2c: i2c transfer timed out, addr 0x0050, data 0x00
No EDID on bus 5
[ 9853.136877] tegra-vii2c 546c0000.i2c: no acknowledge from address 0x50
No EDID on bus 6
1 potential busses found: 2
Bus 2 doesn't really have an EDID...
Couldn't find an accessible EDID on this computer.
I'm sorry nothing was successful. Maybe try some other arguments
if you played with them, or send an email to Matthew Kern <pyrophobicman@gmail.com>.
Partial Read... Try again

But i tried this on the jetson dev board as well and it gives the exact same error.

Maybe something wrong with the command? maybe the address is wrong?

was able to read the edid via /sys/kernel/debug/tegradc.1/edid

00 ff ff ff ff ff ff 00 1e 6d f2 59 01 01 01 01
 01 17 01 04 a5 43 1c 78 9e ca 95 a6 55 4e a1 26
 0f 50 54 a5 4b 80 71 4f 81 80 81 c0 a9 c0 b3 00
 01 01 01 01 01 01 7e 48 00 e0 a0 38 1f 40 40 40
 3a 00 a5 22 21 00 00 18 02 3a 80 18 71 38 2d 40
 58 2c 45 00 a5 22 21 00 00 1a 00 00 00 fc 00 4c
 47 20 55 4c 54 52 41 57 49 44 45 0a 00 00 00 fd
 00 38 4b 1e 5a 18 00 0a 20 20 20 20 20 20 01 ae
 02 03 1c 71 49 90 04 03 14 12 05 1f 01 13 23 09
 07 07 83 01 00 00 65 03 0c 00 10 00 02 3a 80 18
 71 38 2d 40 58 2c 45 00 56 51 21 00 00 1e 01 1d
 80 18 71 1c 16 20 58 2c 25 00 a5 22 21 00 00 9e
 01 1d 00 72 51 d0 1e 20 6e 28 55 00 a5 22 21 00
 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 a5 22
 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 bc

so the aux lines are definitely there. again don’t know why get-edid doesn’t work but it doesn’t work on the eval board either.

So my monitor is able to send its edid over the host pc as shown here. Don’t know if the nvidia driver is able to read it though.