Page MenuHomeFreeBSD

apple_bce/vhci: add T2 virtual USB host controller
ClosedPublic

Authored by seuros on May 19 2026, 10:31 AM.
Referenced Files
F170007440: D57089.id.diff
Thu, Sep 3, 5:55 AM
F169998847: D57089.id.diff
Thu, Sep 3, 5:31 AM
Unknown Object (File)
Wed, Sep 2, 3:00 AM
Unknown Object (File)
Tue, Sep 1, 11:27 PM
Unknown Object (File)
Tue, Sep 1, 10:07 PM
Unknown Object (File)
Tue, Sep 1, 12:56 AM
Unknown Object (File)
Mon, Aug 31, 2:15 AM
Unknown Object (File)
Sun, Aug 30, 11:32 PM
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.