Experimental observations PCIe x1 video card TX2

Hi to all.
I am testing a Zotac GeForce® GT 710 1GB PCIE x 1 video card on a PCIe port. I have a test rootfs based on the 5.6.10 kernel on my SD card. Because Nvidia has not yet released a driver for the arm64 architecture, I’m experimenting with the nouveau driver.
The first positive result is that the card does not need an external power supply.
Second observation - the system identifies the card (I think correctly).

Output - # lspci -v
00: 01.0 PCI bridge: NVIDIA Corporation Device 10e5 (rev a1) (prog-if 00 [Normal decode])
Device tree node: / sys / firmware / devicetree / base / pcie @ 10003000 / pci @ 1.0
Flags: bus master, fast devsel, latency 0, IRQ 40
Bus: primary = 00, secondary = 01, subordinate = 01, sec-latency = 0
I / O behind bridge: 00001000-00001fff [size = 4K]
Memory behind bridge: 50800000-51ffffff [size = 24M]
Prefetchable memory behind bridge: 0000000058000000-0000000063ffffff [size = 192M]
Capabilities: [40] Subsystem: NVIDIA Corporation Device 0000
Capabilities: [48] Power Management version 3
Capabilities: [50] MSI: Enable- Count = 1/2 Maskable- 64bit +
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot +), MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] L1 PM Substates
Kernel driver in use: pcieport

01: 00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ZOTAC International (MCO) Ltd. GK208B [GeForce GT 710]
Flags: bus master, fast devsel, latency 0, IRQ 70
Memory at 51000000 (32-bit, non-prefetchable) [size = 16M]
Memory at 58000000 (64-bit, prefetchable) [size = 128M]
Memory at 60000000 (64-bit, prefetchable) [size = 32M]
I / O ports at 1000 [size = 128]
Expansion ROM at 50800000 [virtual] [disabled] [size = 512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable + Count = 1/1 Maskable- 64bit +
Capabilities: [78] Express Legacy Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID = 0001 Rev = 1 Len = 024 <?>
Kernel driver in use: new
Kernel modules: new

01: 00.1 Audio device: NVIDIA Corporation GK208 HDMI / DP Audio Controller (rev a1)
Subsystem: ZOTAC International (MCO) Ltd. GK208 HDMI / DP Audio Controller
Flags: fast devsel
Memory at 50880000 (32-bit, non-prefetchable) [disabled] [size = 16K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable- Count = 1/1 Maskable- 64bit +
Capabilities: [78] Express Endpoint, MSI 00

After connecting the HDMI cable from the card to the monitor, the system boots but there is no output to the monitor. It is only possible to communicate with the system via the serial port.
What I’ve googled so far is probably a bug in the pci interface.

Here is the relevant part of the dmesg output:

root@saux:[~]

dmesg | grep pci

[ 1.151130] ehci-pci: EHCI PCI platform driver
[ 1.151379] ohci-pci: OHCI PCI platform driver
[ 3.626893] tegra-pcie 10003000.pcie: Adding to iommu group 5
[ 3.627229] tegra-pcie 10003000.pcie: 4x1, 1x1 configuration
[ 3.628395] tegra-pcie 10003000.pcie: probing port 0, using 4 lanes
[ 3.696788] tegra-pcie 10003000.pcie: PCI host bridge to bus 0000:00
[ 3.696799] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 3.696808] pci_bus 0000:00: root bus resource [mem 0x50100000-0x57ffffff]
[ 3.696817] pci_bus 0000:00: root bus resource [mem 0x58000000-0x7fffffff pref]
[ 3.696827] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 3.696936] pci 0000:00:01.0: [10de:10e5] type 01 class 0x060400
[ 3.696959] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x4 may corrupt adjacent RW1C bits
[ 3.696973] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x4 may corrupt adjacent RW1C bits
[ 3.697026] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x3e may corrupt adjacent RW1C bits
[ 3.697057] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x52 may corrupt adjacent RW1C bits
[ 3.697114] pci 0000:00:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 3.697125] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x4c may corrupt adjacent RW1C bits
[ 3.698244] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 3.698258] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x3e may corrupt adjacent RW1C bits
[ 3.698273] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x3e may corrupt adjacent RW1C bits
[ 3.698288] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x3e may corrupt adjacent RW1C bits
[ 3.698301] pci_bus 0000:00: 2-byte config write to 0000:00:01.0 offset 0x6 may corrupt adjacent RW1C bits
[ 3.698432] pci 0000:01:00.0: [10de:128b] type 00 class 0x030000
[ 3.698493] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00ffffff]
[ 3.698524] pci 0000:01:00.0: reg 0x14: [mem 0x00000000-0x07ffffff 64bit pref]
[ 3.698556] pci 0000:01:00.0: reg 0x1c: [mem 0x00000000-0x01ffffff 64bit pref]
[ 3.698578] pci 0000:01:00.0: reg 0x24: [io 0x0000-0x007f]
[ 3.698598] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0007ffff pref]
[ 3.698797] pci 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth, limited by 5 GT/s x1 link at 0000:00:01.0 (capable of 32.000 Gb/s with 5 GT/s x8 link)
[ 3.698878] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[ 3.698940] pci 0000:01:00.1: [10de:0e0f] type 00 class 0x040300
[ 3.698988] pci 0000:01:00.1: reg 0x10: [mem 0x00000000-0x00003fff]
[ 3.700367] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 3.700379] pci_bus 0000:00: 1-byte config write to 0000:00:01.0 offset 0x1a may corrupt adjacent RW1C bits
[ 3.700406] pci 0000:00:01.0: BAR 15: assigned [mem 0x58000000-0x63ffffff 64bit pref]
[ 3.700416] pci 0000:00:01.0: BAR 14: assigned [mem 0x50800000-0x51ffffff]
[ 3.700425] pci 0000:00:01.0: BAR 13: assigned [io 0x1000-0x1fff]
[ 3.700437] pci 0000:01:00.0: BAR 1: assigned [mem 0x58000000-0x5fffffff 64bit pref]
[ 3.700466] pci 0000:01:00.0: BAR 3: assigned [mem 0x60000000-0x61ffffff 64bit pref]
[ 3.700493] pci 0000:01:00.0: BAR 0: assigned [mem 0x51000000-0x51ffffff]
[ 3.700506] pci 0000:01:00.0: BAR 6: assigned [mem 0x50800000-0x5087ffff pref]
[ 3.700516] pci 0000:01:00.1: BAR 0: assigned [mem 0x50880000-0x50883fff]
[ 3.700529] pci 0000:01:00.0: BAR 5: assigned [io 0x1000-0x107f]
[ 3.700544] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 3.700553] pci 0000:00:01.0: bridge window [io 0x1000-0x1fff]
[ 3.700565] pci 0000:00:01.0: bridge window [mem 0x50800000-0x51ffffff]
[ 3.700575] pci 0000:00:01.0: bridge window [mem 0x58000000-0x63ffffff 64bit pref]
[ 3.700607] pci 0000:00:01.0: nv_msi_ht_cap_quirk didn’t locate host bridge
[ 3.700661] pcieport 0000:00:01.0: Adding to iommu group 5
[ 3.700710] pcieport 0000:00:01.0: enabling device (0000 -> 0003)
[ 3.700793] pcieport 0000:00:01.0: PME: Signaling with IRQ 40
[ 3.700980] pcieport 0000:00:01.0: AER: enabled with IRQ 40
[ 3.701185] pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
root@saux:[~]

dmesg | grep nouveau

[ 0.000000] Kernel command line: root=/dev/mmcblk2p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 video=nouveau nouveau.config1
[ 9.975587] nouveau 0000:01:00.0: Adding to iommu group 5
[ 9.981044] nouveau 0000:01:00.0: enabling device (0000 -> 0003)
[ 9.987152] nouveau 0000:01:00.0: NVIDIA GK208B (b060b0b1)
[ 10.170891] nouveau 0000:01:00.0: bios: version 80.28.a6.00.10
[ 10.370978] nouveau 0000:01:00.0: fb: 1024 MiB DDR3
[ 11.852562] nouveau 0000:01:00.0: DRM: VRAM: 1024 MiB
[ 11.857607] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[ 11.862916] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[ 11.868656] nouveau 0000:01:00.0: DRM: DCB version 4.0
[ 11.873790] nouveau 0000:01:00.0: DRM: DCB outp 00: 01000f02 00020030
[ 11.880222] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011f62 00020010
[ 11.886653] nouveau 0000:01:00.0: DRM: DCB outp 02: 02022f10 00000000
[ 11.893085] nouveau 0000:01:00.0: DRM: DCB conn 00: 00001031
[ 11.898735] nouveau 0000:01:00.0: DRM: DCB conn 01: 00002161
[ 11.904386] nouveau 0000:01:00.0: DRM: DCB conn 02: 00000200
[ 11.912198] nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies
[ 12.204667] nouveau 0000:01:00.0: DRM: allocated 1920x1080 fb: 0x80000, bo 00000000175b8f10
[ 14.214526] nouveau 0000:01:00.0: DRM: core notifier timeout
[ 16.214431] nouveau 0000:01:00.0: DRM: base-0: timeout
[ 16.513801] nouveau 0000:01:00.0: DRM: GPU lockup - switching to software fbcon
[ 16.568706] nouveau 0000:01:00.0: fb0: nouveaudrmfb frame buffer device
[ 16.588361] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1
[ 942.162288] nouveau 0000:01:00.0: DRM: core notifier timeout

I may try the impossible but please get experienced on commenting on this issue. I’m not a Linux guru or programmer.
I’m just a person who likes to try new things.

Thank you for your time.

Someone from NVIDIA will need to answer about mixing in Nouveau and a 5.x kernel, but some questions below are to get things started.

You will probably need to post a copy of your “/etc/X11/xorg.conf” (perhaps renamed with a “.txt” file name suffix).

Do you have a monitor running on the HDMI connector of the carrier board?

Sometimes if something goes wrong after a startx command a reboot may be necessary, but does anything happen from either of these:

DISPLAY=":0" startx
DISPLAY=":1" startx

(Each monitor needs a server, and the DISPLAY environment variable names which GPU to associate with an X server instance)

I have two monitors.
Connection:

Jetson HDMI output connected to monitor # 1
=> host1x driver
Zotac HDMI output connected to monitor # 2
=> nouveau driver

I need to create xorg.conf for each output but I don’t think it will work. The developer from “nouveau” commented on the output of dmesg. It’s new to them. Use the Nouveau driver on devices from Nvidia.
I quote:
"Note that PCIe is non-coherent on most ARM devices (including Tegra TX2
IIRC), so if the notifier BO isn’t mapped as uncached memory, you
probably won’t see the expected notifier content, as you are reading
stale cache line content. "end of citation

Oh no. If we were working with drivers from Nvidia for arm64, it would definitely be easier.

I will announce the result.

I tried all possible combinations of settings but without a positive result.
After consulting with the developer from nouveau there is a bug in the code. So I think we can end this topic.
I’ll pull out the card in a year, maybe by then the driver will be released by Nvidia or I’ll look for a card from another manufacturer.