Skip to content

Apple Driver Boot EFI

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

Boot and EFI

Upstream status: works with stock loader.efi. Apple firmware is EFI 1.x with Apple extensions, older than the UEFI 2.x baseline, but FreeBSD's loader copes on every model in the fleet.

flowchart LR
    PWR[Power on] --> FW["Apple EFI firmware"]
    FW -->|"Option key"| PICK["Startup Manager<br/>(firmware boot picker)"]
    FW -->|default| ESP["ESP: EFI/BOOT/BOOTX64.EFI"]
    PICK --> ESP
    ESP --> L{"What is installed there?"}
    L -->|"loader.efi"| BSD["FreeBSD loader<br/>-> kernel"]
    L -->|"rEFInd / Meridian"| MENU["Boot menu"] --> BSD
    L -->|"T2 machines"| SEC["T2 verifies the chain first:<br/>set reduced security in Recovery"]
    SEC --> BSD

    style BSD fill:#1a7a3a,color:#fff
    style SEC fill:#8a6d1a,color:#fff
Loading

Per-era notes

Era Boot reality
2006 to early 2007 (EFI32) MacBook1,1/2,1, MacBookPro1,x/2,x, iMac4,1 to 6,1, Mac mini 1,1/2,1: 32-bit EFI even on 64-bit CPUs. CSM/BIOS boot, or an EFI32 grub handing off to a 64-bit kernel
mid 2007 onward (EFI64) starts with MacBookPro3,1 (mid 2007, verified booting loader.efi in this fleet); clean EFI64 boot from the ESP
Mac Pro exception Mac Pro 1,1 and 2,1 kept EFI32 until the 2008 Mac Pro 3,1 went EFI64
T2 (2018 to 2020) must set reduced security + external boot in macOS Recovery first
Apple Silicon different universe (iBoot), experimental arm64 bring-up territory

Practical notes

  • The firmware Startup Manager (hold Option) only lists things it likes; installing loader.efi as the fallback EFI/BOOT/BOOTX64.EFI is the reliable path on Macs.
  • Keeping a small macOS or the recovery partition around saves you when firmware updates or T2 security settings need touching.
  • Dual-boot with another OS on the same disk: a menu bootloader in the fallback path (rEFInd, or Meridian in this fleet) picks the OS; Apple NVRAM boot-order tricks are less dependable than on PC UEFI.
  • Multi-OS example in the fleet: anvil (iMac12,2) dual-boots FreeBSD and DragonFly via Meridian; ember rotates five operating systems.

Kernel configs

Development builds on this fleet use the GENERIC_APPLE kernel config: GENERIC plus the Apple-relevant experimental drivers. Stock FreeBSD GENERIC boots the same machines, minus the extras.

Back to Apple Hardware.

Clone this wiki locally