Repository navigation
T8142: s2idle without PSCI (cpuidle WFI driver, PMP domain always-on) - #1527
DjDeveloperr merged 2 commits into
Conversation
On T8142 (M5) no cpuidle driver is registered unless the boot chain provides PSCI (t8142-j813-psci-idle.dtsi). Without PSCI, the CPUs use the default idle loop. The s2idle path then never reaches tick_freeze(), so timekeeping keeps running through suspend. Register cpuidle-apple's WFI driver on T8142 when there is no /psci node, as on T8140 and T6050. With PSCI, cpuidle-psci stays in charge. Tested on J815 (MacBook Air 15-inch, M5): s2idle for 160-843 s per cycle, monotonic time stood still across suspend, and the system woke on lid open. Assisted-by: Claude Opus 5.5 Signed-off-by: Nick <nekreshen@yandex.ru>
The PMP firmware keeps running while the system is up. The T8142 ps_pmp domain is not marked always-on, so genpd gates it at s2idle. The PMP coprocessor then takes an SError on its own MMIO and crashes: apple_pmp: RTKit: co-processor has crashed SError ... ESR 0xbe000000 FAR 0x380500654 T8132 and T8140 mark ps_pmp apple,always-on. Do the same on T8142. Tested on J815 (MacBook Air 15-inch, M5) booted with the J813 pmgr description (same T8142 die): s2idle no longer crashes the PMP. Assisted-by: Claude Opus 5.5 Signed-off-by: Nick <nekreshen@yandex.ru>
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
No blocking source findings in the reviewed net change. T8142 WFI-only s2idle fallback is conditional on unavailable PSCI and leaves existing PSCI use intact; retaining PMP avoids a supplier gate during idle. Posted J815 s2idle results support this bounded path. This is not suspend-to-RAM/deep-sleep qualification.
Hosted contributor workflow approvals were unblocked; source approval does not waive any pending CI/native build or dependency gate. Hardware reports are attributed to their authors, not new tests by this thread. No images/default-loader/hardware changes were performed.
|
Tested on a J813 (MacBook Air 13-inch M5, Mac17,3), which the description says was not covered. This PR at ceaab64 carried on 2b05915 together with #1530, #1532 and #1538, 26.6.2 firmware, Stage 2 aura 1.0.0b10.
Not tested: sleeps longer than 67 minutes, the 27.x firmware. Disclosure: the testing and the first draft of this text were done with an LLM coding assistant (Claude Code). I ran the hardware side and have read what is posted here. |
DjDeveloperr
left a comment
There was a problem hiding this comment.
Accepted @gig3m's6828187208 as additional J813/firmware26.6.2 s2idle evidence at its stated2b05915f +1527/1530/1532/1538/local-DT composition scope. The67-minute lid-open wake and two25s/12s keyboard wakes, no reported PMP crash/SError, display/Wi-Fi/session return support the shared T8142 fallback/PMP retention behavior. The reported battery counter implies about0.96W for that one interval; this is not suspend-to-RAM or all-duration/firmware qualification. BLE reconnect required the reported opt-in flags/N1 nodes, did not provide wake and does not establish default Bluetooth support. No new hardware work requested.
The current-head DT job130634645358 actually passed CHECK_DTBS/binding and ADT steps. Source approval5861238513 remains valid. Host's last attempt failed in Pin the host toolchains before tests. I compared its workflow to current main byte-for-byte; recent passing Host131186546593 successfully fetched/installed the same libfdt1/device-tree-compiler dependencies from Ubuntu security/archive endpoints. Based on that concrete environment recovery evidence, one targeted Host-job recovery was accepted, without source changes or a DT/full-run replay. Await its actual test result; no merge on skipped/pending tests and no further unchanged retry loop.
DjDeveloperr
left a comment
There was a problem hiding this comment.
The remaining gate is satisfied: recovered Host43002010214/job131300083186 passed tool setup and the actual host tests on exactheadceaab64d. DT43002010098/job130634645358 passed its CHECK_DTBS/bindings and ADT steps. The previous pre-test package/DNS failures are superseded, not treated as code failures; the single evidence-based recovery required no source or DT replay.
Source approval5861238513 remains valid. The merge preview retains the original two-file T8142-only WFI fallback/PMP-domain change. Main advanced from that preview's44ff52a2 to26a5a6a1 without changes to either file, so no extra rebase/build is needed.
The original J815 result and the accepted J813 owner report6828187208 support the bounded s2idle behavior at their stated composed-kernel/firmware scopes. J813's67min/25s/12s rows do not qualify suspend-to-RAM, longer sleeps or J81327.x. Bluetooth reconnect used opt-in flags/N1 address nodes and did not wake the machine; no default-Bluetooth or general deep-sleep claim. Proceeding with the expected-head normal source merge; no new hardware/loader/default/image action.
3a7a3f9
into
aurora-silicon:integration/aurora
Inherit the updated parent/main with aurora-silicon#1527's always-on PMP in the shared PMGR description. Apply the original J815 sound graph without changing its codec slots, resources or protection configuration. The child audio net patch is exact; both old histories are retained. Keep the J813 owner-check evidence at its stated composition scope and retain the loader-alias qualification/adoption and J815 physical gates. No new audio build, playback, loader installation or hardware test. Assisted-by: LLM
On T8142 without a PSCI node no cpuidle driver registers, so s2idle never reaches
tick_freeze(); and the T8142ps_pmpdomain is not always-on, so genpd gates it at s2idle and the PMP crashes on its own MMIO (SError, "co-processor has crashed")./psci(as on T8140 and T6050); with PSCI, cpuidle-psci stays in charge.ps_pmpapple,always-on, as T8132 and T8140 do.Tested on J815 (booted with the J813 pmgr description, same die): lid-close s2idle cycles of 160–843 s, monotonic time stands still across suspend, wakes on lid open, no PMP crash; display, Wi-Fi and Bluetooth come back. The original report did not cover J813; the owner report below now adds that coverage.
Part of the J815 (MacBook Air 15-inch, M5, T8142) bring-up: board results are summarised in discussion #135. Tested on a J815 with a macOS 27.0 stub (firmware 27.0) through aura Stage 2.
Assisted-by: Claude Opus 5.5
Additional J813 owner report
gig3m's6828187208 reports this ceaab64 feature on2b05915f with #1530/#1532/#1538, J813/Mac17,3, firmware26.6.2 and Aura Stage2 1.0.0b10:
These are attributed combined-source s2idle results, not suspend-to-RAM or an isolated whole published-head boot. J813 sleeps longer than67minutes and J813 firmware27.x were not tested. Existing J815 evidence retains its stated firmware27.0 scope. No new hardware or loader action was performed by this review.
Source approval5861238513 remains valid. Exact-head DT run43002010098/job130634645358 passed CHECK_DTBS/bindings/ADT. The one evidence-based targeted Host recovery now passed as job131300083186 on run43002010214, including tool installation and the actual host tests. The earlier package-DNS failures and skipped tests are superseded. No source edit, full/DT rerun or retry loop was used. The merge preview preserves the same two-file net change; later main changes do not overlap those two files.