ASRock X570 ITX/TB3 and Belkin Thunderbolt 3 Dock Plus on Linux

I have this fantastic setup where my desktop PC is thunderbolted away to the next door room through a wall so I have a completely silent system. Trouble is, I can’t get my dock working in openSUSE Tumbleweed despite it being connected and authorized, and I suspect it might have something to do with the motherboard and BIOS (v2.30) based upon this thread:
[thisforumrootaddress]/t/asrock-x570-phantom-tb3-itx-and-linux-no-bus-number-available-for-hot-added-bridge/156951

I have the same message in ‘dmesg’ – “No bus number available for hot added bridge” – even with the newest BIOS, and the other solutions in the thread don’t work for me (not even BIOS v1.20). However, with other versions (I think v1.20 and 1.78, although I forget whether it was with the kernel parameters or not) I get something different in ‘dmesg’ (thunderbolt device gets disconnected after something fails) albeit the same end result.

The dock works fine on Windows 10, although I’ve yet to test display since I don’t have a DP cable (it’s on its way) to connect to the motherboard input and GPU. I’ve even tried to install the thunderbolt utility ASRock provides on their download page and install it using wine with ‘msiexec’, but that was a dead end.

Anyway, any help debugging and hopefully getting this to work would be greatly appreciated. I’ve already contacted Belkin themselves who would get back to me with more competent people apparently.

OP,

Thunderbolt is still a mess in the *nix world because Intel is dragging their feet. @Wendell has been able to get thunderbolt working on AMD stuff with quite a few hacks and particular sets of hardware.

USB4 seems to be getting work done in the Linux kernel since it is an open standard so you will more than likely have to wait until that official release before you even see any real work on Thunderbolt 3 in the *nix world.

If you really want docked GNU/Linux action right now, you are going to need to go with a USB3 dock instead.

Thanks for the reply. I looked up USB4, and it seems it came with kernel v5.6, but openSUSE Tumbleweed is already on 5.7.7.

Here’s what dmesg currently shows:

thunderbolt 0-1: new device found, vendor=0x13 device=0x109a
thunderbolt 0-1: Belkin Thunderbolt 3 Dock Plus
pciereport 0000:00:01.1: PME: Spurious native interrupt!
pciereport 0000:05:01.0: pciehp: Slot(1): Card present
pciereport 0000:05:01.0: pciehp: Slot(1): Link up
pci 0000:07:00.0: [8086:15ef] type 01 class 0x060400
pci 0000:07:00.0: enabling Extended Tags
pci 0000:07:00.0: supports D1 D2
pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 000:07:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:05:.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
pci 0000:07:00.0: No bus number available for hot-added bridge
pcireport 0000:05:01.0: PCI bridge to [bus 07]
pcireport 0000:05:01.0: bridge window [io 0xc000-0xcfff]
pcireport 0000:05:01.0: bridge window [mem 0xd4000000-0xd41fffff]
pcireport 0000:05:00.0: bridge window [mem 0x90000000-0x901fffff 64bit pref]

It almost reads to me that it supports DisplayPort at least? Will have to wait until the DP cable comes to test it though.

Does not look like their are any issues except that it cannot find a bus number for one of the PCI interfaces.

I just don’t have any experience with TB because it has never really worked on GNU/Linux until the 4.19 kernel, if I recall correctly.

The workaround can be found here: ASRock x570 Phantom TB3-ITX and Linux - "No bus number available for hot-added bridge"

2 Likes

Sadly no change with BIOS v2.60 either. That thread is linked in my OP btw.

1 Like

The work around in the linked post suggested:

pci=realloc,assign-busses,hpbussize=0x33

Based on your dmesg output, it looks like that dock is registering multiple devices so you may try passing larger numbers to hpbussize which is used to set the minimum amount of additional bus numbers reserved for buses below a hotplug bridge. Default is 1 (kernel-parameters)

2 Likes

You might also try increasing the bus space memory available to something likehpmmiosize=128M,hpmmioprefsize=512M - the default for each of those is 2MB so the values in my example may be a bit excessive so play around with it to see if more memory helps.

Wonderful news!

I played around with the settings, but to no avail. Then I visited your link to kernel-parameters and realized I had made a very stupid assumption that kernel options on openSUSE weren’t comma separated, but space separated. However, as your link makes very clear, you’re only adding one parameter which contains several comma separated options. I then tried it again with the correct formatting, and now it works!

Now the only thing left for me is to figure out why the DP ports don’t appear to be working. I have a small display which can be connected through an HDMI to miniHDMI cable. If I add a small DP to HDMI adapter directly from the GPU, I get display output. However, if I try that same adapter and cable with the dock, I get no output (I have a DP cable going from the GPU to the motherboard’s DP IN port). Connecting through USB-C doesn’t work either. There’s an HDMI port on the motherboard too, but I assume (haven’t checked at this moment) that’s just display output for an APU.

Maybe I should make a new thread about that once I’ve experimented a bit?
EDIT: I did a very interesting experiment regarding the display issue. See the result in another thread I made on the topic: t/odd-incompatibility-between-portable-usb-c-monitor-and-thunderbolt-3/162190

Regardless, thank you so much for the help. I wouldn’t have discovered my faulty assumption if you hadn’t come with the suggestions you did.

2 Likes

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.