Page MenuHomeFreeBSD

usb: support usb 3.1 (SuperSpeedPlus) and usb 3.2 (SuperSpeedPlus_x2) addressing and display for xhci.
Needs ReviewPublic

Authored by aokblast on Sep 2 2025, 6:44 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Oct 2, 5:38 AM
Unknown Object (File)
Thu, Oct 2, 4:35 AM
Unknown Object (File)
Tue, Sep 30, 8:33 AM
Unknown Object (File)
Tue, Sep 23, 4:38 PM
Unknown Object (File)
Sun, Sep 21, 5:34 AM
Unknown Object (File)
Thu, Sep 18, 8:14 AM
Unknown Object (File)
Wed, Sep 17, 7:39 AM
Unknown Object (File)
Sat, Sep 13, 2:06 PM
Subscribers

Details

Reviewers
None
Group Reviewers
USB
Summary

Currently, we only support default PSI id implemented xHCI. For other
xhci, we fallback to 3.0. Note that the total bandwidth of the device
is not so much impacted since all of the setup is done by xHCI
hardware id is compatbile for old xHCI driver.

This driver fix the addressing issue for SSP hub behind a SSP hub and
makes the usb driver detect the speed correctly.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 66767
Build 63650: arc lint + arc unit

Event Timeline

lib/libusb/libusb20_ugen20.c
210

All the lib changes you could do in one commit.

sys/dev/rtwn/rtl8812a/usb/r12au_attach.c
81

You can do this as a separate change, maybe combined with others that just do similar things.

sys/dev/usb/storage/umass.c
2362

These should have their own transfer speeds, I think.

sys/dev/usb/template/usb_template.c
598

2**10 == 1024

602

2**11 is 2048

sys/dev/usb/usb.h
814

You can roll this into the enum... And I'd be tempted to commit just the extra enums first by itself, since that lets you do many slivers of the change on their own as well.

830

Same comment.

sys/dev/usb/usb_hub.c
829

why this change?

lwhsu added inline comments.
lib/libusb/libusb01.c
135
sys/dev/usb/controller/xhci.c
135
544
546
sys/dev/usb/template/usb_template.c
597
601
sys/dev/usb/usb.h
412

usb_devcap_ss_plus_descriptor ?

usr.sbin/usbdump/usbdump.c
165

Do we also need to add USB_SPEED_SUPER_PLUS_X2 ?