Opened 16 months ago

Last modified 11 months ago

#18538 reopened enhancement

Support for USB 4.0

Reported by: kallisti5 Owned by: mmlr
Priority: normal Milestone: Unscheduled
Component: Drivers Version: R1/beta4
Keywords: Cc:
Blocked By: #12889 Blocking:
Platform: All

Description

USB 4.0 is just around the corner and has a *lot* of changes. Thunderbolt 4 is a major part of USB 4 now.

The following platforms have USB 4:

  • Some Intel 11th Gen Tiger Lake hardware
  • Intel 12th Gen hardware
  • Intel 13th Gen hardware
  • AMD Ryzen™ 7040

We should likely start evaluating how Haiku is going to function on these platforms. At the time of this writing, no USB 4.0 PCIe add-on cards are available.

My framework laptop is an 11th Gen Tiger Lake, but unfortunately it's the USB 3.2 / Thunderbolt 3 variant. I'll upgrade at some point to test.

Change History (11)

comment:1 by waddlesplash, 16 months ago

Resolution: no change required
Status: newclosed

https://forum.osdev.org/viewtopic.php?f=1&t=55955

The USB specification version is usually the first released while the xHC controller is then released to accommodate the new features in the new USB specification. It just so happens, at the moment, that the latest release of the xHCI specification (revision 1.20) is/will be USB 4.0 capable.

We already support xHC 1.20 controllers, so there's nothing more we need to do here.

comment:2 by kallisti5, 16 months ago

Yeah, good point. There are a lot of questions about Thunderbolt 4 vs Thunderbolt 3, but those are another topic. I've also confirmed the Framework 11th gen actually does include USB 4 support, and the USB 3.2 stuff works via XHCI on all ports fine today.

Given the limited availability of USB 4 / TB 4 equipment mixed with current functionality, this closure is fair.

comment:3 by X512, 11 months ago

XHCI is about USB 3. USB 4 is completely different thing and it us used as tunnel for various protocols: USB 3, PCIe, DisplayPort etc.. Special OS support for USB 4 bridges is required to get all features and maximum supported speed.

Some recent Linux commit about USB 4: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81af2952e60603d12415e1a6fd200f8073a2ad8b

In order to claim USB 4 support, implementing Thunderbolt HCI support at OS level is required.

Last edited 11 months ago by X512 (previous) (diff)

comment:4 by X512, 11 months ago

Resolution: no change required
Status: closedreopened

comment:5 by waddlesplash, 11 months ago

Component: Drivers/USBDrivers
Keywords: USB4 removed

comment:6 by waddlesplash, 11 months ago

Should this really just be closed as a dupe of #12889 then?

comment:7 by X512, 11 months ago

Maybe yes. USB 4 is basically renamed Thunderbolt 3 with minor electric signal differences. Classic USB devices continue to use USB 3 protocol and XHCI, but tunneled over USB 4.

Version 0, edited 11 months ago by X512 (next)

comment:8 by waddlesplash, 11 months ago

Blocked By: 12889 added
Resolution: duplicate
Status: reopenedclosed

Well, let's close as a dupe for now. Once we get TB3 we can revisit and see if we need more machinery for "USB4".

comment:9 by pulkomandy, 11 months ago

Resolution: duplicate
Status: closedreopened
Type: bugenhancement

I don't see why we should close this. It is certainly blocked by Thunderbolt, but I wouldn't go as far as marking it a duplicate of that. There seem to be some more to USB4 than separately supporting Thunderbolt and USB3, right?

comment:10 by waddlesplash, 11 months ago

I don't think so, no. Linux does not have any separate "USB4" driver, it just has a Thunderbolt driver which supports "USB4": https://xref.landonf.org/source/xref/linux-master/Documentation/admin-guide/thunderbolt.rst#3

comment:11 by cocobean, 11 months ago

They are compatible, but not the same (i.e. implementations will vary). Thunderbolt is USB 4.0+ (full specs w/additions) and USB 4.0 is the basic spec (basic USB 4.0 spec). USB 4.0 has lower power requirements and may provide the minimum of the USB 4.0 spec when implemented.

One key speed factor is this: "Two-lane operation using existing USB Type-C cables and up to 80 Gbps operation over 80 Gbps certified cables."

Note: One driver may handle both USB4/Thunderbolt4 port conditions (USB-C, etc)...

Last edited 11 months ago by cocobean (previous) (diff)
Note: See TracTickets for help on using tickets.