Skip to content

Apple Driver WiFi

Abdelkader Boudih edited this page Aug 24, 2026 · 3 revisions

WiFi

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.

Which driver handles which chip

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
Loading

Upstream drivers

  • 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.

In development: the kwx framework

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.

Models

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.

Clone this wiki locally