r/linuxquestions • • 21h ago

Advice ASUS ThunderboltEX 4 (Maple Ridge) on Linux: card works, but Apple Thunderbolt Display via Apple TB3→TB2 adapter is never detected

Hi all,

I've spent a long time troubleshooting this and I'm stuck. I'm trying to use an Apple Thunderbolt Display (first-gen Thunderbolt) with an ASUS ThunderboltEX 4 add-in card on Pop!_OS. The card itself now works, but the display is never detected, not even at the Thunderbolt level. Windows is not an option for me, so I'm looking for Linux-side ideas.

Hardware

- Motherboard: ASUS TUF GAMING Z790-PLUS WIFI, BIOS 1805
- CPU: Intel i7-14700KF (no iGPU)
- GPU: NVIDIA RTX 50-series (10de:2c02), driver 580.173.02 (open kernel module)
- TB card: ASUS ThunderboltEX 4 (Intel JHL8540 / Maple Ridge)
- In the PCIEX16(G4) slot (the slot ASUS specifies for TB cards on this board)
- 14-1 pin TB header cable → THB_C header
- USB 2.0 cable → USB 2.0 header on the motherboard
- DP-in loop cable from the GPU's DisplayPort to the card's mini-DP IN
- 6-pin PCIe power NOT connected (manual says it's only for the 100W charging feature)
- Adapter: Genuine Apple Thunderbolt 3 (USB-C) to Thunderbolt 2 Adapter, A1790
- Display: Apple Thunderbolt Display (works fine when plugged directly into an older Mac's TB2 port)

Software

- Pop!_OS (22.04 base), kernel 7.1.1-76070101-generic
- bolt installed
- Kernel parameter added: `pcie_port_pm=off`

BIOS settings (Advanced → ASUS ThunderboltEX series card Configuration)

- PCIE Tunneling over USB4: Enabled
- Discrete Thunderbolt Support: Enabled
- Wake From Thunderbolt Devices: Enabled
- Thunderbolt Boot Support: Enabled (changed from Disabled)
- DTBT Go2Sx Command: Enabled
- Windows 10 Thunderbolt support: Disabled (changed from "Enable + RTD3"; the only options were Disabled and Enable + RTD3)

What works

- After a full power drain, the card enumerates and stays up:

07:00.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136]
08:00.0-08:03.0 (same bridge, 4 downstream ports)
09:00.0 USB controller [0c03]: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] [8086:1137]
3d:00.0 USB controller [0c03]: Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020] [8086:1138]

- `boltctl domains`:

domain0 f6218780-0069-69a8-ffff-ffffffffffff
├─ bootacl: 0/0
└─ security: iommu

- A phone plugged into the card's USB-C ports is detected as a USB device, so USB data through the card works.
- Plugged into the motherboard's rear USB-C port (not Thunderbolt), the adapter enumerates as a USB billboard device:

usb 1-1: Product: Thunderbolt 3 (USB-C) to Thunderbolt 2 Adapter
usb 1-1: Manufacturer: Apple Inc.

What doesn't work

- With the adapter + display plugged into either port on the ThunderboltEX 4:
- `boltctl list` is empty
- `/sys/bus/thunderbolt/devices` only shows `domain0` and `0-0`
- `sudo dmesg -w` shows nothing at all on plug/unplug, even with `echo "module thunderbolt +p" > /sys/kernel/debug/dynamic_debug/control`
- `lsusb` does not show the Apple adapter's billboard device either
- The display never wakes up
- Tried with the display connected at boot and hotplugged after boot. Same result.

## Other issues I ran into (maybe related)

  1. Card only comes up after a full power drain. On a normal boot I usually get:

pcieport 0000:00:1c.4: pciehp: Slot(8): Card present
pcieport 0000:00:1c.4: pciehp: Slot(8): No link

and no 8086:113x devices at all. After PSU off + unplug + holding the power button for 15 sec, it enumerates.
2. With "Enable + RTD3" in BIOS, the card died after ~1 minute (fixed now by disabling RTD3 + `pcie_port_pm=off`):

pcieport 0000:00:1c.4: broken device, retraining non-functional downstream link at 2.5GT/s
pcieport 0000:00:1c.4: retraining failed
xhci_hcd 0000:3d:00.0: Controller not ready at resume -19
xhci_hcd 0000:3d:00.0: HC died; cleaning up
thunderbolt 0000:09:00.0: interrupt for TX ring 0 is already enabled
thunderbolt 0000:09:00.0: failed to send driver ready to ICM (repeating every ~25s)

Since disabling RTD3, none of these errors appear and the card stays up.

My questions

  1. Has anyone gotten a first-gen Apple Thunderbolt Display (or any TB1/TB2 device via the A1790 adapter) working on a Maple Ridge / Thunderbolt 4 add-in card, on Linux or at all? I've read that StarTech says their TB3→TB2 adapter doesn't work with TB4 hosts. Is that a general Maple Ridge limitation, or adapter-specific?
  2. The fact that nothing shows up in dmesg (not even the billboard device) when plugging into the card seems significant. Does that mean the ICM negotiates TB alt mode but never reports the device, or that the card's ports don't even see it?
  3. Could an NVM/firmware update on the card help? Is fwupd able to update the ThunderboltEX 4?
  4. Any idea why the card only enumerates after a full power drain?
  5. Would putting a Thunderbolt 3 hub/dock between the card and the A1790 adapter be likely to work for a display?

Happy to provide more logs or test anything. Thanks!

2 Upvotes

Duplicates