Milestones: from "boots to GUI" to a usable device¶
Tags: [obs] observed on hardware, [src] read from source, [guess], [open] not started.
An arrow A --> B means B needs A. Updated 2026-10-24. Per-driver detail and evidence: Status and Coverage.
"Usable device" (Gate U) = touch, buttons, a stable GUI, Wi-Fi, battery/charging, and a boot without a PC.
graph TD
M0["M0 shim -> XNU, UFS root, USB log [obs]"]
M1["M1 SpringBoard GUI, 8 cores [obs, 2026-10-22]"]
M2["M2 PMIC rails via ACPM before XNU [obs]"]
M3["M3 touch: FTM5 over SPI, taps and swipes reach SpringBoard [obs, 2026-10-22]"]
M4["M4 touch recipe is the default, no boot-args [open]"]
M5["M5 hardware keys to HID [partial: driver reads the GPIOs, no key press tested]"]
M6["M6 GUI stable: poster-extension crashes, black screen after minutes, slow first boot [open]"]
M7["M7 reliable dev loop: tools/xrun, tools/phone, local kernel build [obs]"]
M8["M8 Wi-Fi: chip, firmware, IO80211-style en0 [partial: PCIe link, config space, BAR0 chip id obs]"]
M9["M9 GPU path [partial: jobs run from the shim and XNU obs, no renderer]"]
M10["M10 battery, charger, power-off [open, needs research]"]
M11["M11 boot without a PC [open, needs a boot-slot decision by the maintainer]"]
GU(["Gate U: usable phone"])
M12["M12 audio [open]"]
M13["M13 Bluetooth [open]"]
M14["M14 cellular modem [open, out of scope while the modem partition stays untouched]"]
M0 --> M1
M0 --> M2
M2 --> M3
M1 --> M3
M3 --> M4
M1 --> M5
M0 --> M7
M7 --> M6
M1 --> M6
M6 --> M8
M3 --> M8
M1 --> M9
M0 --> M10
M2 --> M10
M3 --> GU
M4 --> GU
M5 --> GU
M6 --> GU
M8 --> GU
M10 --> GU
M11 --> GU
M1 --> M12
M8 --> M13
M8 --> M14
What comes next¶
- M8 Wi-Fi (milestone 2): backplane core enumeration, firmware and NVRAM download from the shim, then a PCIe and Broadcom driver in the kernel and the
apple80211front end. - M9 GPU: fix the kernel panic when a GPU buffer is mapped into a process, then a first GPU-rendered frame.
- M6 stability: the poster-extension crash loops, the black screen after minutes and the 14+ minute first-boot migration.
- M11 needs a decision by the maintainer: today the phone boots only through
fastboot bootfrom a PC, and the project rules never writeboot*partitions except by explicit exception.
Open questions (measure or reverse, do not guess)¶
- Fuel gauge and charger interfaces on the Pixel 6a (M10).
- Whether key presses reach HID (M5).
- How the Broadcom firmware behaves after download. The firmware and NVRAM files come from the user's own phone image and are never committed.