Repository navigation
Apple Driver WiFi
Abdelkader Boudih edited this page Aug 24, 2026
·
3 revisions
Upstream status: partial. ath(4) and bwn(4) are in FreeBSD main. The kwx framework and its drivers (bcsm, bcfm) are out-of-tree work in development and NOT in FreeBSD. Do not port kwx content to the FreeBSD wiki yet.
Apple shipped Atheros briefly, then standardized on Broadcom for a decade. That single sourcing decision is why WiFi is the number one pain point for FreeBSD on Macs.
flowchart TD
A[Apple WiFi chip] --> B{Vendor}
B -->|Atheros AR5418| C["ath(4)<br/>upstream, works"]
B -->|Broadcom| D{Generation}
D -->|"BCM4321/4322<br/>N-PHY era"| E["bwn(4)<br/>upstream, works"]
D -->|"BCM4331<br/>HT-PHY, D11 rev 29"| F["bwn(4) probes it but<br/>cannot drive HT-PHY.<br/>bcsm (in development):<br/>scan works"]
D -->|"BCM4360<br/>SoftMAC, 11ac"| G["No driver anywhere.<br/>Future kwx SoftMAC target"]
D -->|"BCM43602<br/>FullMAC"| H["bcfm (in development):<br/>scan + WPA2 verified"]
D -->|"BCM4364<br/>FullMAC, T2 era"| I["bcfm (in development):<br/>scan + WPA2 verified,<br/>needs per-board CLM blob"]
style C fill:#1a7a3a,color:#fff
style E fill:#1a7a3a,color:#fff
style F fill:#8a6d1a,color:#fff
style G fill:#8a2a2a,color:#fff
style H fill:#8a6d1a,color:#fff
style I fill:#8a6d1a,color:#fff
- ath(4): Atheros AR5418 in MacBookPro3,1. Works, including 5 GHz.
- bwn(4): older Broadcom SoftMAC parts via the bhnd(4) bus stack. It lists BCM4331 PCI IDs and the bhnd bus enumerates the chip fully (chipc, PMU, NVRAM), but the D11 core rev 29 with HT-PHY and radio 0x2059 is beyond what bwn implements, so there is no working WiFi on BCM4331 with stock FreeBSD.
kwx is a unified WiFi framework driving both SoftMAC and FullMAC parts with one codebase. Per-vendor drivers plug into it:
| Driver | Chip | Class | Verified on | Result |
|---|---|---|---|---|
| bcsm | BCM4331 | SoftMAC (HT-PHY, radio 0x2059) | ember, sextant | attach + scan |
| bcfm | BCM43602 | FullMAC | crucible | scan (69 APs) + WPA2 connect, no CLM needed |
| bcfm | BCM4364 rev 3 (apple,lanai) | FullMAC | bastion | scan + WPA2 connect, CLM blob required |
| bcfm | BCM4364 rev 4 (apple,kure) | FullMAC | cipher | scan + WPA2 connect, CLM blob required |
Notes that will matter when this upstreams:
- CLM blobs: BCM4364 boards stay country-disabled (no channels) without the board-specific CLM data file. The board name comes from Apple device properties (apple,lanai, apple,kure, and so on).
- BCM4360 (14e4:43a0, 11ac SoftMAC): no OS has a complete open driver. It is a planned kwx SoftMAC target, not an exclusion.
- Firmware provenance and licensing must be documented (source and license per blob) before any of this graduates to FreeBSD.
| Model | Chip | Stock FreeBSD | In development |
|---|---|---|---|
| MacBookPro3,1 | AR5418 | Working (ath) | same |
| MacBookPro9,2 / Macmini6,2 | BCM4331 | Broken (bwn lacks HT-PHY) | bcsm: scan |
| Mac mini 7,1 / MacBookPro11,x | BCM4360 | None | future kwx target |
| iMac17,1 | BCM43602 | None | bcfm: working |
| Mac mini 8,1 (T2) | BCM4364 b2 lanai | None | bcfm: working with CLM |
| MacBook Pro 16,2 (T2) | BCM4364 b3 kure | None | bcfm: working with CLM |
Practical advice for stock FreeBSD today: use a USB dongle (rtwn, run) or Ethernet, same as the FreeBSD wiki has said for years.
Back to Apple Hardware.