Repository navigation
Apple Driver GPU
Upstream status: via ports. Kernel mode setting drivers ship in the drm-kmod ports (graphics/drm-kmod), not in base. The base kernel provides vt(4) with the EFI framebuffer, which works on every Mac and is often the honest answer for servers.
| GPU family | Models | Console (vt/efifb) | Accel/KMS |
|---|---|---|---|
| NVIDIA GeForce 8600M GT | MacBookPro3,1 | works | none, never will be |
| Intel HD 3000 (gen6) | Macmini5,1, iMac12,2 secondary | works | i915kms |
| Intel HD 4000 (gen7) | Macmini6,2, MacBookPro9,2 | works | i915kms |
| Intel Iris 5100 (gen7.5) | Mac mini 7,1, MacBookPro11,1 | works | i915kms |
| Intel Iris Pro (gen8/9) | MacBookPro11,5 (+ AMD), iMac17,1 (+ AMD) | works | i915kms |
| AMD Radeon HD 6970M (BARTS) | iMac12,2 | works | radeonkms, see EFI note |
| AMD GCN parts | MacBookPro11,5, iMac17,1 | works | amdgpu |
| Intel UHD 630 + AMD 5xxxM | T2 machines | works | i915kms / amdgpu, untested here |
| Apple Silicon | M1 family | experimental arm64 bring-up | no |
Apple EFI posts the discrete card itself. Re-running the AtomBIOS ASIC init
on an already-posted BARTS card wedges it; the fix (verified on iMac12,2)
is to skip atom_asic_init when the card is EFI-posted. Ring, IB, CP, DMA
and UVD tests pass with that change. This fix lives in the experimental kgx work;
check drm-kmod behavior before porting the claim upstream.
Dual-GPU MacBook Pros (11,5) and iMacs boot with the mux set by firmware. There is no gmux driver on FreeBSD (linuxkpi ships only a stub apple-gmux.h whose detect always answers no), so you get whichever GPU the firmware selected; on most models booting third-party OSes that is the discrete one, powered up, all the time. Battery life on such laptops reflects it.
kgx is an experimental out-of-tree GPU framework (separate from drm-kmod). Current campaigns target Broadcom VideoCore (Raspberry Pi) and BARTS as a proof of concept. Not Apple-wiki material yet.
Back to Apple Hardware.