Page MenuHomeFreeBSD

usb: support SSP and SSPx2 xHCI
Needs ReviewPublic

Authored by aokblast on Sep 2 2025, 6:44 PM.
Tags
Referenced Files
Unknown Object (File)
Sun, May 3, 5:57 PM
Unknown Object (File)
Sun, Apr 26, 11:35 PM
Unknown Object (File)
Apr 21 2026, 2:09 AM
Unknown Object (File)
Apr 20 2026, 7:25 PM
Unknown Object (File)
Apr 20 2026, 12:07 AM
Unknown Object (File)
Apr 19 2026, 4:21 AM
Unknown Object (File)
Apr 18 2026, 12:36 PM
Unknown Object (File)
Apr 14 2026, 1:20 PM
Subscribers

Details

Reviewers
adrian
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 73375
Build 70258: arc lint + arc unit

Event Timeline

lib/libusb/libusb20_ugen20.c
210 ↗(On Diff #161389)

All the lib changes you could do in one commit.

sys/dev/rtwn/rtl8812a/usb/r12au_attach.c
81 ↗(On Diff #161389)

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

sys/dev/usb/storage/umass.c
2362 ↗(On Diff #161389)

These should have their own transfer speeds, I think.

sys/dev/usb/template/usb_template.c
598 ↗(On Diff #161389)

2**10 == 1024

602 ↗(On Diff #161389)

2**11 is 2048

sys/dev/usb/usb.h
814 ↗(On Diff #161389)

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 ↗(On Diff #161389)

Same comment.

sys/dev/usb/usb_hub.c
829 ↗(On Diff #161389)

why this change?

lwhsu added inline comments.
lib/libusb/libusb01.c
135 ↗(On Diff #161389)
sys/dev/usb/controller/xhci.c
135
550
552
sys/dev/usb/template/usb_template.c
597 ↗(On Diff #161389)
601 ↗(On Diff #161389)
sys/dev/usb/usb.h
412 ↗(On Diff #161389)

usb_devcap_ss_plus_descriptor ?

usr.sbin/usbdump/usbdump.c
165 ↗(On Diff #161389)

Do we also need to add USB_SPEED_SUPER_PLUS_X2 ?

aokblast marked 14 inline comments as done.

Split patches

aokblast retitled this revision from usb: support usb 3.1 (SuperSpeedPlus) and usb 3.2 (SuperSpeedPlus_x2) addressing and display for xhci. to usb: support SSP and SSPx2 xHCI.Sat, May 23, 10:16 AM
aokblast added a reviewer: adrian.
aokblast added a project: USB.

Just split the patch with multiple smaller one.