Thunderbolt 4 *Hubs* under Linux?
I just got the OWC "Thunderbolt Dock", which is a new Thunderbolt 4 dock which has a three port hub on the back. My understanding is that multi-port "hubs" like this are a new feature of Thunderbolt 4, versus the more limited "daisy-chaining" supported by previous Thunderbolt 3 docks.
Anyhow, plugging the dock into the TB4 port on my 2020 Razer Book 13 running Fedora 33 (kernel `5.11.11-200.fc33.x86_64`) lets me use the dock's ethernet and USB functions under Linux, but the actual Thunderbolt ports on the hub do not work.
When I plug the dock into the system, I see some "bridge configuration invalid" stuff, but I also see reports of people getting that for TB3 docks. Plugging my Samsung X5 TB3 drive in through the hub yields a "failed to find parent switch" kernel message and nothing is mounted (it works fine when plugged directly into the TB4 port on the laptop).
Anyhow, I figured I'd start a thread to let people know. I'll have to dig and see what the state of TB4 is in the kernel and if there's any release claiming support for these TB4 hubs yet?
@chris_hubick, Looking forward to your findings. It's too new and support is rolling out at different pace for each OS. Apple has the most vested interest in Thunderbolt so macOS would typical have the best support for new TBT devices. They have their own way of implementing things so that's another complication of this technology. Windows is slow to provide support and often time convoluted because of no clear direction.
I saw this commit and wondered if something in there might fix this, so decided to give upgrading from F33's 5.11 to the 5.12-rc6 kernel from Fedora rawhide a try, but plugging in my X5 gave me the same "failed to find parent switch" as previous, now with a "No bus number available for hot-added bridge" error as well. So, yeah, it could be a bug, but it looks more like it won't be supported in the immediate future 🙁
"No bus number available for hot-added bridge" means that pci enumeration ran out of bus numbers to use?
Are there BIOS options to reserve some PCI bus numbers for the Thunderbolt controllers?
Does functionality change when devices are connected before boot?
Try some kernel options to modify how pci devices are enumerated in Linux?
Compare lspci -tvnn before and after connecting devices? Try my pcitree.sh script https://gist.github.com/joevt/e3cd4ff08aae06279134969c98ca3ab7
Maybe you can see how the bus numbers are assigned to see where it goes wrong.
It is possible that Linux will need to add support for PCI FPB (Flattening Portal Bridge), and so far, I cannot see any commits which suggest that has been added.
When the Dell XPS 17 9710 with Thunderbolt 4 hits Australia, I will buy one and test it out, assuming I can also get my hands on a USB4 hub. If I have issues, I will talk with Mika Westerberg and Bjorn Helgaas about it.