I've tested an ASUS Thunderbolt EX4 (uses Intel Maple Ridge Thunderbolt 4 controller JHL8540) in my Mac Pro 2008 running macOS Catalina (using a Netstor NA255A so I can play with more PCIe cards). USB 10 Gbps works fine (just like GC-TITAN RIDGE and GC-ALPINE RIDGE which I also have in the Netstor).
I connected the USB 2.0 header to an internal USB 2.0 hub, the PCIe 6 pin power to the power supply, but no Thunderbolt header connection or jumper (means Force Power is not required)
View attachment 1763491
There are no discrete PCIe USB4 controller drivers for macOS (Ice Lake, Tiger Lake, and M1 have integrated controllers) so I didn't try Thunderbolt connectivity. I also didn't try the functionality in Windows or Linux. Maybe later.
Here are the PCIe devices:
Code:
│ │└┬09:00.0-[0a-0e] # g3x4 [8086:1136] [0604] (rev 02) PCI bridge : Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
│ │ ├┬0a:00.0-[0b] # g1x4 [8086:1136] [0604] (rev 02) PCI bridge : Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
│ │ │└─0b:00.0 # g1x4 [8086:1137] [0c03] USB controller : Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020]
│ │ ├┬0a:01.0-[0c] # g1x4 [8086:1136] [0604] (rev 02) PCI bridge : Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
│ │ ├┬0a:02.0-[0d] # g1x4 > g0x4 [8086:1136] [0604] (rev 02) PCI bridge : Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
│ │ │└─0d:00.0 # g1x4 [8086:1138] [0c03] USB controller : Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020]
│ │ └┬0a:03.0-[0e] # g1x4 [8086:1136] [0604] (rev 02) PCI bridge : Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
I should update
pcitree.sh to include the prog-if in the class code column. As usual for Thunderbolt, Only the external upstream PCIe link has meaningful PCIe link rate (PCIe gen 3 = 8 GT/s) and link width (x4). The internal devices don't use real PCIe so it doesn't matter that they report gen 1 or gen 0? link rate.
The first USB controller is the USB4 controller (prog-if 0x40) which takes the place of the Thunderbolt NHI in a Thunderbolt controller. The only clue so far that I have that this card follows the USB4 spec is that this PCIe device has the 0x0c0340 PCIe class code, subclass code, and program interface numbers specified in the spec. If it follows the USB4 spec, then someone could make a driver that works in any version of macOS (maybe even PowerPC Macs). The hard part would be getting Target Display Mode and Target Disk Mode to work as Apple does provide APIs and documentation for Thunderbolt drivers. Thunderbolt networking driver can be rewritten using the info from Linux.
The second USB controller is the USB 3.x controller (prog-if 0x30) - same as you would see with any discrete Thunderbolt 3 controller. Would a third party USB4 controller always include a XHCI? Not necessarily. A USB4 controller has a USB3 Down Adapter that is connected to an XHCI. Intel includes the XHCI in the same chip as the USB4 controller (but why did Intel stop including the USB 2.0 stuff after Alpine Ridge in the host controllers?). A Third party USB4 controller could use an external XHCI.
View attachment 1763498