I got my Framework Desktop with BIOS 3.04 and I stayed on that until I completed my Gentoo installation and got every device inside to work properly.
Then I updated to BIOS 3.05 and after that the two USB4 ports on the back fail to operate properly: any USB4 / Thunderbolt SSD enclosure connected to them exposes the SDD as a SCSI attached device (/dev/sdX) instead of NVME device (/dev/nvmeXn1) as they did under BIOS 3.04.
The Framework Desktop does not have a BIOS setting that controls PCIe tunneling and it seems that stopped working properly from 3.04 to 3.05.
Because of that, under the latest BIOS the negotiation between the machine and the USB4 or Thunderbolt controller of external enclosures drops the connection from USB4 to USB3.2. So, now there is an huge drop of performance of my SSDs from 40Gbps to 10Gbps.
Did anybody else experience this?
Are your USB4 attached SSDs being exposed as NVME or SCSI devices?
Update to my initial post: I tried all the USB4 / Thunderbolt enclosures that don’t work properly on the FD, and they do work correctly on another PC that I have, the SSDs being exposed as NVME devices.
This is still an issue on BIOS 3.06. Additionally I found that the ports no longer supply 5V3A, so when an SSD is copying a large file even at just 10gbps, it goes over the 7.5W supplied and disconnects. This really needs to get resolved in 3.07. It’s not just a speed drop, it makes the fastest ports on the FD unusable!
I did a lot of testing and reporting to the person in charge of that ticket and they are working on it. At their request I also opened an issue (#260) at Framework Software Firmware Issue Tracker, which seems to be reviewed periodically by Framework people working on BIOS updates. It may help if more people comment or report there similar problems that they might be having.
Found out that it is a combination of kernel used and enclosure.
It looks like Ubuntu kernels (and maybe its derivative distros) can handle correctly some USB4 / TB4 enclosures and incorrectly others. Older Thunderbolt 3 enclosures do not work well even in Ubuntu.
Other distros that are not patching their kernels as Ubuntu, may or may not work, also depending on enclosure.
As there are millions of such combinations, it just happened that I was in an unlucky one, but I still got a partial workaround.
I did more tests, with two hubs, both powered and providing 3 ports:
Sabrent Thunderbolt 4 Hub
CalDigit Thunderbolt 4 | USB4 Element Hub (which got a recent firmware update)
All USB-C ports on the FD (back or front, USB4 or USB 3.2) only provide 7.5 W, not 15 W.
If your SSD draws more than 7.5 W you’re out of luck, you need a powered hub or a powered enclosure.
Windows on the FD now recognizes all enclosures connected directly to port or through hubs, regardless of type: USB4 / TB4 / TB3. They all work at their highest transfer speed.
USB 4 / Thunderbolt 4 enclosures in Ubuntu: the SSDs are exposed as /dev/nvme and work at their highest speed regardless of connection type (port / hub) , but only at the first plug. If unplugged and then plugged again, they are exposed as /dev/sd and work at a lower speed corresponding to USB 3.2 bandwidth.
Thunderbolt 3 enclosures in Ubuntu: regardless of how they are connected to the FD, some of them are not detected at all, some of them work at low speed.
In other distributions (I tested Arch and Gentoo), some enclosures SSDs are exposed as /dev/sd and work at low speed, while others don’t work at all.
It became obvious to me that it’s not Framework Desktop’s fault, either hardware or firmware, because Windows works perfectly.
Linux kernels work partially or not at all, depending on the patching done by the distribution.
right, but isnt it still a firmware bug that the rear USB ports dont supply the full 15W of power as the standard specifies it should? without it my ASM2464PD based Ugreen enclosure isnt even recognized on the boot menu if i plug it into a rear port, but does see it in the front 3.2 ports
USB4 ports require integration with the USB Power Delivery (USB PD) specification, delivering a minimum of 7.5W (5V/1.5A) of power per port, with support scaling up to 100W or 240W depending on the device implementation and the USB PD 3.1 standard.