Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/saf/device/evidence/README-pmos-era.md
Fimeg bde961c6f2 saf: one spine — device, state, and work under the index
PAF becomes saf/device (history kept), STATE.md dissolves
into saf/state.md with the dated era archived, the substrate
SAF moves up from souveraine, and every agreement points at
saf/INDEX.md and nowhere else. one map, nothing to remember
2026-08-18 09:47:30 -04:00

51 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PAF — Pixel 3 (blueline) pmOS Architecture Framework
The single living spine for this port. Replaces the accreting handoffs/findings: instead of
appending a new dated doc each session, **update the relevant layer in place.** The spine:
- **[modem.md](modem.md)** — the modem bring-up stack as layers, status per layer, the
eliminated-leads ledger (don't re-chase these), and the one live frontier.
- **[platform.md](platform.md)** — device hardware map, boot/storage architecture, how to
reach the phone, recovery procedures, and the hard hardware lessons.
- **[build.md](build.md)** — how the kernel + device package are actually built with
pmbootstrap, the two-package split, and the build-system gotchas that have each cost a session.
- **[slpi.md](slpi.md)** — SLPI sensor island bring-up and the `sar.cc:27` crash-loop fix.
- **[secure_load_tz_frontier.md](secure_load_tz_frontier.md)** — 🔴 SUPERSEDED: secure-load is
resolved (modem loads clean via DELTA-1). Historical 22/fastrpc_mem record; the live frontier is
the firmware OFFLINE/52 park — see `modem.md` + `diag_capture.md`.
- **[README.md](README.md)** — this index.
Deeper/dated capture docs (`modem_*`, `qcril_*`, `pmos_fix_plan.md`, `diag_capture.md`, …) sit
alongside as evidence; the spine above is what you read first. Sibling docs kept outside the PAF
on purpose: `../README.md` (the generic port guide) and `../SIDE-TASKS.md` (parked non-modem work).
## Status at a glance (2026-07-01)
| Layer | State |
|---|---|
| Firmware load (MBA→MPSS) | 🟢 healthy — loads clean, **no 22 on the modem path** (DELTA-1 `c2923cb49`) |
| Power (rpmhpd cx/mx/mss → mss.lvl) | 🟢 healthy, proven equivalent to Android |
| QMI / QRTR transport | 🟢 healthy |
| rmtfs / tqftpserv | 🟢 healthy (rmtfs in `-P -s` rw partition mode) |
| pd-mapper | 🟢 fixed live (2026-06-29 late). `CONFIG_QCOM_PD_MAPPER=m` is in the flashed kernel and `qcom_pd_mapper` loads. This restored WLAN PD advertisement and `ath10k_snoc` probe; `wlan0` exists. |
| SIM / UIM provisioning | 🟢 healthy (usim ready, Primary-GW slot1/app1) |
| PDC MCFG autoselect | 🟡 works (configs go Active) — **NOT the gate** (modem parks OFFLINE regardless) |
| SLPI sensor island (`sar.cc:27`) | 🟠 real firmware crash, still unfixed — **but now cleanly bounded and PROVEN independent of the modem 52 wall** (2026-07-01, three live boots: crashed continuously / running / cleanly parked all gave byte-identical `DeviceNotReady`). Ordering + crash-recovery both fixed (see `slpi.md`); the sensor island itself is out of scope for modem bring-up now. |
| **RF arm (`Set Operating Mode=online`)** | **🔴 BLOCKED — offline/mode 0/52. THE frontier; proven kernel- and SLPI-independent.** `dms-ui-ready.py` (DMS 0x0064, the one load-bearing QCRIL pre-online step never replayed) built 2026-07-01, untested on hardware — next pmOS boot is the test. |
| Data / voice (IPA, MM, calls) | gated behind RF arm |
**One-line state:** the modem MSS loads clean, enumerates fully (IMEI/SIM/firmware all read
reliably), and the phone is stable on 7.1.1 with WiFi working. The 52 wall is the modem's
firmware-internal RF-init decision (pmOS parks op-mode 3 OFFLINE vs Android's op-mode 1
LOW_POWER) — now **proven independent of SLPI** with hard repeated evidence, closing out the prior
"make SLPI healthy first" ranked move as a dead end for this specific blocker. The live frontier is
`dms-ui-ready.py`: the one QCRIL pre-online QMI step (disassembly-confirmed load-bearing) that pmOS
has built but never fired on real hardware yet.
**Build/packaging milestone (2026-06-22):** all fixes unified into one **7.1.1** kernel tree as
commits (not scattered patches), built via pmbootstrap; the PDC self-provisioner
(`qcril-autoselect`) moved out of hand-deployed `tools/` glue and **into the
`device-google-blueline` package**, auto-enabled via the systemd preset and ordered
`After=rmtfs` / `Before=ModemManager`. One piece still hand-built: the openimsd **libqmi fork**
(PDC Set Feature) is not yet its own aport — see [build.md](build.md). This is "how the PAF
ought to look": kernel fixes in-tree, provisioner in the device package, nothing scp'd by hand.