@micah_roth, thanks. I thought it would receive slightly more attention than it did, but it was probably never going to make as much attention as people putting those Titan Ridge cards in Threadripper and them partially working.

As for Thunderbolt 2, I could do it, but the pcie2tbt hack I have in Linux is not the most reliable thing, and I cannot be sure that the handshake is not completely different for Thunderbolt 2. Even if I get the card awake, then I need to test with a device and I would need to borrow the Apple adapter from a friend. Also, when using a card designed for BIOS enumeration with native enumeration, there are some annoyances. For instance, the USB controller sits on a hotplug bridge, because the USB controller disappears when unused. That means the OS will assign many bus numbers and waste them to the USB controller unless I hardcode a workaround into the kernel. Oops, I am talking out of my butt. Thunderbolt 2 does not contain a USB controller.

I could do it if you wish, but since I have never, ever laid my hands on a system with Thunderbolt 2, I do not know what to expect / cannot guarantee anything. Oh, if you are expecting this to work in anything but Linux (you mentioned running / virtualising MacOS), I can tell you it will not. The only way for that to happen is for somebody with way more skills than myself (perhaps people who write the GRUB bootloader or BIOS images) could make a chain loader which enables the Thunderbolt controller and then passes onto Windows or MacOS. But hotplug would likely be broken unless they overrode the ACPI tables as well. Also, even if I do get this working for Linux, if you have any PCIe devices attached to the Thunderbolt card and sleep the computer, it *will* crash in my experience upon wake. I tried and failed to make power management work.

Thinking of Thunderbolt Networking as you mentioned. They say it is 10 Gb/s. With Thunderbolt 3, I have benchmarked upto 16-17 Gb/s, which implies it uses one 20 Gb/s link of Thunderbolt 3. In Linux v5.6 (either that or v5.5) there are new sysfs entries in the Thunderbolt driver rx_lanes, tx_lanes, rx_speed, tx_speed. For now, rx and tx always show the same amount - it is hard coded in the kernel that they read data from the same place. In the future, asymmetric links may be possible, though. Unfortunately, these do not show for Thunderbolt Networking, and cannot show unless using software connection manager in driver (information unavailable if the Thunderbolt firmware in the controller is setting the connections up for us). Software connection manager is some Apple stuff, and USB4. Even Ice Lake Thunderbolt 3 does not use the driver. Also, another driver patch may be required, and Mika Westerberg at Intel is busy with bigger fish to fry. However, I have connected to a Thunderbolt 3 Apple, and the Mac reported 20 Gb/s x1. It means it is only using the single lane. I do not know why the firmware does not bond two lanes for Thunderbolt Networking. Nevertheless, there is a good chance that USB4 will bond two lanes together and give 40 Gb/s for Networking. Reduce that to 27 Gb/s for PCIe after 128B max payload size tanks the performance. But that is still a lot of performance for something marketed as 10 Gb/s.

Most people will not realise even 10 Gb/s, though. Assuming most people use Windows and not Linux (unfortunately), I find that the out of the performance iperf is 2-3 Gb/s because of the firewall or something. I see a thread maxed out, mostly in kernel mode. I have gotten about 10 Gb/s but only after disabling a lot of stuff. Linux flies right out of the box at about 10 Gb/s and with tuning can get easily to 14 Gb/s without too much effort. But that is just iperf. If you use scp on Linux to copy files, you get 2-3 Gb/s because of CPU bottleneck. Here we are with AES instructions baked into the CPU capable of tens of GB/s and yet the software developers cannot reach that potential. Frustrating. I am not sure where the bottleneck is, but I hope it is not in the SSL library. Before I was born, people hand assembled code and had to be efficient because the computers were slow and had little RAM. I feel that the observation "as computers get more powerful, developers get lazier" is true.

That spiel about Thunderbolt Networking is irrelevant for Thunderbolt 2, but I thought somebody on the forum would find it interesting.

Why can a 2011 Mac not run MacOS?

I looked on Ebay and cannot find a Gigabyte GC-THUNDERBOLT 2 card. Do you know where they can be found?

Another option is for me to polish up the kernel patch to enable old Thunderbolt controllers in Linux and give it to you for testing. Have you ever compiled a kernel before? The problem is you should never run a pre-compiled kernel from a stranger because you never know what they put in it.

Cheers for your reply.