Page MenuHomeFreeBSD

apple_bce/vhci: add T2 virtual USB host controller
ClosedPublic

Authored by guest-seuros on May 19 2026, 10:31 AM.
Referenced Files
Unknown Object (File)
Sat, Aug 8, 7:13 PM
Unknown Object (File)
Sat, Aug 8, 12:42 PM
Unknown Object (File)
Tue, Aug 4, 12:56 AM
Unknown Object (File)
Mon, Aug 3, 7:02 AM
Unknown Object (File)
Sun, Aug 2, 4:55 AM
Unknown Object (File)
Sun, Aug 2, 1:12 AM
Unknown Object (File)
Sat, Aug 1, 6:31 AM
Unknown Object (File)
Sat, Aug 1, 5:46 AM
Subscribers

Details

Summary

Implements a VHCI driver on top of the BCE transport:

  • Virtual USB bus registration via usb_controller
  • Port discovery and device enumeration
  • Control, interrupt, and bulk endpoint support
  • Firmware event handling with taskqueue
  • Suspend/resume via BCE mailbox

Provides keyboard, trackpad, and Touch Bar access on T2 Macs.

Tested-on: MacBookPro16,2 (A2251), Mac mini 8,1 (A1993)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

whew this is a whole firmware data pipe and usb controller implementation! this broadly looks okay but i'd like some other usb eyeballs on it.

adrian added a project: USB.
This revision is now accepted and ready to land.May 30 2026, 1:39 AM
This revision was automatically updated to reflect the committed changes.