Issue with XHCI on MSI B650-P board

When trying to install FreeBSD 15.1 on my PC (MSI B650-P Wifi/Ryzen 5 7600X) from a USB drive, the kernel panics when running 'init' as it can't find it, and when I installed the system from my Arch system using Qemu and passing through my drive upon booting it endlessly powered on and off all my usb devices, saying 'uhub0 timed out'. I've tried
  • updating BIOS (its currently on 7D78v1M1)
  • toggling all BIOS options related to USB (XHCI Hand-off and USB Legacy support)
  • disabling MSI/MSIX with the boot options:
    Code:
    set hw.pci.enable_msix=0
    set hw.pci.enable_msi=0
All to no avail.

The only thing that worked was forcing USB 2 exclusively via
Code:
set hint.xhci.0.disabled=1
set hint.xhci.1.disabled=1
However, that also meant that no peripherals worked, so not a real solution.

Command output from Linux's side
Code:
$ lspci -nn | grep -i usb
10:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset USB 3.2 Controller [1022:43f7] (rev 01)
12:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Raphael/Granite Ridge USB 3.1 xHCI [1022:15b6]
12:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Raphael/Granite Ridge USB 3.1 xHCI [1022:15b7]
13:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Raphael/Granite Ridge USB 2.0 xHCI [1022:15b8]

Is there any way to fix this issue or is there no support for my specific case?
 
What file did you download to write to the USB stick and what software/steps did you use to write it? Anything else strange about the stick like it showing up as multiple USB devices to computers or have any passthrough USB ports on it? I've had issues with FreeBSD installers not finding the device anymore partway through boot when using things like easy2boot (lets me boot image files as a partition on the drive) and with an ioddmini (lets me simulate multiple removable+nonremovable drives and optical drives from what are files on the drive). I think the one file intended for use on memory stick instead of using optical media iso files worked better but I normally without extra thought or testing don't use easy2boot or similar and I disable all drives on the ioddmini other than one simulated drive holding the install media when running the installer for reliability reasons.
 
I'd see driver bug, motherboard firmware bug, and device firmware issue as possibilities always worth considering too.

If a device has issues only on USB3 for any reason, you can 'slowly' plug in the drive which will electrically connect only USB2 first and if slow enough then that initializes and it ignores a USB3 connection following the sequence. Since you may be booting/rebooting, you have to stop once the connection establishes to avoid any reinitializations from 'upgrading' it to 3.0 (including poweroff and reboot). I've used these techniques on a few devices that were flaky or completely failed for 3.0 communication but still spoke 2.0 just fine so I could get more life out of them. Alternatively its easier to plug a device into a 2.0 port only if one is available, plug into a 2.0 extension cable, or you could get a 2.0 only adapter to do the same job; with any of those you can plug all the way in just fine.
 
So I've done a bit more testing and even after disabling all internal USB components the issue persisted. Its impractical to force all devices to run USB2 (in my opinion at least) and I'm probably just going to file a bug report.
 
Back
Top