Thunderbolt problem in Pop OS: "No bus number available for hot-added bridge"

Hey,

I have a bit weird problem with my external Thunderbolt hard drive (Samsung X5). I can’t see the partitions on the hard drive. I can’t even see the hard drive itself in Disks or in GParted. I’m running Pop OS 22.04.

When I connect the hard drive to my PC, I can see the hard drive under Thunderbolt settings (in Pop OS’s Settings → Thunderbolt). I have authorized the connection. And in the Thunderbolt settings I can see it is connected. But still I can’t see the partitions. And there’s nothing in /media/username/ and /mnt/ folders also.

If I run “sudo dmesg -w” at the same time, when I connect the hard drive to my PC, I get the following:

[ 1155.763014] thunderbolt 0-1: new device found, vendor=0x175 device=0x4000
[ 1155.763020] thunderbolt 0-1: SAMSUNG ELECTRONICS CO., LTD Portable SSD X5
[ 1155.926512] pcieport 0000:4c:01.0: pciehp: Slot(1): Card present
[ 1155.926517] pcieport 0000:4c:01.0: pciehp: Slot(1): Link Up
[ 1156.066409] pci 0000:4e:00.0: [8086:15da] type 01 class 0x060400
[ 1156.066507] pci 0000:4e:00.0: enabling Extended Tags
[ 1156.066714] pci 0000:4e:00.0: supports D1 D2
[ 1156.066716] pci 0000:4e:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1156.066882] pci 0000:4e:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:4c:01.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[ 1156.067003] pci 0000:4e:00.0: Adding to iommu group 85
[ 1156.067794] pcieport 0000:4c:01.0: ASPM: current common clock configuration is inconsistent, reconfiguring
[ 1156.078363] pci 0000:4e:00.0: No bus number available for hot-added bridge
[ 1156.078370] pcieport 0000:4c:01.0: bridge window [mem 0x00100000-0x000fffff] to [bus 4e] add_size 200000 add_align 100000
[ 1156.078378] pcieport 0000:4c:01.0: BAR 14: no space for [mem size 0x00200000]
[ 1156.078380] pcieport 0000:4c:01.0: BAR 14: failed to assign [mem size 0x00200000]
[ 1156.078383] pcieport 0000:4c:01.0: BAR 14: no space for [mem size 0x00200000]
[ 1156.078384] pcieport 0000:4c:01.0: BAR 14: failed to assign [mem size 0x00200000]
[ 1156.078387] pcieport 0000:4c:01.0: PCI bridge to [bus 4e]
[ 1156.078389] pcieport 0000:4c:01.0: bridge window [io 0x7000-0x7fff]
[ 1156.078397] pcieport 0000:4c:01.0: bridge window [mem 0x90300000-0x904fffff 64bit pref]

So the problem seems to be this: [ 1156.078363] pci 0000:4e:00.0: No bus number available for hot-added bridge

Can this be fixed somehow?




I’m running Threadripper system and I’m using Gigabyte GC-Titan Ridge 2.0 thunderbolt PCI-e card. My motherboard doesn’t support Thunderbolt natively (it doesn’t have the Thunderbolt header). But I have connected the pins 3 and 5 together in the Titan Ridge card’s Thunderbolt header. This will force the Titan Ridge card to power up at boot. If I wouldn’t connect these pins together, then I couldn’t see the Thunderbolt hard drive in the Pop OS’ Thunderbolt settings (and I couldn’t authorize and connect the the device in the Pop OS’ Thunderbolt settings). When I have tested the Thunerbolt hard drive, I have tested always in two ways: I connect the Thunderbolt drive before booting up my PC, or connect the Thunderbolt drive when I have completely booted up my Pop OS.

I found a similar issue and fix on reddit.

2 Likes

Thanks! Actually I found this link also on the weekend.



Before trying that reddit link, I tried the following (I found this in another thread, but I don’t have the link anymore unfortunately):
pci=realloc,assign-busses,hpbussize=0x33

As I’m using systemd, I tried to add it with the kernelstub:
sudo kernelstub --add-options "pci=realloc,assign-busses,hpbussize=0x33"

But this unfortunately resulted that my Linux wouldn’t boot properly.



After fixing the boot, I tried what they mentioned in that reddit link. I tried what the user “things_also” mentioned in that reddit thread (as Pop OS is also using systemd). So I created another bootloader entry /boot/efi/loader/entries/Pop_OS-bussize.conf. And I added the following at the end of the options list:
pci=hpbussize=0x33

But unfortunately when I connected the Thunderbolt hard drive to my PC, I again got the original error: No bus number available for hot-added bridge

Third attempt, now I changed the file /boot/efi/loader/entries/Pop_OS-bussize.conf, and added the following at the end of the options list:
pci=assign-busses,hpbussize=0x33,realloc,hpmemsize=128M,hpmemprefsize=1G

Then I tried to boot with these new changes, but I think every time, my PC just froze at startup. I think first I could get to hard drive encryption dialog, but for some reason my usb-keyboard didn’t work anymore (I tried to boot multiple times, and change the usb-port). But I think the PC just crashed. Then on some other day, when I tried to boot with conf-file, I couldnt even get to the hard drive encryption dialog. So seems like some new option that I added to conf-files, causes the PC to crash.

Does maybe anybody have idea, what maybe I should take away from those options? Or should I change something?

I know this post is over an year old, but I just had this issue today, and wanted to share my fix for it. (I created an account just to post this)

with commit d7b8a217521ca21e2c6391da88d4928c6ce1f539, it seems that hpmemsize and hpmemprefsize have been replaced with hpmmiosize and hpmmioprefsize

modifying the pci options in your last comment with these new arguments works for me.

full options to copy/paste: pci=assign-busses,hpbussize=0x33,realloc,hpmmiosize=128M,hpmmioprefsize=1G

Edit: still seem to have some instability, although the system doesn’t freeze at startup, usb only seems to work about half the time after reboot. Also startup times are longer then should be necessary… Switching to Debian 12 solved my thunderbolt issues without any changes. Must be something in the newer kernel.

1 Like