Repository navigation
Apple Hardware Plan
Abdelkader Boudih edited this page Aug 24, 2026
·
4 revisions
Staging area for content targeting the FreeBSD wiki (https://wiki.freebsd.org/Laptops/Apple_MacBook and related pages). Everything is drafted here in Markdown, validated on real hardware, then converted to MoinMoin markup for the FreeBSD wiki.
- One page per Apple model on hand or already tested, with a per-device status table.
- One page per driver/subsystem, describing the hardware family, driver state, and which models carry it.
- An index page tying models ↔ drivers together (compatibility matrix).
- A clean subset of that content portable to the FreeBSD wiki (no in-development drivers in the upstream version - mark them clearly).
Apple-Hardware.md <- index + model/driver matrix
Apple-Model-<identifier>.md <- one per model (e.g. Apple-Model-Macmini5,1)
Apple-Driver-<subsystem>.md <- one per subsystem
| Model | Machine | Era/Notes |
|---|---|---|
| MacBookPro3,1 | falcon | Core 2 Duo, GeForce 8600M GT, AR5418 ath WiFi |
| MacBookPro9,2 | sextant | Ivy Bridge, BCM4331 (bcsm target) |
| MacBookPro11,1 | skylark | Haswell, Iris 5100 |
| MacBookPro11,5 | voyager | Haswell, TB2 |
| MacBookPro14,2 | t1bullshit | T1 chip |
| MacBook Pro 16,2 | cipher | T2, BCM4364 (kure) |
| Macmini5,1 | cacodemon | Sandy Bridge |
| Macmini6,2 | ember | Ivy Bridge, BCM4331, Cactus Ridge TB1 |
| Mac mini 7,1 | flint | Iris 5100 |
| Mac mini 8,1 | bastion | T2, BCM4364 (lanai) |
| iMac12,2 | anvil | Dual GPU (BARTS + HD3000), Light Ridge TB |
| iMac14,3 | mirage | i5-4570R (DragonFly box, still document) |
| iMac17,1 | crucible | Skylake 5K, BCM43602, working uvideo camera |
| Apple Silicon (M1/M1 Max) | j313 / periscope | arm64 bring-up, blocked on rtkit/sart/nvme |
| Page | Covers | Status source |
|---|---|---|
| WiFi | bwn(4), ath(4), kwx: bcsm (BCM4331 HT-PHY), bcfm (BCM43602, BCM4364+CLM blobs) | kwx mission docs |
| Thunderbolt | tb driver, FW CM, boot-time load requirement, Light/Cactus/Falcon Ridge, XDomain | project_tb docs |
| FireWire | fwohci(4), fwcrom, DV/AMDTP (parked) | tree + memory |
| Camera | FireWire iSight, USB FaceTime HD (uvideo - works on crucible), T2-gated cameras (need BCE/VHCI) | crucible/video4 work |
| SMC | asmc(4), universal key autodetect (D56405), T2 MMIO SMC | asmc project |
| ACPI | acpi_apple (backlight, WoL), atrtc/AWAC (not upstream; D54954 is a separate duplicate-attach fix) | driver sources |
| T2 | apple_bce + VHCI (upstream 2026-06), T2 NVMe quirks (upstream), audio/camera implications | t2 status notes |
| Input | atopcase/SPI keyboard+trackpad, USB HID fallback | tree |
| GPU | i915kms (gen6–gen9), radeon (incl. anvil BARTS EFI-posted fix), NVIDIA = none | anvil/flint/skylark |
| Storage | AHCI, T2 NVMe (ANS2 quirks upstream 2026-06), SD readers | nvme notes |
| Ethernet | bge(4) (MPSAFE fix), msk(4) | tree |
| Audio | snd_hda + Cirrus codecs, T2 audio path | per-model testing |
| Bluetooth | ubt(4) on BCM USB, firmware state | per-model testing |
| Boot/EFI | GENERIC_APPLE kernel config, EFI quirks per model | config in tree |
| Suspend/Resume | per-model matrix - the perennial laptop question | testing needed |
# <Model> (<machine codename>)
- Board: <smbios.system.product>, CPU, RAM
- FreeBSD version tested / KERNCONF
| Device | Hardware | Driver | Status | Notes |
|---|---|---|---|---|
| WiFi | BCM4331 (14e4:4331) | bcsm | Partial | scan+assoc, no ... |
...
## dmesg / pciconf
(collected from the machine, trimmed)Status legend: Working / Partial / Broken / Untested / N-A - same vocabulary the FreeBSD wiki laptop pages use.
- Skeleton - index page, both templates, empty model pages. (no hardware needed)
- Driver pages - write from existing project docs and memory; mark in-development (kwx, kgx, acpi_apple...) vs upstream (asmc, ath, fwohci, apple_bce...).
-
Model pages - collect
pciconf -lv,usbconfig,devinfo, dmesg from each machine as it comes online; fill the tables. Machines currently offline get pages with Untested status until visited. - Matrix + review - build the index matrix, cross-link, sanity pass.
- Upstream port - strip in-development content, convert Markdown → MoinMoin, post to wiki.freebsd.org (manual - the wiki is behind Anubis bot protection and needs a wiki account; posting is done by hand).
WiFi is NOT upstream yet. kwx and its drivers (bcsm, bcfm) exist only out-of-tree. Upstream-portable WiFi content is limited to legacy bwn(4)/ath(4) facts; everything kwx-related stays in the staging wiki, clearly marked, until the framework lands.
- Laptops →
wiki.freebsd.org/Laptops/Apple_MacBook(existing page) - Mac mini / iMac are NOT laptops - propose sibling pages
(e.g.
wiki.freebsd.org/Appleumbrella) when submitting. - Apple Silicon bring-up is early; document here, hold off upstreaming.