Y2Linux + Reborn community beta feature audit
Retired 2026-10-18 (historical record). Its last entry predates the first public beta. Each public beta since has its own row in the roadmap gap audit and its own report in
docs/validation/; the 1.0 readiness review is V1-RELEASE-READINESS. Nothing below is current.
Baseline01 physical gate interrupted / USB diagnosis pending — 2026-10-04
Exact installed Baseline01 Linux 98daf3f / Reborn 9cd12bae, kernel baseline-01 and root v1.24 passes original machine/owner smoke on boot ef2c8f2f…, taint 0. All-four-core C1, 18 hotplug transitions, five OPP/voltage readbacks and natural parking/C2 pass; C2 has 4,857 entries and 85.4572% residency in 60.05534 seconds, zero restore faults. Eight scratch hash rounds each on DATA/SD after C2 pass. The owner restarted after an overlong deliberate USB-off C3 topology wait; C3 has no recorded armed/entered cycle and remains unqualified, not a proven C3 crash. Recovered boot 9d4d0245… logs a DRM WARNING; automatic C3 correctly reports Skipped. Earlier post-flash USB disconnects remain independently open. Host ECM static-IP/autoconnect matching is corrected and saved; the host harness now keeps USB attached during parking and bounds its offline window to 180 s. Thirty affected host tests pass; installed firmware/images are unchanged. The owner prioritizes the separate wired-audio session holding the shared lock; USB diagnosis waits for its completion. No further CPU/transfer/suspend stress. Full Power and RTC wake remain separately NOT_RUN, historical Baseline02 RTC FAIL stays open, and endurance/electrical/distribution gates remain unqualified. See the physical receipt. All 233 feature identities are retained; sealed package metadata remains its seal-time record. No main merge, push, flash or public/physical promotion. Wired-precision correction: the current evidence record withdraws the HARDWARE_PROVEN_UNSUPPORTED conclusion. MON0 defines16-bit monitor fields; an absolute silicon transport ceiling does not follow from that alone. Installed S16 and software24 preservation remain validated; wider hardware feasibility is open. No native24/32 qualification is claimed.
Independent final baseline — 2026-10-04
Current software handoff: Y2LINUX-PLATFORM-V1-BASELINE-01 — READY_FOR_PLATFORM_V1_PHYSICAL_QUALIFICATION. Compiled Linux 98daf3f0220f4a1580bb4893094ee9f0e02362a5 / Reborn 9cd12baeeb70b204e08299bd4c91c8c35604c304; kernel 6.18.0-y2linux-platform-v1-baseline-01, root 2025.02.18-platform-v1.24. Canonical owner candidate: /home/luca/Dokumente/Code/Y2Linux/out/y2linux-platform-v1-baseline-candidate. Fresh 475 production cases / 465 passed / ten dependency skips, all ten independently passed; 324 Reborn tests, fmt/strict Clippy/fresh kernel/ARM/QEMU/package/source/privacy PASS. SOFTWARE_VALIDATED / INTEGRATED_PHYSICAL_NOT_RUN; PUBLIC_DISTRIBUTION_NOT_READY. UART01 CPU hardware is inherited; Baseline02 RTC FAIL remains unresolved. Policy-enabled C3, native S16, battery safeguards, DATA/layout and recovery stay.
See baseline, twelve sessions, independent integration review and one smoke-gated physical campaign. This current section supersedes candidate/build/acceptance wording in the dated master planning and execution record below. Older NOT_CREATED/NOT_BUILT/accepted-none and in-progress text describes its observation time, never the current baseline. No main merge, push, flash or physical/public milestone promotion occurred.
Historical feature/planning snapshots (retained)
Sealed integration current state — 2026-10-04
READY_FOR_PLATFORM_V1_PHYSICAL_QUALIFICATION. Compiled Linux 4c72466f2f27ddf9f0ca18ba8ddc4d89c52599d2 / Reborn dd73dcc3243045cd33e319dda2f76918ed37ea31. One candidate /home/luca/Dokumente/Code/worktrees/platform-v1-integration/Y2Linux/out/y2linux-platform-v1-integration-candidate. All233feature IDs and50patches retain separate implementation/software/physical/release/hardware/distribution axes in the JSON; old census and source-bound receipts remain history.466production cases/456PASS/10exact native-covered dependency skips,324Reborn/fmt/Clippy, fresh kernel/ARM/QEMU/384ELFs/1411edges/106packages/449source-license records/package/privacy PASS. Integrated physical/endurance NOT_RUN, public distribution blocked. Later documentation commits are separate from the compiled pair. The master and boundary audit control current acceptance; the dated sections below remain retained progress/history.
Platform 1.0 composition — 2026-10-04
All eleven source handoffs are composed on isolated paired master branches. State: INTEGRATION_IN_PROGRESS. One fresh integrated candidate is being prepared; integrated hardware and endurance are NOT_RUN. UART01 CPU and Baseline02/temporary-binary receipts remain source/image-bound. The later Baseline02 full RTC wake trial failed and does not qualify the new suspend fix.
The 233-feature JSON adds six current axes for every feature: implementation, software, physical, release, hardware condition and distribution condition. Its historical feature/patch/receipt/census records remain intact. The current patch ledger contains 50 exact manifest overlays; dated tables/counts below preserve their original cutoff. The master and physical plan control current gates.
F134 is split explicitly: implemented MTP needs integrated desktop acceptance; mass storage and RNDIS remain absent. Linux owns the filesystem throughout MTP; no block export is introduced. Verified durable quiet generations trigger one post-transfer library refresh and are deferred across sleep preparation.
Retained Baseline02 summary — 2026-10-03
The newest sealed candidate is Y2LINUX-BASELINE-02. UART01 proves C1, C2 and C3 physically working; Baseline02 adds automatic qualified CPU0 C3 startup while preserving entry/fault guards. Baseline02 new-image/cold-boot hardware remains PHYSICAL_NOT_RUN. Full system suspend, endurance, electrical battery savings, native wider/high-rate audio and distribution decisions remain independent.
The 233-feature inventory and JSON below separate compiled source, enabled policy, exact-image physical evidence and release permission. Sections with dated snapshots are history; they do not override this baseline. This is a documentation-only synchronization of retained receipts.
2. EXACT SOURCE / RUNTIME BASELINE
Updated 2026-10-03 from retained seal and hardware receipts. This synchronization does not rerun the historical whole-source census, build or physical tests.
| Baseline | Exact identity | Evidence |
|---|---|---|
| Newest sealed candidate | Y2LINUX-BASELINE-02, out/y2linux-baseline-02-candidate/ | Fresh software/package PASS; PHYSICAL_NOT_RUN |
| Compiled Linux / Reborn | 8584ccd85f052f351fe51650b2348c83ca894ed4 / b71b468860233faa0a42b8448ec5777fa952b8e3 | Exact manifest pair; later documentation HEADs are separate |
| Kernel / root / release | 6.18.0-y2linux-baseline-02 / 2025.02.18-platform-v1.21 / 1.0.0-baseline-candidate.2 | API 1, feature contract 2, layout/data 1 |
| Baseline02 BOOTIMG | 5d8a2999368a04b23b898d2106b465eb6b028c2314da1a39c66c6b26dc8c41a3 | Sealed SHA256 |
| Baseline02 Y2ROOT | 3148bea2b6d78be34afcbb9cd933502f14416e81c8053324ff6c9ea151ee3892 | Sealed SHA256 |
| Latest verified installed / paired fallback | UART01, Linux e9e8d63f9c94232c2b6627881e0967583e202dac, Reborn b71b468860233faa0a42b8448ec5777fa952b8e3 | C1/C2/C3 working on same boot; taint 0 |
| Latest verified boot | fd955840-35d9-47db-83e0-ff47d6bb2d2b | 3,647 C3 entries/resumes/successes; restore failures 0 |
| New policy | Automatic qualified CPU0 C3 after static foundations and readback | Kernel starts quarantined; dynamic entry guards unchanged; cold boot NOT_RUN |
Baseline02 receipt, UART01 physical report and candidate index carry exact identities and limits. Only BOOTIMG and ANDROID/Y2ROOT are payloads; preserve Y2DATA and protected partitions. Only owner installation followed by exact-image qualification closes the remaining Baseline02 hardware boundary.
Evidence and maturity rules
The 233-feature target and product/distribution axes remain unchanged. Feature rows now include newer UART01 receipts where relevant; earlier snapshots are retained in the JSON historical fields. PHYSICALLY_QUALIFIED denotes the cited bounded exact-image behavior, not current Baseline02 acceptance. Every current_candidate_physically_qualified flag is false for the uninstalled Baseline02. No ENDURANCE_QUALIFIED result or electrical battery gain is invented. C3 hardware support and bounded reset/restore are proven; new automatic cold boot, wider wake sources and full system suspend have separate gates.
The 2026-10-02 lexical file/marker/gate censuses and repository histories are dated snapshots, not a fresh scan of Baseline02. The current patch ledger follows all 49 active overlays. Source implementation and physical evidence are independent of release permission and the A–G completion groups. C3 leaves implementation group A; it retains affected exact-image acceptance in B and its original hardware-conditional product classification in C.
3. COMPLETE FEATURE MATRIX
All233 feature IDs, source paths, tests, physical evidence, failure modes and safe fallbacks are preserved. Fallbacks describe containment; they do not waive product requirements. Default/actual use is present behavior, not planned enablement. Consult the targeted closure ledgers below for exact hardware questions and proof.
| ID | Subsystem | Feature | User-visible? | Owner | Implementation state | Default / actual use | Evidence tier | Physical evidence | Automated tests | Diagnostics | Current limitation | Failure mode | Safe fallback | Product target | Release required / hardware conditional | Public distribution | Completion groups | Next action | Source paths | Evidence/docs |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F001 | Boot | Stock Boot ROM / preloader / LK | Yes | External component | IMPLEMENTED_ENABLED | Stock retained; Retained stock stages execute on every reported boot; no project replacement | PHYSICALLY_OBSERVED | Repeated owner boots through unchanged loaders | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | No community hardware-revision matrix | Bad BOOTIMG prevents Linux rescue | Independent stock loader/SPFT recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve; never bundle loader/table changes | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F002 | Boot | BOOTIMG kernel + appended DT + rescue modules | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Candidate 2 booted; candidate3 sealed; narrow SD physical observation reported | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | Source identity is ahead of installed pair | Wrong image or kernel/module pairing fails boot | Matching preserved BOOTIMG/Y2ROOT pair | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Seal exact RC manifest and validate size/layout | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F003 | Boot | Internal Y2ROOT / Y2DATA switch_root without SD | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Multiple physical baselines boot internal ext4 with SD absent | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | Acceptance limited to known geometry/schema | Identity or fsck failure stays in rescue | Allowlisted reflash; never autoformat | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain resolver and run no-SD smoke | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F004 | Boot | Preserving scatter / protected partition exclusions | Yes | Kernel | IMPLEMENTED_ENABLED | Yes for update package; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Historical owner installs; candidate 2 manifest selects BOOTIMG/ANDROID | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | SPFT permits manual operator overrides | Wrong profile can erase data | Only validated preserving profile; known fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Freeze exclusions and require manifest check | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F005 | Boot | Rescue for broken Y2ROOT / Y2DATA | Yes | Kernel | IMPLEMENTED_ENABLED | Automatic on preflight failure; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Historical rescue observations; current fault cases not all exercised | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | No ordinary SSH in RAM rescue; UART/console shell and ACM log | White/stalled screen can be mistaken for brick | External SPFT with matched image | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Rehearse one understandable recovery path | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F006 | Boot | Bad BOOTIMG recovery | Yes | Kernel | PARTIALLY_IMPLEMENTED | External manual process; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Owner recovery history exists; second owner not rehearsed | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | RAM rescue is inside failed BOOTIMG | Device appears dead; no USB Linux service | Stock loaders + verified SPFT/DA and preserved images | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B,D | Publish current recovery package/instructions and rehearse | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F007 | Boot | First-time community installation / Y2DATA provisioning | Yes | Kernel | IMPLEMENTED_ENABLED | Not in latest preserving package; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No fresh-community install receipt | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | Empty first-owner seed generator implemented; physical first install and firmware/public-distribution permission remain pending. | New owner boots to missing Y2DATA or has no authorized SSH key | Owner-specific first-install profile separate from preserving updates | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B,D | Run first_owner.py with tester public key and validated system package; owner alone initializes data. | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F008 | Boot | Service startup ordering / app supervision | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Installed Reborn and platform daemons repeatedly observed | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | Five short failures exhaust Reborn restart budget | No UI after persistent crash | Logs and USB maintenance; fallback root | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Smoke startup/failure presentation on RC | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F009 | Boot | Early console / splash ownership | Yes | Kernel | IMPLEMENTED_ENABLED | Yes after charging gate; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Older splash visible at 0.828 s; v2 not visually qualified | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | Stock LK handoff unaffected; console intentionally hidden during splash | Blank/white/error frame obscures diagnosis | ACM/retained logs; rescue text | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Measure one RC boot and verify failure message | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F010 | Boot | Startup / first frame timing instrumentation | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Old boot first frame 52.060 s; later SSH ~14.5 s, not frame timing | tests/test_production_storage.py tests/test_bootimg.py tests/test_production_handover.py | Platform status/health and Boot source-specific counters/logs; see subsystem section | No current Product v2 measured first-frame number | Long splash looks hung | Recorded startup.phase and splash events | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Measure current RC milestones before claiming speed | initramfs/production/init initramfs/production/storage.sh kernel/dts/innioasis-y2.dts tools/production/layout.py | docs/architecture/production-install.md docs/architecture/production-recovery.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F011 | Kernel | Linux 6.18 ARMv7 hard-float base | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Repeated Linux 6.18 boots; native ARM userspace | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | Custom MT6582 port; upstream security update policy needed | Kernel fault hangs device | Known paired fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Freeze architecture; review security deltas only | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F012 | Kernel | Four-core SMP / interrupts / GIC / hotplug foundation | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 per-core IRQs and nine re-onlines plus 4→1→4 pass | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | No cross-revision qualification | Secondary core fails online | CPU-safe boot / lower topology under supported policy | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Regression smoke only | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F013 | Kernel | Memory map / D08 reservations / allocation | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | 952288 KiB MemTotal on Physical01; unchanged loader/radio reservations | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | No swap/CMA; scanout needs contiguous allocation | OOM or graphics allocation failure under pressure | Bounded caches and restart; preserve carveouts | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Do not change memory layout for beta | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F014 | Kernel | DMA / cache coherency contracts | No | Kernel | IMPLEMENTED_ENABLED | Per driver; no generic DMA engine; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Audio/MMC working; USB separate failure | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | A working DMA engine does not qualify another controller | Corrupt/stalled transfer | USB PIO; checked storage ladder | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep subsystem integrity gates separate | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F015 | Kernel | PWRAP / PMIC regulators / pinctrl / I2C / clocks | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 DVFS ready 0x7f; candidate 2 SD rail writes succeed | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | Candidate 3 pad/tuning diagnostics untested | Power/clock refusal or failed peripheral | Fail-closed writes and prior safe modes | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain allowlists; inspect RC rail/fault counters | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F016 | Kernel | Runtime PM across owned devices | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | MMC gating 16 hash rounds; GPU idle; AFE idle observed | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | Full suspend restoration does not follow from runtime PM | Peripheral context lost on resume | Normal awake mode / paired reboot | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Bounded RC start-stop and screen-off regression | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F017 | Kernel | Debug facilities and watchdog availability | No | Kernel | IMPLEMENTED_ENABLED | debugfs/PM_DEBUG/1 MiB klog; watchdog policy off; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 SRAM/backstop captured stalled resume | tests/test_dev_foundation.py tests/test_dev_abi.py tests/test_overlays.py | Platform status/health and Kernel source-specific counters/logs; see subsystem section | No crash dump/kexec; no general automatic watchdog recovery | Hard hang needs physical recovery | Power/reboot then preserved boot evidence | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep owner debug surfaces hidden; no watchdog project | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F018 | Kernel | Speaker / AW87559 / FM radio path | No | Kernel | NOT_IMPLEMENTED | No; No | UNTESTED | Historical stock AW87559 binding only; no current native speaker/FM pipeline | None | Not applicable; no implemented capability | Stock component presence is not a Linux feature | No speaker or FM function | Headphone jack / Bluetooth | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Explicitly out of beta scope | kernel/config/production.config kernel/dts/innioasis-y2.dts kernel/dts/innioasis-y2-production.dts kernel/platform/Makefile | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/knowledge/development-memory.md |
| F019 | CPU | 598 MHz / 747.5 MHz / 1040 MHz stock OPPs | No | Kernel | IMPLEMENTED_ENABLED | Yes, schedutil; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 clock and 1.15 V readback/integrity pass; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | Board-specific stock-bin evidence | DVFS fault or thermal cap limits performance | Guarded lower OPP / y2.dvfs=off | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F020 | CPU | 1196 MHz / 1.20 V | No | Kernel | IMPLEMENTED_ENABLED | Conditional silicon/PWRAP admission; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 30-step sequence; 18604 integrity iterations, peak 71.5 C; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | Bounded electrical observation, no endurance envelope | Heat or voltage fault under sustained load | Existing frequency QoS cap / lower stock OPP | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F021 | CPU | 1300 MHz / 1.25 V | No | Kernel | IMPLEMENTED_ENABLED | Conditional silicon/PWRAP admission; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 2-worker 5247 iterations pass; 4 workers hit 75 C guard in 16.8 s; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | No natural 110/120 C trip test; not sustained thermal qualification | Hot device under combined workloads | Existing bounded max policy if RC heat demands it | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F022 | CPU | Silicon bin / voltage owner / feedback containment | No | Kernel | IMPLEMENTED_ENABLED | Yes; unknown bin gates high OPPs; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Bin0, selectors 0x48/0x50/0x58 and sampled ordering pass; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | Sampled ordering is not oscilloscope trace | Bad readback clamps or faults DVFS | Fail-closed admission / divided fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F023 | CPU | Scheduler / schedutil / workload QoS / interaction boost | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 eight classes, producer leases, thermal override; input lease ~22 ms; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | Artwork and heavy workloads differ; hint is not direct MHz control | Stale hint raises consumption | Bounded expiry; file close releases lease | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F024 | CPU | Thermal sensors / cooling authority | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | CPU/PMIC sensors and injected cooling cap pass; UART01 bounded regression before/after C3 passes all five OPP readbacks: 598/747.5/1040 MHz at 1.15 V, 1196 at 1.20 V, 1300 at 1.25 V; source guards unchanged in Baseline02. | tests/test_cpu_dvfs.py tests/test_workload_qos.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and CPU source-specific counters/logs; see subsystem section | CPU 110/120 C BSP trips; PMIC 150 C; no measured pack temp | Sustained heat may exceed comfort before trip | Stop workload / existing cap; poweroff | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward qualified DVFS/thermal-authority behavior; run affected Baseline02 regression. Natural thermal trips, mixed charging load and endurance remain separate. | kernel/platform/cpu-dvfs.c kernel/platform/cpu-dvfs-policy.h kernel/platform/workload.c kernel/dts/innioasis-y2.dts | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F025 | Idle | GPT6 / CNTFRQ 13 MHz / architectural timer / PPI29 | No | Kernel | IMPLEMENTED_ENABLED | Yes after independent preflight; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01: GPT6 free-running basis, architectural timers/CNTFRQ 13 MHz and PPI29 all four cores pass before and after actual C3; same boot and timer continuity. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | Baseline02 new-image/cold-boot regression pending; no rewrite of qualified timer architecture. | Preflight rejects to coarse timer | Legacy GPT/dummy fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve architecture; run included exact-image timer regression after owner installation. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F026 | Idle | GPT4 sole broadcast / highres / NO_HZ | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01: GPT4 sole broadcast, highres/NO_HZ all cores, 21 guarded actual C3 wakes; future GPT4 deadlines 3.471384–18.392615 ms. The 2 ms / 26000 tick guard remains. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | 20 requested 1 ms probes produced no C3 entry; receipt does not isolate governor versus individual guard. Wider deadline/endurance coverage and Baseline02 cold boot remain. | Tickless not admitted; more wakeups | Legacy periodic clockevents | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward broadcast/deadline architecture; run guarded Baseline02 timer checks. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F027 | Idle | C1 WFI | No | Kernel | IMPLEMENTED_ENABLED | Yes; Yes: installed candidate02 four-core WFI repeatedly observed on2026-10-03. | PHYSICALLY_QUALIFIED | UART01: four enabled WFI states; entry deltas 1573/521/1343/271, residency deltas 11919284/12104878/12348263/12302521 us; rejections 0; 400 requested 1 ms wakes. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py tests/test_cpu_idle_completion.py tests/test_cpu_idle_harness.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | No electrical battery-duration claim; Baseline02 exact-image regression pending. | Higher awake drain if idle blocked | Normal scheduler idle | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Freeze C1 implementation; run included foundation smoke after owner installation. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-CPU-IDLE-COMPLETION-PHYSICAL.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F028 | Idle | C2 SLIDLE bus-clock idle | No | Kernel | IMPLEMENTED_ENABLED | Yes when prerequisites clear; Candidate02 natural CPU0-only screen-off/radios-off idle on2026-10-03. | PHYSICALLY_QUALIFIED | UART01: +6971 SLIDLE entries / 50654676 us in 60.054880715 s = 84.3473% residency; clock restore failures 0, both media integrity clean. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py tests/test_cpu_idle_completion.py tests/test_cpu_idle_harness.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | SD-absent variant and wider endurance not exercised in this bounded UART01 run; Baseline02 regression pending. | More consumption or clock restore fault | WFI; y2.cpuidle=off disables board idle states. y2.deep_idle=off only removes C3, not C2 | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve C2 lifecycle/guards; run affected idle/clock/storage checks after owner installation. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-CPU-IDLE-COMPLETION-PHYSICAL.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F029 | Idle | Automatic core parking / display restore | No | Kernel | IMPLEMENTED_ENABLED | Yes; Candidate02 natural parking and screen/playback demand restore observed. | PHYSICALLY_QUALIFIED | UART01: natural screen-off parking reaches CPU0, owner mask 0xe and both physical secondary power copies 0; 18 supported hotplug transitions; order 3→2→1 off / 1→2→3 on, screen/playback demand restore. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py tests/test_cpu_idle_completion.py tests/test_cpu_idle_harness.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | Background activity legitimately resets eligibility; no forced perfect-zero or arbitrary power writes. Baseline02 regression pending. | Delayed parking after wakes or delayed interaction | Restore all cores on demand | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve coordinator hysteresis/ownership/order; check natural parking and demand restore on Baseline02. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-CPU-IDLE-COMPLETION-PHYSICAL.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F030 | Idle | C3 DORMANT / CIRQ / runtime deadline handoff | No | Kernel | IMPLEMENTED_ENABLED | Baseline02 S05y2-cpu-idle automatically enables qualified CPU0 C3 after static foundations/readback; kernel starts disabled/budget 0; CPU1–3 C3 stays off.; UART01 real runtime entries observed; Baseline02 automatic cold boot PHYSICAL_NOT_RUN. | PHYSICALLY_QUALIFIED | UART01: 21 guarded budget-1-entry reset-and-return trials with SRAM/RGU proof; then +3624 normal-policy entries / 39204662 us in 60.088343522 s = 65.2450%. Final 3647 entries=resumes=successes=UART ACKs=CIRQ clone/flushes=timer context save/restores, all restore failures 0; same boot fd955840-35d9-47db-83e0-ff47d6bb2d2b, taint 0. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py tests/test_cpu_idle_completion.py tests/test_cpu_idle_harness.py tests/test_cpu_c3_uart.py tests/test_cpu_idle_boot_policy.py | status cpu idle_completion.C3: individual prerequisites, boot_policy receipt, entry budget, UART request/ACK/timeout/power operands, physical topology, GPT4 deadline, PCM/CIRQ/context stages and restore failures. | Baseline02 exact-image/automatic cold boot PHYSICAL_NOT_RUN. Injected CIRQ pending-edge replay, wider endurance, electrical battery benefit and full system suspend remain separate. | Context loss or missed deadline | Automatic write/readback/receipt failure rolls back to budget 0 and disabled C3; entry/context/restore failures close admission; y2-platform cpu-idle-policy stop, y2.deep_idle=off or y2.cpu_safe=1 preserve C2/WFI. | CONDITIONAL_ON_HARDWARE | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,B | Owner-preserving Baseline02 installation; included harness proves automatic startup, quarantines for foundations, then one bounded C3 trial plus 20 checked cycles and runtime/wake/I/O regression. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c kernel/platform/spm.c kernel/platform/spm-idle-policy.h kernel/platform/spm-idle-pcm.h kernel/platform/resume-vector.S kernel/patches/0061-mt6582-uart-pio-sleep.patch tools/platform/y2_platform/cpu_idle.py buildroot/board/y2/production-overlay/etc/init.d/S05y2-cpu-idle | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-CPU-IDLE-COMPLETION-PHYSICAL.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F031 | Idle | Screen-off efficient runtime idle | No | Kernel | IMPLEMENTED_ENABLED | Yes; not system sleep; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01 settled normal policy: CPU0 only; C3 65.2450%, C2 9.572727 s and C1 3.865243 s in 60.088343522 s; utilization 10.28%, IRQ 163.36/s, context switches 332.04/s, die about 37.5 C. | tests/test_cpu_final.py tests/test_slow_idle.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Idle source-specific counters/logs; see subsystem section | Runtime indicators establish useful deeper idle, not battery-current/lifetime or full-system-sleep qualification. | Battery still drains while screen dark | User Power Off; optional radio off | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward useful runtime idle; verify Baseline02 policy, measure electrical benefit separately. | kernel/platform/idle.c kernel/platform/local-timer.c kernel/platform/system-idle.c kernel/platform/cirq.c kernel/platform/clocks.c | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F032 | Suspend | Freezer / devices / platform / processors / core pm_test stages | No | Kernel | IMPLEMENTED_EXPERIMENTAL | Owner qualification only; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 all five stages same-boot pass on battery | tests/test_suspend_policy.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Suspend source-specific counters/logs; see subsystem section | Staged success is not full sleep success | PM path or radio restore can fail | Keep normal screen-off awake | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Retain staged PM passes and repeat affected stages before same-boot full-suspend qualification. | kernel/platform/spm.c kernel/platform/resume-vector.S kernel/platform/pm-journal.c kernel/patches/0060-y2-persistent-suspend-stages.patch buildroot/board/y2/production-overlay/usr/sbin/y2-suspend | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03-PHYSICAL-QUALIFICATION.md |
| F033 | Suspend | Full deep suspend / RTC wake completion | No | Kernel | IMPLEMENTED_EXPERIMENTAL | Off for ordinary operation; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 RTC SPM return/vector proven, then backstop reset before PM exit | tests/test_suspend_policy.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Suspend source-specific counters/logs; see subsystem section | No same-boot full resume; Fix03 instruments remaining window only | Loss of UI/USB until reboot | Disable automatic suspend; use runtime idle | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Use Fix03 breadcrumbs to localize post-device-resume stall, complete same-boot deep sleep and RTC wake; delay feature-complete beta if unresolved. | kernel/platform/spm.c kernel/platform/resume-vector.S kernel/platform/pm-journal.c kernel/patches/0060-y2-persistent-suspend-stages.patch buildroot/board/y2/production-overlay/usr/sbin/y2-suspend | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03-PHYSICAL-QUALIFICATION.md |
| F034 | Suspend | Power wake and full post-resume radio/display/audio/Reborn restoration | No | Kernel | PARTIALLY_IMPLEMENTED | Normal deep sleep off; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Power wake/cycles NOT_TESTED after failed RTC completion | tests/test_suspend_policy.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Suspend source-specific counters/logs; see subsystem section | Typed sleep states and same-boot/kernel EXIT/Reborn verification implemented; ordinary product sleep still safely refused pending actual full-resume repair. | Silent player or black screen after resume | Keep deep sleep unavailable | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Owner run existing Fix03 breadcrumbs through integrated harness to identify stalled call and prove RTC/Power restoration. | kernel/platform/spm.c kernel/platform/resume-vector.S kernel/platform/pm-journal.c kernel/patches/0060-y2-persistent-suspend-stages.patch buildroot/board/y2/production-overlay/usr/sbin/y2-suspend | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03-PHYSICAL-QUALIFICATION.md docs/release/implementation-platform.md |
| F035 | Suspend | Retained SRAM journal / PM breadcrumbs / warm-reset backstop | No | Kernel | IMPLEMENTED_ENABLED | Journal yes; backstop owner-armed; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 awake self-test, warm reset and failed-RTC retention pass | tests/test_suspend_policy.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Suspend source-specific counters/logs; see subsystem section | Cold invalid SRAM ring/stamp reporting corrected; current4 read-only journal absent, so no new suspend localization. | Lost final crash boundary | Persistent boot logs plus manual recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run awake retained-journal proof and guarded same-boot suspend in integrated owner qualification. | kernel/platform/spm.c kernel/platform/resume-vector.S kernel/platform/pm-journal.c kernel/patches/0060-y2-persistent-suspend-stages.patch buildroot/board/y2/production-overlay/usr/sbin/y2-suspend | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03-PHYSICAL-QUALIFICATION.md docs/release/implementation-platform.md |
| F036 | Suspend | Charger-active suspend refusal / PM unwind | No | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 charging -EBUSY with clean unwind/taint0 | tests/test_suspend_policy.py tests/test_cpu_fix02.py tests/test_cpu_fix03.py | Platform status/health and Suspend source-specific counters/logs; see subsystem section | No permission to bypass charging guard | Attempted sleep refuses | Remain awake | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep guard unchanged | kernel/platform/spm.c kernel/platform/resume-vector.S kernel/platform/pm-journal.c kernel/patches/0060-y2-persistent-suspend-stages.patch buildroot/board/y2/production-overlay/usr/sbin/y2-suspend | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03-PHYSICAL-QUALIFICATION.md |
| F037 | Storage | eMMC 8-bit HS52 / 50 MHz safe product profile | Yes | Kernel | IMPLEMENTED_ENABLED | Supported; current default ceiling HS200; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 8 eMMC hash rounds and clock-gating pass; ceiling report records former 50 MHz | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Newest tuning changes need lower-mode regression too | Root/data corruption if transport regresses | y2.emmc_mode=HS52; then y2.mmc_safe=1 | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep HS52 as reliable baseline/fallback; select fastest robust eMMC mode from HS200/DDR52/HS52 evidence, not an arbitrary cap. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F038 | Storage | eMMC HS200 200 MHz / CMD21 | Yes | Kernel | IMPLEMENTED_ENABLED | Yes current production DT ceiling; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Candidate 1 ~133 MB/s; candidate 2 ~140 MB/s 128 MiB read, no faults | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | No equivalent sustained writes or endurance; card-specific | Root/data I/O faults at ceiling | HS52 beta ceiling; existing DDR52 ladder | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify HS200 read/write/fsync, runtime PM, suspend/resume and repeated boot; retain as production ceiling if robust. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F039 | Storage | eMMC DDR52 50 MHz DDR / fallback ladder | Yes | Kernel | IMPLEMENTED_ENABLED | Negotiated fallback only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No independent DDR52 sustained receipt located | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Intermediate rung unqualified | Reinit fails while root/data active | HS52/25/13 MHz | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify DDR52 intermediate ceiling/fallback; choose by integrity and throughput evidence, not theoretical naming. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F040 | Storage | eMMC DMA / runtime PM / retention | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 16 combined MMC hash rounds; retained state matches and CCF gates; UART01 eMMC and inserted SD each pass eight fsynced checksum rounds after C2 and after C3; CRC/timeouts/ext4 errors 0. | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Higher timing retention differs from baseline Bounded idle/wake integrity does not qualify injected storage-fault recovery, every high-speed mode or endurance. | I/O after clock gating fails | Existing conservative mode + paired recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward idle/clock/media integrity; run affected Baseline02 storage regression. Keep negotiated-mode/fallback/endurance decisions separate. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F041 | Storage | SD detect / hotplug / CID/diskseq identity | Yes | Kernel | IMPLEMENTED_ENABLED | Yes via readiness/media policy; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Fix02 kernfs-reclaim remount observed; Fix03 dev_t/diskseq/CID correction present | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Replacement/reclaim fix not physically qualified on latest build | Spurious unmount interrupts music or scan | Stop/eject/reinsert; preserve database rows | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test two cards, empty slot, reclaim and replacement once on RC | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F042 | Storage | SD 1-bit / 4-bit / HS 50 MHz 3.3 V | Yes | Kernel | IMPLEMENTED_ENABLED | 4-bit; HS selectable, current ceiling SDR104; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Width integrity Physical01; 50 MHz/gating Fix02 checks pass | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Few cards; FAT/exFAT physical matrix incomplete | Read errors or removal interrupts playback | y2.sd_mode=HS; y2.mmc_safe=1 | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain HS3.3V fallback/card compatibility; higher robust UHS remains release scope. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F043 | Storage | SD 1.8 V switching / UHS regulators / drive strength | Yes | Kernel | IMPLEMENTED_ENABLED | Yes for UHS card; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Candidate 2 switches/mounts; candidate1 rejected rails | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Card/board margin unqualified | Voltage switch or tuning failure | Skip UHS to 3.3 V HS | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify rail switching and pad readback across voltage changes/reboots; preserve containment and data. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F044 | Storage | SD DDR50 / 50 MHz DDR | Yes | Kernel | IMPLEMENTED_ENABLED | Fallback after SDR104; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Candidate 2 ~40 MB/s short read after 2 CRCs | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Short stability only; no write/endurance qualification | Later CRC/timeout despite successful benchmark | HS 50 MHz 3.3 V | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Compare sustained DDR50 integrity, throughput and recovery with SDR50/SDR104; use highest robust card-specific mode. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F045 | Storage | SD SDR50 / 100 MHz | Yes | Kernel | IMPLEMENTED_ENABLED | Fallback rung after DDR50; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Oct2 candidate3 draft reports SDR50 clean ~42MB/s; explicit2GiB zero-fault run used SDR104 timing capped100MHz. No write/endurance acceptance | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Core preference puts DDR50 first | Unknown read/write margin | HS 50 MHz | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify100MHz read/write/endurance and resume; reported2GiB read alone is not production qualification. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F046 | Storage | SD SDR104 / 200 MHz | Yes | Kernel | IMPLEMENTED_EXPERIMENTAL | Yes current candidate ceiling; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Candidate2 short128MiB ~77MB/s then2CRC/1GiB andDDR50; candidate3 draft reports200MHz CRC across phase/drive sweeps,100MHz2GiB clean ~42MB/s | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Known unstable on tested SD128/card-board combination | Transport errors; possible data risk if fallback fails | Explicit HS beta ceiling | FEATURE_COMPLETE_TARGET | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Finish correct pad/card-driver/tuning evaluation; qualify SDR104 if viable or document evidence-based board/card ceiling. Failure under old settings is not hardware impossibility. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F047 | Storage | Candidate 3 32-tap dual-edge tuning / y2_storage_diag / y2_tune_diag | Yes | Kernel | IMPLEMENTED_EXPERIMENTAL | Yes in sealed candidate3; Reported candidate3 SSH characterization; not a normal tester workflow | PHYSICALLY_OBSERVED | Concurrent Oct2 candidate3 draft reports diagnostics/lab used in SD sweeps; CRC failures at200MHz, 2GiB clean at100MHz; not endurance-qualified | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Fixes 64-step field overflow/all-pass signature; result still unknown | Mis-selected eye or margin instability | HS mode; preserved candidate2 fallback not high-speed approval | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Use candidate3 diagnostics to close release ceiling decisions; preserve maps/fault attribution and read-only diagnostics. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F048 | Storage | Candidate 3 y2_lab tuning/drive mutation | Yes | Kernel | IMPLEMENTED_DISABLED | No; Y2_MSDC_LAB=0; No production mutation endpoint | PHYSICALLY_OBSERVED | Concurrent Oct2 candidate3 draft reports diagnostics/lab used in SD sweeps; CRC failures at200MHz, 2GiB clean at100MHz; not endurance-qualified | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Storage lab mutation compiled out by default and clock limit read-only; explicit internal diagnostic build can retain lab controls. | Owner can destabilize live media | Compile with Y2_MSDC_LAB=0 for public profile | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Keep lab controls absent from integration/public builds; use passive tuning/fallback telemetry. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md docs/release/implementation-platform.md |
| F049 | Storage | Storage CRC / timeout / readback fallback | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Candidate2 SDR104 fault and automatic DDR50 fallback observed; UART01 eMMC and inserted SD each pass eight fsynced checksum rounds after C2 and after C3; CRC/timeouts/ext4 errors 0. | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Runtime retune failure now reconciles actual lower bus timing and rejects payloads before DMA while recovery runs; widest-eye and exact latch-clock restore fixed. Bounded idle/wake integrity does not qualify injected storage-fault recovery, every high-speed mode or endurance. | Reset/reinit loses card or I/O | Cap before faults; lower rungs; fail clearly | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward idle/clock/media integrity; run affected Baseline02 storage regression. Keep negotiated-mode/fallback/endurance decisions separate. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md docs/release/implementation-platform.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F050 | Storage | SD HS400 / eMMC HS400 | Yes | Kernel | NOT_IMPLEMENTED | No; No | UNTESTED | No MT6582 data-strobe/eMMC50 block path | None | Not applicable; no implemented capability | eMMC card capability alone insufficient; SD has no HS400 mode | Unsupported negotiation | Existing SDR modes | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Do not pursue SD HS400: not an SD bus mode. eMMC HS400 lacks a supported MT6582 path; no speculative implementation; revisit only with exact controller evidence. | kernel/patches/0009-y2-msdc-readonly.patch kernel/platform/storage-modes.h kernel/platform/storage-tuning.h kernel/platform/storage-policy.h kernel/dts/innioasis-y2-production.dts | docs/validation/Y2-STORAGE-CEILING.md docs/planning/HANDOFF-2026-10-02.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F051 | Filesystem | Writable ext4 root / Y2DATA isolation | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Repeated root/data rw, error counters0 and preserved updates | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | Root mutable; no A/B; not power-loss qualified | Unclean root/data may enter rescue | e2fsck -p on validated unmounted devices; external recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain split and verify next boot after shutdown | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F052 | Filesystem | SD FAT/FAT32 read/write and fsck gate | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes when unique supported clean filesystem; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Older dirty FAT card refused/isolated; not proof of current damage | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | Original zero-UUID/dirty media not repaired; clean-card test needed | Mount refused or surprise removal damages card | Read-only fsck status; explicit safe eject | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test clean FAT card; do not format tester media automatically | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F053 | Filesystem | SD exFAT | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes kernel + exfatprogs; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No explicit current physical exFAT acceptance located | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | Code/config support exceeds physical evidence | Mount/check failure on common SDXC media | Known clean FAT/ext4 or offline copy | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Add one representative exFAT card check before claiming support | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F054 | Filesystem | SD ext4 | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Replacement SD ext4 integrity and Fix02 hashes pass | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | No guarantee against hot removal mid-write | Dirty filesystem after removal | Unmount before removal; read-only check on insert | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain; RC smoke only | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F055 | Filesystem | NTFS / multiple ambiguous SD filesystems | Yes | Y2Linux userspace | NOT_IMPLEMENTED | No NTFS; ambiguous cards refused; No | UNTESTED | No claimed runtime support | None | Not applicable; no implemented capability | Not every arbitrary partition layout admitted | Card not mounted | One supported clean filesystem | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Document accepted layout; no new filesystem work | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F056 | Filesystem | Boot fsck / no-autoformat / dirty-shutdown behavior | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Normal boot fsck succeeds; host failure paths tested | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | No complete physical abrupt-loss matrix | Rescue lockout if repairs unsafe | Preserve contents; explicit recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Validate safe reboot and refused-corrupt fixture offline | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F057 | Filesystem | Free-space/inode reserve / atomic verified transfer | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | 96 MiB +128 inodes where enforced; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host/installed ARM SFTP reserve and interrupted stages tested | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | Ordinary root admin can bypass; verified upload needs temporary double space | ENOSPC interrupts music/settings write | Admission refusal; user removes selected files | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep reserve and no-auto-delete policy | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F058 | Filesystem | Root/data/SD integrity at selected RC storage modes | Yes | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Current defaults use ceiling modes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Safe older hash passes; current SDR104 CRC failure; no latest sustained write pass | tests/test_production_storage.py tests/test_platform_storage_tools.py tests/test_platform_transfer.py | Platform status/health and Filesystem source-specific counters/logs; see subsystem section | Cannot infer safe media writes from 128 MiB read benchmark | Loss of library/settings/music or unusable root | Use verified HS52/HS fallback on an unstable device/card while fixing or determining the actual robust ceiling; not automatic public profile | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Prove root/data/SD integrity at fastest selected robust modes and lower fallbacks; zero corruption is mandatory. | initramfs/production/storage.sh initramfs/production/init tools/platform/y2_platform/media.py tools/platform/y2_platform/space.py | docs/architecture/platform-storage-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F059 | Display | Native panel / DRM KMS / framebuffer / 480×360 | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | GPU01 and later menus visible at 480×360 | tests/test_baseline_display.py tests/test_reborn_splash.py tests/test_gpu.py | Platform status/health and Display source-specific counters/logs; see subsystem section | One observed panel/revision; no interchangeable-panel promise | No UI if probe/scanout fails | Rescue console/USB maintenance; matched fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Freeze display pipeline | kernel/platform/panel.c kernel/platform/backlight.c kernel/platform/mm-clocks.c Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F060 | Display | Backlight brightness / blank / wake | Yes | Kernel | IMPLEMENTED_ENABLED | 80% Reborn default, 20/40/60/80/100 levels; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Screen-off/on observed; new brightness controls not physically qualified | tests/test_baseline_display.py tests/test_reborn_splash.py tests/test_gpu.py | Platform status/health and Display source-specific counters/logs; see subsystem section | Standard backlight API exists; latest level UX untested | Panel lit when dark or unusable brightness | Power wake; known backlight class values | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Check five levels and repeated wake | kernel/platform/panel.c kernel/platform/backlight.c kernel/platform/mm-clocks.c Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F061 | Display | Boot mark / READY-RELEASED-PRESENTED handoff / v2 dissolve | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Older protocol observed; v2 rendering previews/tests only | tests/test_baseline_display.py tests/test_reborn_splash.py tests/test_gpu.py | Platform status/health and Display source-specific counters/logs; see subsystem section | Candidate2 contains v2 but quick storage check is not visual acceptance | White flash or apparent boot stall | Existing splash failure path and diagnostics | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One filmed boot with timestamps | kernel/platform/panel.c kernel/platform/backlight.c kernel/platform/mm-clocks.c Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F062 | Display | Shutdown mark / final black / backlight off before ACK | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | New Product v2 path not physically qualified | tests/test_baseline_display.py tests/test_reborn_splash.py tests/test_gpu.py | Platform status/health and Display source-specific counters/logs; see subsystem section | Old white/blank-after-DRM-close problem has source correction, no visual proof | White flash or misleading off state | Platform backlight-off even when app hangs | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test user shutdown, reboot and hung-app path | kernel/platform/panel.c kernel/platform/backlight.c kernel/platform/mm-clocks.c Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F063 | GPU | Mali-400 MP2 / Lima / GBM / EGL / GLES2 / kmsro | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Mali400 renderer, EGL1.4/GLES2, hardware scanout and later Reborn observed | tests/test_gpu.py Y2Reborn:crates/reborn-graphics/src/lib.rs | Platform status/health and GPU source-specific counters/logs; see subsystem section | No GPU architecture gap relevant to awake beta | Context/allocation failure | Bounded restart + visible failure; no proven software-renderer fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Effectively finished for awake beta; leave intact | kernel/platform/mfg-clock.c kernel/platform/gpu-policy.h kernel/patches/0038-lima-initial-runtime-idle.patch buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F064 | GPU | GPU runtime PM / static no-redraw / screen-off | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | MFG 500.5 MHz active, suspended screen-off; static path tested historically | tests/test_gpu.py Y2Reborn:crates/reborn-graphics/src/lib.rs | Platform status/health and GPU source-specific counters/logs; see subsystem section | No system-deep-resume acceptance | GPU stays powered or redraw fails | Screen wake/restart; no deep sleep | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Short RC screen-cycle regression | kernel/platform/mfg-clock.c kernel/platform/gpu-policy.h kernel/patches/0038-lima-initial-runtime-idle.patch buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F065 | GPU | GPU full-suspend context restore | Yes | Kernel | PARTIALLY_IMPLEMENTED | System suspend gated; Path active when invoked; source/candidate scope, not proof of current runtime | UNTESTED | Full system wake never completed | tests/test_gpu.py Y2Reborn:crates/reborn-graphics/src/lib.rs | Platform status/health and GPU source-specific counters/logs; see subsystem section | Runtime PM evidence cannot qualify full resume | Lost GPU/display context | Keep system suspend off | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Qualify actual Lima/DRM/display restoration after full sleep; awake rendering proof is insufficient. | kernel/platform/mfg-clock.c kernel/platform/gpu-policy.h kernel/patches/0038-lima-initial-runtime-idle.patch buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F066 | GPU | CPU/software rasterizer fallback | Yes | Kernel | NOT_IMPLEMENTED | No production software rasterizer selected; No | UNTESTED | No fallback qualification | None | Not applicable; no implemented capability | Renderer failure does not silently switch to CPU rendering | No application UI | Supervised restart / root recovery | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Do not add renderer for beta | kernel/platform/mfg-clock.c kernel/platform/gpu-policy.h kernel/patches/0038-lima-initial-runtime-idle.patch buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-graphics/native/graphics.c | docs/knowledge/gpu-platform.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md |
| F067 | Input | APT32F I2C → evdev wheel → semantic navigation | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Historical wheel/input works; Fix02 real input QoS observed | tests/test_dev_wheel.py tests/test_evdev.py Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Input source-specific counters/logs; see subsystem section | Latest cadence/dedupe tuning only software-tested | Skipped/multiple rows or lost input | Back/Home; reset cadence on loss | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Physical one-detent and sustained-scroll check | kernel/platform/apt32f-wheel.c kernel/platform/keypad.c kernel/patches/0007-y2-pmic-keys.patch Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F068 | Input | 8 ms duplicate filter / four-detent acceleration | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Product v2 timestamp and cadence tests; no captured physical bounce distribution | tests/test_dev_wheel.py tests/test_evdev.py Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Input source-specific counters/logs; see subsystem section | Could suppress exceptionally rapid true detents | Over/under-scrolling | One step for short lists; cadence resets | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Check slow detents/reversal/fast rotation on actual Y2 | kernel/platform/apt32f-wheel.c kernel/platform/keypad.c kernel/patches/0007-y2-pmic-keys.patch Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F069 | Input | Select / Back / Play-Pause / Previous-Next | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Older physical buttons/audio control evidence | tests/test_dev_wheel.py tests/test_evdev.py Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Input source-specific counters/logs; see subsystem section | Latest focus and hold semantics need human regression | Unexpected navigation or transport action | Back parent, hold Back Home | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One checklist across core screens | kernel/platform/apt32f-wheel.c kernel/platform/keypad.c kernel/patches/0007-y2-pmic-keys.patch Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F070 | Input | Volume keys / wheel Now Playing volume / Power | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; dark transport/volume allowed; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Older physical control observations; volume ramp code tested | tests/test_dev_wheel.py tests/test_evdev.py Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Input source-specific counters/logs; see subsystem section | Latest wake/hold-Power sheet not signed off | Accidental activation while dark or volume jump | Dark navigation dropped; volume bounded | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve existing key behavior evidence; integrate deliberate Power sleep/wake semantics with active playback and long-hold shutdown/Quick Settings policy. | kernel/platform/apt32f-wheel.c kernel/platform/keypad.c kernel/patches/0007-y2-pmic-keys.patch Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F071 | Input | Device loss / SYN_DROPPED / duplicate activation handling | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host input/state-loss regression tests | tests/test_dev_wheel.py tests/test_evdev.py Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Input source-specific counters/logs; see subsystem section | No latest evdev-loss physical campaign | Stuck key or repeated command | Cancel pressed state and rescan | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain bounded recovery; targeted failure check | kernel/platform/apt32f-wheel.c kernel/platform/keypad.c kernel/patches/0007-y2-pmic-keys.patch Y2Reborn:crates/reborn-platform/src/input.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F072 | Audio | FFmpeg → float DSP → sink conversion → ALSA → AFE DL1 → I2S → CS43131 | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical01 clean wired channels; Fix02 silent Reborn fixtures | tests/test_audio.py tests/test_audio_clocks.py Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:crates/reborn-audio/src/native.rs | Platform status/health and Audio source-specific counters/logs; see subsystem section | Latest complete RC needs actual listening, not just null/QEMU | No sound, underrun or pop | S16 44.1 kHz known path | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Short format/rate/control listen then 8 h wired run | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F073 | Audio | Native S16 stereo 44.1 kHz | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Narrow physical profile and later owner clean-channel reports | tests/test_audio.py tests/test_audio_clocks.py Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:crates/reborn-audio/src/native.rs | Platform status/health and Audio source-specific counters/logs; see subsystem section | Current integrated candidate not qualified as a whole | Playback interruption | Reopen bounded sink; report error | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve baseline output | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F074 | Audio | Native S16 stereo 48 kHz | Yes | Reborn | IMPLEMENTED_ENABLED | Enabled independently of qualification flag; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical01 one minute + rate switches owner clean; Fix02 24/96→48 exercise | tests/test_audio.py tests/test_audio_clocks.py Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:crates/reborn-audio/src/native.rs | Platform status/health and Audio source-specific counters/logs; see subsystem section | audio-qualified.json still only lists 44.1; long Reborn listening pending | Rate-switch click or sink-open failure | Family conversion then 44.1 fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Include 44.1↔48 transitions and one sustained segment | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F075 | Audio | Native S24 / S32 / preserved 24-in-32 hardware output | Yes | Kernel | NOT_IMPLEMENTED | No; AFE format mask S16 only; No | UNTESTED | No established MT6582 DL1 wider fetch/interconnect contract | None | Not applicable; no implemented capability | Exact MT6582 fetch path is S16 only; later-SoC wide-fetch registers are absent and the serializer pad carries 16 meaningful bits (measured). Reborn S32 ALSA support is not evidence of meaningful wired24. | False high-resolution claim or distorted samples if forced | Float processing converted to S16 | FEATURE_COMPLETE_TARGET | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Closed as hardware-limited: Session 3 measured 16 meaningful bits at the I2S serializer pad (see Y2-HIGHRES-AUDIO-COMPLETION.md); keep S16, add no native S24/S32 masks. | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F076 | Audio | Native 88.2 / 96 kHz hardware output | Yes | Kernel | NOT_IMPLEMENTED | No; rates 44.1/48 only; No | UNTESTED | No established higher AFE rate clock path | None | Not applicable; no implemented capability | Exact native MT6582 clock/rate route above48k remains unproven; family conversion stays44.1/48. | False native-rate claim | 88.2→44.1; 96→48; 44.1 ultimate fallback | CONDITIONAL_ON_HARDWARE | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Resolve actual high-rate clock/fetch path before advertising native88.2/96; capture LRCLK/BCLK/MCLK transitions. | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F077 | Audio | Analog fidelity / gain / pop-click qualification | Yes | Reborn | PARTIALLY_IMPLEMENTED | Conservative wired path; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Owner clean both channels at 44.1/48 on older baseline | tests/test_audio.py tests/test_audio_clocks.py Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:crates/reborn-audio/src/native.rs | Platform status/health and Audio source-specific counters/logs; see subsystem section | No calibrated analog measurement or latest long listening | Audible clicks, clipped peaks, channel imbalance | Conservative volume and S16 path | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Human audible check at safe volume; no fidelity marketing | kernel/audio/mt6582-afe.c kernel/audio/y2-cs43131.c Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-audio/native/audio.c Y2Reborn:app/reborn/src/playback.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F078 | Formats | FLAC decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: flac-16-44100.flac / flac-24-96000.flac; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F079 | Formats | MP3 decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: mp3.mp3; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F080 | Formats | AAC / M4A decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: aac.aac / m4a-aac.m4a; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F081 | Formats | ALAC decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: m4a-alac.m4a; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F082 | Formats | Ogg Vorbis decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: vorbis.ogg; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F083 | Formats | Opus decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: opus.opus; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F084 | Formats | WAV PCM16/24/32 and float32 decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: wav-pcm16.wav / wav-pcm24.wav / wav-pcm32.wav / wav-float32.wav; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F085 | Formats | AIFF / AIF PCM24 decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: aiff-pcm24.aiff; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F086 | Formats | APE decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: ape-silence.ape; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F087 | Formats | WavPack decode | Yes | Reborn | IMPLEMENTED_ENABLED | Yes, file protocol only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native host/ARM fixture receipts; no separate latest-Y2 listen receipt for every format | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Fixture: wavpack-silence.wv; decoder support is independent of DAC output width/rate | Malformed/unsupported media reports error; metadata may be absent | Skip failed file; known FLAC/WAV; safe S16 sink | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Run short RC format playlist; preserve decoder whitelist | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F088 | Formats | Tags / ReplayGain tags / embedded and external artwork | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | FFmpeg fixtures cover metadata absent/corrupt plus JPEG/PNG/WebP | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Bounded decoding; not every tagging convention | Missing cover/title or expensive decode | Filename/default artwork | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain bounds; representative mixed library | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F089 | Formats | Seek trim / encoder delay / gapless metadata | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Seek, trim and gapless fixture assertions in media tests | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:tools/build/qemu-check.py | Platform status/health and Formats source-specific counters/logs; see subsystem section | Cross-codec physical boundary listening pending | Gap/click or wrong seek position | Disable gapless; explicit next track | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test audible boundary/seek, no decoder rewrite | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F090 | Formats | Streaming / network demux / DRM media / video playback | Yes | Reborn | NOT_IMPLEMENTED | No FFmpeg network, encoders, devices or CLI; No | UNTESTED | Build config restricts file/audio/artwork paths | None | Not applicable; no implemented capability | No streaming service integration; no WMA/DSD whitelist | Unsupported file ignored/rejected | Local supported files | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Document scope; no new decoder families | buildroot/configs/y2_production_defconfig Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:assets/fixtures/manifest.json | Y2Reborn:docs/architecture/reborn-audio-stack-ffmpeg9.md docs/validation/Y2-STORAGE-CEILING.md |
| F091 | DSP | Live volume ramp / software volume | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Native regression bounds partial writes/ramp; earlier audible volume works | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Latest smoothness not physically requalified | Click or delayed volume under buffering | Bounded volume; pause/stop | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Listen during wired and SBC volume changes | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F092 | DSP | Limiter / shared headroom | Yes | Reborn | IMPLEMENTED_ENABLED | DSP graph policy; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Numeric tests exercise same FFmpeg graph | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Not analog peak calibration | Digital clipping if configuration bypassed | Default headroom/limiter | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F093 | DSP | ReplayGain track / album / off | Yes | Reborn | IMPLEMENTED_ENABLED | User-exposed; off default; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Fixture gain/peak tests; no complete hardware album comparison | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Missing tags use neutral gain | Inconsistent loudness | Off | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Short tagged/untagged listen | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F094 | DSP | EQ processing and saved bands | Yes | Reborn | IMPLEMENTED_ENABLED | User EQ toggle; default bypass; Productv2 wheel editor controls existing DSP engine | SOFTWARE_VALIDATED | Graph numeric tests; no physical EQ acceptance | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Existing EQ DSP now exposed through wheel-friendly Productv2 editor; audible/headroom/endurance acceptance pending. | Unexpected gain if manually configured | EQ off | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Qualify bypass/band edits/persistence/headroom while wired/Bluetooth playback is active. | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F095 | DSP | Crossfade | Yes | Reborn | IMPLEMENTED_ENABLED | Available; default 0 ms; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 real UI 5000 ms setting exercised with silent fixtures | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Audible overlap/error fallback needs listening | Bad boundary or extra CPU | 0 ms crossfade | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Complete and qualify this required product capability; preserve recorded safeguards and verify the listed limitation on integrated RC. | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F096 | DSP | Gapless queue playback | Yes | Reborn | IMPLEMENTED_ENABLED | Enabled by default; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host continuity/queue tests; no latest audible all-format qualification | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | Codec padding/format changes may differ | Short gap or click | Disable gapless, normal next | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test paired FLAC plus mixed formats | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F097 | DSP | Resampling / channel conversion / output format conversion | Yes | Reborn | IMPLEMENTED_ENABLED | When source/sink differ; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | 24/96→48 physically exercised; native sample/24-bit sign tests | Y2Reborn:crates/reborn-media/src/native.rs Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs | Platform status/health and DSP source-specific counters/logs; see subsystem section | No bit-perfect/24-bit DAC claim | Wrong amplitude or channel packing | S16 stereo 44.1 baseline | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve shared conversion implementation | Y2Reborn:crates/reborn-media/native/media.c Y2Reborn:app/reborn/src/playback.rs Y2Reborn:app/reborn/src/volume.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/architecture/live-volume.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F098 | DAC | CS43131 init / DAPM power / I2S output / mute | Yes | Kernel | IMPLEMENTED_ENABLED | Yes when sink opens; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Clean wired playback, runtime idle observed | tests/test_audio.py tests/test_audio_clocks.py | Platform status/health and DAC source-specific counters/logs; see subsystem section | DT uses ready polling; codec driver named cs43130 covers CS43131 | No output, pop at power transition | Disable headphone pin on close; safe volume | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Rate/start/stop/screen-off regression | kernel/audio/y2-cs43131.c kernel/audio/mt6582-afe.c kernel/patches/0030-cs43130-system-pm.patch kernel/dts/innioasis-y2.dts Y2Reborn:crates/reborn-audio/native/audio.c | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/knowledge/audio-path.md |
| F099 | DAC | Hardware volume / filter speed / phase / high-pass / de-emphasis controls | Yes | Kernel | IMPLEMENTED_ENABLED | ALSA controls available; not new product settings; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Upstream control availability; no per-control physical matrix | tests/test_audio.py tests/test_audio_clocks.py | Platform status/health and DAC source-specific counters/logs; see subsystem section | Datasheet/control presence is not actual user use | Bad selected filter/level if manually changed | Established defaults | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Do not expose extra DAC controls for beta | kernel/audio/y2-cs43131.c kernel/audio/mt6582-afe.c kernel/patches/0030-cs43130-system-pm.patch kernel/dts/innioasis-y2.dts Y2Reborn:crates/reborn-audio/native/audio.c | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/knowledge/audio-path.md |
| F100 | DAC | Impedance/load measurement / adaptive gain / jack detection | Yes | Kernel | IMPLEMENTED_DISABLED | DT omits IRQ/load properties; No | UNTESTED | Owner plugged jack while report off; telemetry now unavailable | tests/test_audio.py tests/test_audio_clocks.py | Platform status/health and DAC source-specific counters/logs; see subsystem section | EINT16 routing/load topology unqualified | Misleading detection or unsafe gain if guessed | Manual wired selection; fixed conservative route | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Keep disabled; no impedance project | kernel/audio/y2-cs43131.c kernel/audio/mt6582-afe.c kernel/patches/0030-cs43130-system-pm.patch kernel/dts/innioasis-y2.dts Y2Reborn:crates/reborn-audio/native/audio.c | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/knowledge/audio-path.md |
| F101 | DAC | Additional DAC modes / DSD / advanced low-power tuning | Yes | Kernel | NOT_IMPLEMENTED | No Y2 product path; No | UNTESTED | No board-qualified use found | None | Not applicable; no implemented capability | Chip datasheet is not stack support | Unsupported mode | Existing PCM/DAPM | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Post-beta only | kernel/audio/y2-cs43131.c kernel/audio/mt6582-afe.c kernel/patches/0030-cs43130-system-pm.patch kernel/dts/innioasis-y2.dts Y2Reborn:crates/reborn-audio/native/audio.c | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/knowledge/audio-path.md |
| F102 | Bluetooth | MT6627 firmware / CONSYS / BTIF HCI / BlueZ 5.87 | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Radio off until enabled; stored preference; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical HCI/BlueZ/AirPods link repeatedly observed | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Per-device factory records and owner firmware needed | Radio fails boot or firmware reset | Bounded CONSYS isolated retry; radio off/on | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve; qualify fresh owner provisioning | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F103 | Bluetooth | Discovery / bounded Pairable window / bonding / trust | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Explicit user pairing; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Retained Paired/Bonded/Trusted and SBC observed | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Fresh end-to-end pairing after fixes lacks full trace matrix | No retained bond or Pair succeeds without usable PCM | Forget and fresh pair through UI | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Fresh pair, reboot, reconnect with one ordinary peer | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F104 | Bluetooth | One reconnect owner / persistent device intent | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | y2-bt-reconnect; app user actions leased; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Earlier successful bonds/audio; lifecycle/endurance open | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Backoff/forget/user disconnect edge cases need RC test | Reconnect loop or wrong sink | Manual Connect / wired output | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Ten disconnect/reconnect cycles and one restart | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F105 | Bluetooth | A2DP SBC source / actual PCM selection | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | SBC enabled; user selects output; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical01 182.955 s Reborn SBC, zero errors; owner clean AirPods | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Short session only; source repair later included | Connected device but no audio PCM | Wired output / stop and reconnect | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | 2 h SBC screen-off plus fresh-pair smoke | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F106 | Bluetooth | AVRCP media keys / player metadata | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Registered Reborn player; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Owner confirms play/pause; retained trace lacked incoming command | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Metadata/next/previous/full peer matrix incomplete | Headset key ignored or metadata stale | Y2 physical controls | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Verify play/pause/next and metadata on chosen peer | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F107 | Bluetooth | Screen-off radio / CONSYS restore | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Runtime awake policy; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Radio isolated retry and staged restoration seen | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Full suspend restoration failed; not relevant when disabled | Controller unavailable after reset | Bounded restart; wired output | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test awake screen-off and user radio toggle | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F108 | Bluetooth | Bluetooth/Wi-Fi coexistence scan + transfer | Yes | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Shared CONSYS hardware; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Separate links pass; no sustained paired coexistence qualification located | tests/test_platform_bluetooth.py tests/test_connectivity.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs | Platform status/health and Bluetooth source-specific counters/logs; see subsystem section | Higher bitrate codecs untested; control-query timeouts confound counts | Dropouts or radio reset during Wi-Fi scan/transfer | SBC and Wi-Fi off during playback if documented | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | 30 min SBC with Wi-Fi scan/transfer; promote blocker if repeated core failure | kernel/platform/connectivity/core.c kernel/platform/connectivity/btif.c tools/connectivity/reconnect.c tools/platform/y2_platform/bt_control.py Y2Reborn:crates/reborn-platform/src/bluetooth.rs Y2Reborn:crates/reborn-platform/src/avrcp.rs | docs/architecture/platform-bluetooth-v1.md docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F109 | Codecs | SBC baseline | Yes | External component | IMPLEMENTED_ENABLED | Compiled encoder and BlueALSA endpoint enabled; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Actual SBC/S16 stereo48 peer PCM and audible playback ~3 min | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | No latest long peer endurance | Dropout or failed negotiation | Mandatory SBC baseline / wired | CORE_RELEASE_FEATURE | REQUIRED / false | OSS_NOTICE_SOURCE_REVIEW | B | Qualify ordinary SBC; no codec expansion | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md |
| F110 | Codecs | SBC XQ / high bitpool preference | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | No actual XQ peer playback or CPU result located | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | SBC XQ quality policy/control and actual bitpool/bitrate telemetry integrated; peer/mode/audible proof pending. | Negotiates ordinary SBC or cannot apply request | Standard SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | OSS_NOTICE_SOURCE_REVIEW | A,B | Validate dual-channel peer support, actual high bitpool, workload and reconnect; do not label XQ a separate negotiated codec. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F111 | Codecs | AAC encoder / BlueALSA | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | ARM/QEMU component support only; no retained AAC peer pass | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | AAC endpoint enabled in explicit private integration profile; peer/CPU/thermal/reconnect and redistribution proof pending. | Unsupported negotiation/CPU/dropout | SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Use compatible peer in integrated qualification; record negotiated/active PCM separately from preference. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F112 | Codecs | aptX encoder / BlueALSA | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | No compatible-peer playback/CPU receipt located | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | aptX endpoint enabled in explicit private integration profile; peer/load/reconnect and redistribution proof pending. | Codec unavailable or unstable | SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Qualify aptX independently using actual negotiated transport and PCM. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F113 | Codecs | aptX HD encoder / BlueALSA | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | No aptX HD peer playback/CPU receipt located | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | aptX-HD endpoint enabled independently in explicit private integration profile; physical/distribution proof pending. | Codec unavailable or unstable | SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Qualify aptX-HD separately from aptX, including S32 PCM path and fallback. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F114 | Codecs | LDAC encoder / BlueALSA | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | ARM encoder/ABR build only; no LDAC peer qualification | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | LDAC endpoint enabled in explicit private integration profile; actual encoder telemetry added; peer/distribution proof pending. | High-load dropout | SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Qualify actual LDAC transport/load/reconnect and SBC fallback. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F115 | Codecs | LDAC 330 / 660 / 990 kbps modes | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | No physical mode comparison or measured CPU | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | Rate-family LDAC quality controls integrated with requested versus applied/startup state; peer proof pending. | 990 may overload radio/coexistence | SBC; no bitrate promise | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Observe303/606/909 at44.1 family and330/660/990 at48 family where library produces them. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F116 | Codecs | LDAC ABR | Yes | External component | IMPLEMENTED_EXPERIMENTAL | Explicit owner-private integration profile; not public-distribution approval; Runtime enabled/control integrated; active peer transport requires physical observation | SOFTWARE_VALIDATED | No live ABR/bandwidth measurement | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | LDAC ABR controls and actual encoder bitrate/quality transition telemetry implemented; no adaptation observed physically. | Quality oscillation/dropout | SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,B,D | Capture actual bitrate transitions under constrained radio workload; linked ABR library is not adaptation proof. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F117 | Codecs | Qualified Auto codec policy / Reborn choices | Yes | External component | IMPLEMENTED_ENABLED | Policy present; eligible optional list empty; UI row hidden with <2 choices; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Policy tests; no optional qualification flags true | tests/test_radio_policy.py tests/test_platform_bluetooth.py Y2Reborn:crates/reborn-platform/src/codecs.rs | Platform status/health and Codecs source-specific counters/logs; see subsystem section | Preference is not actual active codec | False selection claim if metadata confused | Observed BlueALSA PCM and SBC | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Complete peer/mutual availability, user preference and Auto policy using qualified enabled endpoints; show requested versus negotiated/actual codec; bound retries/reconnect and truthful bitrate reporting. | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md |
| F118 | Codecs | LE Audio / aptX Adaptive / aptX Lossless | Yes | External component | NOT_IMPLEMENTED | No; No | UNTESTED | No current supported MT6627/stack product path | None | Not applicable; no implemented capability | CONFIG_BT_LE alone is not LE Audio; no implementation claim | Unsupported feature | Classic SBC A2DP | UNSUPPORTED_HARDWARE | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | G | Not beta requirements; do not chase | buildroot/package/y2-codec-experiments/Config.in tools/production/codec_manifest.py tools/production/codec-sources.json buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity Y2Reborn:crates/reborn-platform/src/codecs.rs | docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md docs/architecture/platform-bluetooth-v1.md |
| F119 | Wi-Fi | Firmware / driver / WPA2 / scan / credential storage | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Off until user enables; credentials persistent; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | WPA2-PSK CCMP, scans and association on older baseline | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | No WPA3/enterprise/AP/P2P product qualification | Cannot connect or wrong saved network | Forget/reconnect; offline playback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Fresh connect/password/forget/reboot tests | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F120 | Wi-Fi | DHCP / route / DNS / network readiness | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | When Wi-Fi enabled; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Physical01 ordinary checked DNS + TCP; Fix02 4×1 MiB each way SHA | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | Readiness STATUS/DNS sampling can fail while link lives | UI says offline despite working traffic | Retry status; actual link/IP diagnostics | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Bounded network smoke and truthful error states | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F121 | Wi-Fi | TX checksum offload repair | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | PHY001 normal DNS/TCP passes after removing unsupported advertisement | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | Older docs describe already-fixed failure | Broken DNS/TCP if old driver used | Current software checksums | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Do not reopen repair | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F122 | Wi-Fi | Reconnect / screen-off / Wi-Fi power save | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Observed-policy engine; radio state user-controlled; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Short connectivity passes; long screen-off reconnect not qualified | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | Driver power-save semantics and shared radio interactions | Dropouts or wakeup/drain overhead | Keep stable radio policy; reconnect manually | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | 30 min screen-off mixed test | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F123 | Wi-Fi | Telemetry consistency / disconnect counters | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Real STATUS timeout despite network pass; counter repair present | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | Timeout is unknown observation, not proof of disconnect | Misleading Online/Failed/churn | Report unknown with cause; independent network check | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Verify counter semantics and RC transient UI | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F124 | Wi-Fi | Measured Wi-Fi throughput | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Existing TCP path; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Physical01 3 repeats ~45.15–45.60 receive /46.35–46.56 transmit Mb/s | tests/test_wifi.py tests/test_platform_network_time.py tests/test_radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | Platform status/health and Wi-Fi source-specific counters/logs; see subsystem section | Not latest build or Internet rate; no coexistence ceiling | Transfer slower under load | Wired/local SD copying | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | No optimization target | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F125 | Wi-Fi | AP / P2P / WPS / enterprise / browser / network media | Yes | Y2Linux userspace | NOT_IMPLEMENTED | No product routes; No | UNTESTED | Vendor source may contain unused handlers/stubs | None | Not applicable; no implemented capability | Presence of cfg80211 handlers does not equal supported product | Unsupported flow | WPA2 personal local connection | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Document supported Wi-Fi scope | kernel/platform/connectivity/wifi/os/linux/gl_init.c buildroot/board/y2/production-overlay/usr/libexec/y2/connectivity tools/platform/y2_platform/network.py tools/platform/y2_platform/radio_policy.py Y2Reborn:crates/reborn-platform/src/wifi.rs | docs/validation/PLATFORM-V1-PHYSICAL-BRINGUP.md docs/validation/PLATFORM-V1-PHYSICAL-ISSUES.md docs/validation/Y2-HARDWARE-FINAL-RADIO-AUDIO.md |
| F126 | USB | MUSB peripheral ACM + ECM USB networking | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01 bounded USB regression: three 1 MiB bidirectional checksum rounds pass with independent Wi-Fi observer; filesystem errors 0 and same boot. This supersedes the older Fix02/Fix01 loaded-transfer failure for this exact repaired source. | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Bounded integrity on the supported owner host is not large-transfer endurance, ten cable/host-sleep cycles, USB host/VBUS or generic SFTP atomic-publication proof. | Device disappears or cannot enumerate | Cable/reboot / known PIO package | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward repaired device/transfer path; run included Baseline02 USB integrity checks, then separately qualify wider host/reconnect/endurance. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F127 | USB | Inventra DMA / loaded transfer storm guard | Yes | Kernel | IMPLEMENTED_ENABLED | DMA default, PIO escape exists; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01 bounded USB regression: three 1 MiB bidirectional checksum rounds pass with independent Wi-Fi observer; filesystem errors 0 and same boot. This supersedes the older Fix02/Fix01 loaded-transfer failure for this exact repaired source. | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Bounded integrity on the supported owner host is not large-transfer endurance, ten cable/host-sleep cycles, USB host/VBUS or generic SFTP atomic-publication proof. | USB terminal fault, cannot copy/recover over USB | y2.usb_dma=off with verified package; independent manual recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward repaired device/transfer path; run included Baseline02 USB integrity checks, then separately qualify wider host/reconnect/endurance. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F128 | USB | PIO transport fallback | Yes | Kernel | IMPLEMENTED_ENABLED | Boot flag off or unavailable DMA; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical01 PIO works with high upload retransmissions | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Not enough evidence to call repeated file transfer qualified | Slow upload / stalled session | Retry after clean reconnect; offline SD copying | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain and verify PIO fault/recovery fallback; it does not remove DMA performance completion work. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F129 | USB | USB SSH / SFTP transfer integrity and reserve | Yes | Kernel | IMPLEMENTED_ENABLED | Requires per-owner public key; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | UART01 bounded USB regression: three 1 MiB bidirectional checksum rounds pass with independent Wi-Fi observer; filesystem errors 0 and same boot. This supersedes the older Fix02/Fix01 loaded-transfer failure for this exact repaired source. | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Bounded integrity on the supported owner host is not large-transfer endurance, ten cable/host-sleep cycles, USB host/VBUS or generic SFTP atomic-publication proof. | Partial music file after generic client interruption | Verified helper staging/hash/fsync; no overwrite | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Carry forward repaired device/transfer path; run included Baseline02 USB integrity checks, then separately qualify wider host/reconnect/endurance. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
| F130 | USB | USB reconnect / runtime PM / PC sleep | Yes | Kernel | IMPLEMENTED_ENABLED | 1 s sample tolerance, 10 s write-free retry; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Older reconnect workarounds; Fix02 loaded terminal fault | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Current independent recovery under disconnect not qualified | Service appears Ready but link gone | Replug/reboot with clear instructions | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Cable cycle plus host sleep/wake where supported | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F131 | USB | NCM gadget | Yes | Kernel | IMPLEMENTED_DISABLED | Module packaged, inactive; No | SOFTWARE_VALIDATED | No physical NCM transfer acceptance | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Does not solve current ECM reliability evidence gap | Host driver mismatch | ACM+ECM | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Keep disabled | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F132 | USB | Host / OTG role / ID / VBUS power sourcing | Yes | Kernel | IMPLEMENTED_DISABLED | Dual-role compiled, host role fail-closed; No | SOFTWARE_VALIDATED | No board-qualified VBUS switch/current/ID contract | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | MAC capability alone insufficient | Unsafe VBUS or no host power if forced | Peripheral-only policy | CONDITIONAL_ON_HARDWARE | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Resolve board ID/VBUS source/switch/current capability from exact wiring/stock evidence before host activation; do not energize unsupported VBUS. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F133 | USB | USB host HID / storage / USB Audio | Yes | Kernel | IMPLEMENTED_DISABLED | HID/storage built, UAC module; role unavailable; No | SOFTWARE_VALIDATED | No device enumeration on Y2 host path | tests/test_usb_failure.py tests/test_cpu_fix03.py tests/test_platform_transfer.py tests/test_usb_reconnect.py | Platform status/health and USB source-specific counters/logs; see subsystem section | Depends on unproven VBUS/role | Peripheral not powered/recognized | Local input/SD/CS43131 | CONDITIONAL_ON_HARDWARE | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Host HID/storage/audio conditional on F132 electrical admission; no class-work prerequisite before board proof. | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F134 | USB | USB mass storage / MTP / RNDIS | Yes | Linux USB / Reborn | PARTIALLY_IMPLEMENTED | MTP product; developer ACM+ECM; hardware NOT_RUN | SOFTWARE_VALIDATED | Integrated MTP/real desktop NOT_RUN; SFTP history separate | Integrated USB policy, responder/confinement tests PASS; full ARM pending | usb state / durable library_refresh_generation | MTP desktop pending; mass storage/RNDIS absent | Backend unavailable / responder disconnect | Authenticated SFTP / offline SD copy | CORE_RELEASE_FEATURE | REQUIRED / false | OSS_NOTICE_SOURCE_REVIEW | B, D | Qualify MTP desktop + refresh/eject on exact integrated image | kernel/platform/usb.c kernel/patches/0054-y2-inventra-dma.patch kernel/patches/0055-musb-abort-bus-error.patch kernel/patches/0057-u-ether-align-dma-tx.patch tools/platform/y2_platform/ssh.py tools/platform/y2_platform/transfer.py | docs/architecture/platform-usb-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/Y2-CPU-FINAL-FIX03.md |
| F135 | Library | SQLite schema1 / WAL / browse indexes / serialized DB worker | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Physical1 1k/10k/20k counts/quick_check; browse ~2.08 ms at20k | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Current candidate needs smoke; no destructive migration | Corrupt/locked/full DB affects browsing | Quarantine proven corruption; preserve other failures | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Freeze schema and indexes | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F136 | Library | Incremental scanner / source claims / non-destructive pruning | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Measured physical 1k/10k/20k fixture scans; host removal/partial-scan tests | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Large metadata/art costs; incomplete scans retain rows | Stale entries or unavailable sources | Rescan after source returns; no prune on incomplete scan | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Mixed realistic-library test; keep integrity policy | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F137 | Library | Full Rebuild Library re-reads files | Yes | Reborn | IMPLEMENTED_ENABLED | Explicit UI command; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Commit5e1598a adds forced reread; software tests only | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | New UI action not physically exercised | Long scan or incomplete refresh | Existing DB retained on failed source work | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One rebuild smoke, then stop optimizing | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F138 | Library | Metadata / artwork association / stale artwork prevention | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Artwork source and queue-boundary tests | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Large/unusual artwork may fall back; no all-files guarantee | Wrong/missing cover or latency | Placeholder artwork, filename fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Representative covers and long-tag set | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F139 | Library | Albums / artists / songs / folders / indexed queries | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | 20k page p50~2.080 ms, p99~2.448 ms on13 MHz baseline | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Full track construction ~45 ms; v2 navigation changed | UI stall on full-list refresh | Paged visible rows / letter jump | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Do not rewrite database for beta | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F140 | Library | Text search API / filters | Yes | Reborn | PARTIALLY_IMPLEMENTED | Library query support; no dedicated current search screen; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Filter/query host tests; no user search flow evidence | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Search backend is not a shipped search UI | User cannot type free-text library search | Albums/artists/folders/letter jump | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Document; post-beta UI feature | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F141 | Library | Favorites / persistent playlists | Yes | Reborn | NOT_IMPLEMENTED | No Favorites route/schema; queue exists; No | UNTESTED | Heart assets are not favorites implementation | None | Not applicable; no implemented capability | No durable playlist editor or favorites collection found | Tester expects feature absent | Queue/shuffle/repeat | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | List as absent, no beta coding | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F142 | Library | Queue occurrence references / offline media identity | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Queue identity/duplicate/stale-source tests | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Fix02 cleanup left removed fixture entries in queue | Removed track errors until queue cleanup | Skip unavailable entry / clear upcoming / rescan | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test SD removed mid-queue without data loss | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F143 | Library | 1k / 10k / 20k scan performance envelope | Yes | Reborn | IMPLEMENTED_ENABLED | Existing benchmarks; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | New indexed baseline initial4.154/52.553/114.573 s; incremental0.192/7.666/18.251 s | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/tests.rs | Platform status/health and Library source-specific counters/logs; see subsystem section | Synthetic fixtures at old13 MHz; real artwork/SD differs | Long scan; temporary commit latency~0.56 s p99 | Background scan and progress/error state | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One realistic10k check; no week spent on benchmarks | Y2Reborn:crates/reborn-library/src/lib.rs Y2Reborn:crates/reborn-library/src/benchmark.rs Y2Reborn:crates/reborn-ui/src/catalog.rs | docs/validation/PLATFORM-V1-HARDWARE-CEILING.md Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md |
| F144 | Playback | Decoder worker / bounded queues / sink writes | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Actual SBC~183 s clean; Fix02 short silent workload windows | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | No completed current 8h evidence | XRUN or stuck write/open | Bounded worker/error recovery, stop/reopen | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | 8h wired +2h SBC product endurance | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F145 | Playback | Transactional sink reconfiguration / Bluetooth switching | Yes | Reborn | IMPLEMENTED_ENABLED | Explicit output changes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Sink contract and stale transport-generation tests; older real PCM repair | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | Peer loss/reconnect combinations not fully physical | Silence or app stuck on old sink | Stop / wired selection / reconnect | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Wired↔SBC switching and peer-loss test | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F146 | Playback | Play/pause / next/previous / seek / buffering recovery | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Owner prior controls; seek/queue host regression | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | Latest app changes need audible checks | Wrong track/seek or blocked control | Stop then Play; retain session | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Physical basic transport checklist | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F147 | Playback | Underrun/decode error/device loss containment | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Malformed/truncated fixtures, async sink tests | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | Not every blocked kernel I/O can be bounded | No sound or hung worker | Bounded retries, error state, supervisor | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One removable source and peer-loss scenario | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F148 | Playback | decoder_stalls metric semantics | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Source increments on full producer queue once per blocked item | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | Means decoder backpressure, not necessarily starved audio | False beta-failure verdict if treated as underruns | Use audio_xruns/recoveries/write/decode errors separately | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Clarify diagnostics/test interpretation; no engine rewrite | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F149 | Playback | Session/settings persistence / shuffle / repeat / queue edits | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; atomic writes and serde defaults; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host queue/serialization/commit tests; past state persisted | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Platform status/health and Playback source-specific counters/logs; see subsystem section | Settings migration not a full versioned framework | Stale queue or settings reset after incompatible change | Compatible fields/defaults; export before maintenance | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Reboot and preserving-update data checks | Y2Reborn:app/reborn/src/playback.rs Y2Reborn:crates/reborn-audio/src/native.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/validation/LUNA-CORRECTNESS-CLOSURE-01.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F150 | UI | Home | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Four entries: Music, Now Playing, Queue, Settings | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F151 | UI | Music | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Albums, Artists, Songs, Folders | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F152 | UI | Albums and Album | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Play All, track order, context queue actions | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F153 | UI | Artists and Artist | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Artist albums and songs, Play All | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F154 | UI | Songs and Jump to Letter | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Alphabetical list and letter navigation | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F155 | UI | Folders | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Internal/SD hierarchy and tracks | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F156 | UI | Now Playing and options | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Artwork/progress, volume wheel, queue, shuffle/repeat, album/artist/song info | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F157 | UI | Queue and item options | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Occurrence identity, Play Now, Remove, Move Up/Down, Clear Upcoming | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F158 | UI | Quick Settings sheet | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Hold Power: Wi-Fi, Bluetooth, output, brightness, restart/off | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F159 | UI | Settings root | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Wi-Fi, Bluetooth, PC Transfer, Audio, Playback, Library, Display, System | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F160 | UI | Audio and Output picker | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Wired/usable Bluetooth PCM and ReplayGain; no EQ editor | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F161 | UI | Playback settings | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Shuffle/repeat/gapless/crossfade | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F162 | UI | Library settings | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Source selection, scan, forced rebuild | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F163 | UI | Display settings | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Five brightness levels and screen timeout | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F164 | UI | System | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Battery/storage/update/about/reset/diagnostics/restart/off | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F165 | UI | Wi-Fi and password entry | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Toggle, scan, saved networks, connect/disconnect/forget, wheel text entry | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F166 | UI | Bluetooth and pairing | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Toggle/discovery/pair/connect/forget, confirmation; codec row gated | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F167 | UI | PC Transfer | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Cable/service/space and scan; hides protocol/auth instructions in Diagnostics | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F168 | UI | Storage | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Static space/state; no mount/format browser | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F169 | UI | Battery | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Estimated battery/charging/low state; technical confidence in Diagnostics | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F170 | UI | Software Update | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Check/stage/apply/cancel when channel/gates permit; computer update message otherwise | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F171 | UI | About and Licenses | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Version and summary license text; full component notices require package check | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F172 | UI | Reset & Maintenance | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Reset app settings, rebuild library, clear artwork cache, forget Wi-Fi, forget Bluetooth | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F173 | UI | Song Info / Value Detail | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Readable full values, format/location; internal source IDs removed | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F174 | UI | Diagnostics root and 13 sections | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Health, battery, storage, network, BT, audio, CPU/power, USB, update, boot/services, build, capabilities, operation result | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F175 | UI | Dialogs / confirmations / empty/error states | Yes | Reborn | IMPLEMENTED_ENABLED | Yes when reachable; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | 212-test Product v2 retained software validation and previews; no complete v2 physical UX sign-off | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Cancel-first destructive actions, focus trapping, actionable no-music states | Navigation/focus/error copy may mislead on small physical display | Back restores focus; hold Back Home; actionable retry | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One physical end-to-end route checklist; fix only observed defects | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F176 | UI | Favorites screen | Yes | Reborn | NOT_IMPLEMENTED | No; No | UNTESTED | No current Screen enum/route | None | Not applicable; no implemented capability | Asset heart does not make Favorites a feature | User cannot access favorites | Queue and library browsing | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Post-beta | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F177 | UI | Connectivity hub / standalone Quick Settings / developer reset placeholders | Yes | Reborn | IMPLEMENTED_DISABLED | Removed/merged in Product v2; No | SOFTWARE_VALIDATED | Route/normal-string tests verify pruning | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Old UI v1 maps are stale | Following old docs lands on nonexistent route | Current Settings and sheet routes | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Use v2 navigation documentation | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F178 | UI | Focus restoration / long names / Unicode / large lists | Yes | Reborn | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Every reachable route Back tests plus long-name/Unicode previews | Y2Reborn:crates/reborn-ui/src/tests.rs Y2Reborn:tests/ui-candidate.py | Platform status/health and UI source-specific counters/logs; see subsystem section | Preview is not actual 480×360 readability or latency proof | Clipped names, wrong focus, slow wheel list | Full-value page and letter jump | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Physical realistic10k navigation checklist | Y2Reborn:crates/reborn-ui/src/pages.rs Y2Reborn:crates/reborn-ui/src/screens.rs Y2Reborn:crates/reborn-ui/src/lib.rs Y2Reborn:crates/reborn-core/src/lib.rs | Y2Reborn:docs/ui/REBORN-PRODUCT-NAVIGATION-V2.md Y2Reborn:docs/review/REBORN-PRODUCT-PASS-V2.md docs/validation/Y2-REBORN-PRODUCT-UI-V2.md |
| F179 | Battery | BAT0 voltage / present / confidence and SOC estimate | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes voltage-derived profile; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Real ADC/voltage readings; source provisional curve 3.4–4.175 V | tests/test_battery_soc.py tests/test_power_policy.py tests/test_platform_power_contract.py | Platform status/health and Battery source-specific counters/logs; see subsystem section | Not coulomb counter, measured current or calibrated capacity | Optimistic percentage under load/charge | Show estimated label and voltage/low warning | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Show useful explicitly estimated SOC and charging state; validate trend/warnings through charge/discharge and sleep/wake. | kernel/platform/mt6323-adc.c tools/platform/y2_platform/battery.py tools/platform/y2_platform/power.py buildroot/board/y2/production-overlay/etc/y2linux/battery-profile.json buildroot/board/y2/production-overlay/etc/y2linux/power-policy.json | docs/architecture/platform-power-v1.md docs/knowledge/hardware-final-power-evidence.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F180 | Battery | Hardware fuel gauge / measured pack current / measured pack temperature | Yes | Y2Linux userspace | NOT_IMPLEMENTED | No supported public telemetry; No | UNTESTED | Stock FG functions return zero; ISENSE/BATSNS and BATON acquisition not calibrated | None | Not applicable; no implemented capability | 68 mΩ/topology/offset and NTC wiring unproven | False safety assurance from fabricated values | Not reported; die sensors separate | CONDITIONAL_ON_HARDWARE | REQUIRED_IF_HARDWARE_SUPPORTED / true | NOT_SEPARATELY_ASSESSED | C,A,B | Investigate exact MT6323/Y2 stock sense/coulomb/NTC path, calibration and net-current direction; implement real current/coulomb/pack temperature only where board-supported and prove against measurement. | kernel/platform/mt6323-adc.c tools/platform/y2_platform/battery.py tools/platform/y2_platform/power.py buildroot/board/y2/production-overlay/etc/y2linux/battery-profile.json buildroot/board/y2/production-overlay/etc/y2linux/power-policy.json | docs/architecture/platform-power-v1.md docs/knowledge/hardware-final-power-evidence.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F181 | Battery | Low battery warning / critical warning / provisional voltage floor | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Enabled schema2:3.5 low/3.4 critical/3.6 recovery; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No attended reserve/low-voltage shutdown acceptance located | tests/test_battery_soc.py tests/test_power_policy.py tests/test_platform_power_contract.py | Platform status/health and Battery source-specific counters/logs; see subsystem section | Five critical samples +10 s grace; SOC estimate only warns | Battery collapses before DB/sync or excessive drain | Bounded orderly shutdown, stop use/charge | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Attended safe reserve test; block if unable to prove shutdown margin | kernel/platform/mt6323-adc.c tools/platform/y2_platform/battery.py tools/platform/y2_platform/power.py buildroot/board/y2/production-overlay/etc/y2linux/battery-profile.json buildroot/board/y2/production-overlay/etc/y2linux/power-policy.json | docs/architecture/platform-power-v1.md docs/knowledge/hardware-final-power-evidence.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F182 | Battery | App checkpoint / audio close / DB WAL close / sync / bounded shutdown | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes independent platform coordinator; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host deadline/error tests; earlier user reboot observed | tests/test_battery_soc.py tests/test_power_policy.py tests/test_platform_power_contract.py | Platform status/health and Battery source-specific counters/logs; see subsystem section | Latest low-battery and hung-app path unqualified physically | Data loss or apparently off device remains awake | Deadline stops/kills app then standard init poweroff | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test user/reboot/hung-app and next-boot integrity | kernel/platform/mt6323-adc.c tools/platform/y2_platform/battery.py tools/platform/y2_platform/power.py buildroot/board/y2/production-overlay/etc/y2linux/battery-profile.json buildroot/board/y2/production-overlay/etc/y2linux/power-policy.json | docs/architecture/platform-power-v1.md docs/knowledge/hardware-final-power-evidence.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F183 | Battery | Battery life / discharge calibration | Yes | Y2Linux userspace | PARTIALLY_IMPLEMENTED | No advertised runtime guarantee; Path active when invoked; source/candidate scope, not proof of current runtime | UNTESTED | CPU idle metrics only; no calibrated endurance curve | tests/test_battery_soc.py tests/test_power_policy.py tests/test_platform_power_contract.py | Platform status/health and Battery source-specific counters/logs; see subsystem section | Cannot state hours remaining/full battery capacity | Unexpected short screen-off life | Use Power Off, charge normally after qualified gate | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Qualify voltage-derived SOC usefulness/reserve and sleep drain; calibrated accuracy is conditional on a valid profile, not a fabricated fuel gauge. | kernel/platform/mt6323-adc.c tools/platform/y2_platform/battery.py tools/platform/y2_platform/power.py buildroot/board/y2/production-overlay/etc/y2linux/battery-profile.json buildroot/board/y2/production-overlay/etc/y2linux/power-policy.json | docs/architecture/platform-power-v1.md docs/knowledge/hardware-final-power-evidence.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F184 | Charging | USB detection / BC1.1 source classification / charge current ceilings | Yes | Kernel | IMPLEMENTED_ENABLED | 70/450/650 mA bounded selectors; default ceiling650 mA; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | SDP configured450 mA observed; USB500 mA allocation distinct | tests/test_charger.py tests/test_offline_charging.py tests/test_power03.py | Platform status/health and Charging source-specific counters/logs; see subsystem section | Higher source selector/source class needs current external observation | Net discharge despite Charging or source overload | Existing source-limited conservative selector | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify PC and ordinary wall charger; do not increase limits | kernel/platform/mt6323-charger.c kernel/platform/charger-policy.h kernel/platform/power-math.h tools/production/offline-charge.c | docs/knowledge/m4-charging.md docs/knowledge/m4-end-user-power.md docs/knowledge/hardware-final-power-evidence.md |
| F185 | Charging | CV / termination hold / recharge / protection/watchdog | Yes | Kernel | IMPLEMENTED_ENABLED | 4.175 V target;4.2 V software guard;4.110 V recharge; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Historical voltage rise and hold/recharge observations, no controlled current candidate full-cycle closure | tests/test_charger.py tests/test_offline_charging.py tests/test_power03.py | Platform status/health and Charging source-specific counters/logs; see subsystem section | No pack temp/current; configured limit is not net current | Cannot charge reliably, overheating, wrong termination | Fault latch/stop; stock-matched protections | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Attended charging/use/hold/recharge check; no claim of normal unattended use before pass | kernel/platform/mt6323-charger.c kernel/platform/charger-policy.h kernel/platform/power-math.h tools/production/offline-charge.c | docs/knowledge/m4-charging.md docs/knowledge/m4-end-user-power.md docs/knowledge/hardware-final-power-evidence.md |
| F186 | Charging | Offline charging / low-voltage boot entry / Power handover | Yes | Kernel | IMPLEMENTED_ENABLED | Yes; boot gate3.2 V, precharge3.4 V, deep-discharge cap450 mA; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Historical offline-charge bring-up; current normal entry not newly qualified | tests/test_charger.py tests/test_offline_charging.py tests/test_power03.py | Platform status/health and Charging source-specific counters/logs; see subsystem section | Off with USB may enter charging UI, not normal Linux UI | Looks dead or normal UI starts unexpectedly | Preserved stock entry + charging-only rescue path | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test powered-off cable insertion/unplug/Power at safe voltage | kernel/platform/mt6323-charger.c kernel/platform/charger-policy.h kernel/platform/power-math.h tools/production/offline-charge.c | docs/knowledge/m4-charging.md docs/knowledge/m4-end-user-power.md docs/knowledge/hardware-final-power-evidence.md |
| F187 | Charging | Charging plus playback / Wi-Fi / thermal balance | Yes | Kernel | PARTIALLY_IMPLEMENTED | Charger enabled within source policy; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | 1121.57 s voltage3.540→3.574 V under changing load; not net-current proof | tests/test_charger.py tests/test_offline_charging.py tests/test_power03.py | Platform status/health and Charging source-specific counters/logs; see subsystem section | No controlled realistic load/thermal/charge balance acceptance | Player drains while charging or excessive case heat | Lower workload/source-limited safe policy; stop on faults | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Attended combined-use acceptance with external input observation | kernel/platform/mt6323-charger.c kernel/platform/charger-policy.h kernel/platform/power-math.h tools/production/offline-charge.c | docs/knowledge/m4-charging.md docs/knowledge/m4-end-user-power.md docs/knowledge/hardware-final-power-evidence.md |
| F188 | Time | RTC read / UTC write / NTP writeback | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | rtc-policy write_enabled true; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Hardware02 NTP→RTC read/write/tick pass | tests/test_platform_network_time.py tests/test_power.py | Platform status/health and Time source-specific counters/logs; see subsystem section | Cold-power/reboot retention still separate | Clock resets or TLS update blocked | NTP when connected; signed local package | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Check reboot/off retention; no time UI project | tools/platform/y2_platform/timekeeping.py buildroot/board/y2/production-overlay/etc/init.d/S43y2-time kernel/patches/0028-mt6323-rtc-errors.patch kernel/patches/0035-mt6323-rtc-epoch-data.patch | docs/architecture/platform-network-time-v1.md docs/validation/Y2-CPU-FINAL-FIX01-PHYSICAL-QUALIFICATION.md docs/knowledge/hardware-final-power-evidence.md |
| F189 | Time | Awake RTC alarm | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Owner command available; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix01 alarm+PMIC IRQ passes awake | tests/test_platform_network_time.py tests/test_power.py | Platform status/health and Time source-specific counters/logs; see subsystem section | Not suspend wake | Alarm missed after sleep attempt | Remain awake; system sleep off | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Retain distinction | tools/platform/y2_platform/timekeeping.py buildroot/board/y2/production-overlay/etc/init.d/S43y2-time kernel/patches/0028-mt6323-rtc-errors.patch kernel/patches/0035-mt6323-rtc-epoch-data.patch | docs/architecture/platform-network-time-v1.md docs/validation/Y2-CPU-FINAL-FIX01-PHYSICAL-QUALIFICATION.md docs/knowledge/hardware-final-power-evidence.md |
| F190 | Time | NTP client / trusted-clock readiness | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | When network Online;0/1/2.pool.ntp.org; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Checked DNS/NTP and RTC write observed | tests/test_platform_network_time.py tests/test_power.py | Platform status/health and Time source-specific counters/logs; see subsystem section | Unauthenticated NTP, external DNS/time traffic | Bad time blocks TLS or misdates logs | Monotonic boot identity; local signed update | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Document traffic and clock limitation | tools/platform/y2_platform/timekeeping.py buildroot/board/y2/production-overlay/etc/init.d/S43y2-time kernel/patches/0028-mt6323-rtc-errors.patch kernel/patches/0035-mt6323-rtc-epoch-data.patch | docs/architecture/platform-network-time-v1.md docs/validation/Y2-CPU-FINAL-FIX01-PHYSICAL-QUALIFICATION.md docs/knowledge/hardware-final-power-evidence.md |
| F191 | Time | RTC alarm wake from deep suspend / Power wake | Yes | Y2Linux userspace | IMPLEMENTED_EXPERIMENTAL | Deep suspend disabled; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 RTC wakes SoC but full resume resets; Power untested | tests/test_platform_network_time.py tests/test_power.py | Platform status/health and Time source-specific counters/logs; see subsystem section | Not product-ready wake | App never resumes | Screen-off runtime idle | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Complete RTC and Power same-boot wake; distinguish awake alarm, SPM return and fully restored application, with repeated cycles. | tools/platform/y2_platform/timekeeping.py buildroot/board/y2/production-overlay/etc/init.d/S43y2-time kernel/patches/0028-mt6323-rtc-errors.patch kernel/patches/0035-mt6323-rtc-epoch-data.patch | docs/architecture/platform-network-time-v1.md docs/validation/Y2-CPU-FINAL-FIX01-PHYSICAL-QUALIFICATION.md docs/knowledge/hardware-final-power-evidence.md |
| F192 | Platform | Typed API v1 / one status worker / capability projections | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Product v2 212 retained tests include architecture guard | tests/test_platform_contract.py tests/test_platform_telemetry_regressions.py Y2Reborn:app/reborn/tests/architecture_guard.rs | Platform status/health and Platform source-specific counters/logs; see subsystem section | Backward-compatible typed sleep, codec quality and redacted diagnostic export added to APIv1; current candidate physical integration pending. | Stale UI/status or API mismatch | Versioned contracts and friendly missing state | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Validate current installed APIs and Reborn product behavior in integrated qualification. | tools/platform/y2_platform/cli.py tools/platform/y2_platform/service.py tools/platform/y2_platform/observe.py Y2Reborn:crates/reborn-platform/src/client.rs Y2Reborn:app/reborn/tests/architecture_guard.rs | docs/architecture/platform-api-v1.md Y2Reborn:docs/architecture/platform-api-boundary.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F193 | Platform | Standard Linux app-owned APIs / boundary exceptions | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Guard ALLOWED currently has10 entries; docs claim9 exceptions | tests/test_platform_contract.py tests/test_platform_telemetry_regressions.py Y2Reborn:app/reborn/tests/architecture_guard.rs | Platform status/health and Platform source-specific counters/logs; see subsystem section | Guard scans Rust literals only, not complete security isolation | New direct platform access bypasses model | Review C and dynamic strings as well | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | No architecture rewrite; update stale exception count | tools/platform/y2_platform/cli.py tools/platform/y2_platform/service.py tools/platform/y2_platform/observe.py Y2Reborn:crates/reborn-platform/src/client.rs Y2Reborn:app/reborn/tests/architecture_guard.rs | docs/architecture/platform-api-v1.md Y2Reborn:docs/architecture/platform-api-boundary.md |
| F194 | Platform | Direct Y2-specific access outside platform layer | No | Y2Linux userspace | IMPLEMENTED_DISABLED | No known production violation found; No | SOFTWARE_VALIDATED | Source search + guard; graphics splash protocol is approved exception | tests/test_platform_contract.py tests/test_platform_telemetry_regressions.py Y2Reborn:app/reborn/tests/architecture_guard.rs | Platform status/health and Platform source-specific counters/logs; see subsystem section | Core owns session std::fs despite doc statement of no I/O | Documentation overstates purity | Explicit ownership list | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Preserve legitimate ALSA/DRM/SQLite/proc APIs | tools/platform/y2_platform/cli.py tools/platform/y2_platform/service.py tools/platform/y2_platform/observe.py Y2Reborn:crates/reborn-platform/src/client.rs Y2Reborn:app/reborn/tests/architecture_guard.rs | docs/architecture/platform-api-v1.md Y2Reborn:docs/architecture/platform-api-boundary.md |
| F195 | Platform | BusyBox init / persistent data bindings / supervised platform services | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Repeated installed boots and readiness heartbeats | tests/test_platform_contract.py tests/test_platform_telemetry_regressions.py Y2Reborn:app/reborn/tests/architecture_guard.rs | Platform status/health and Platform source-specific counters/logs; see subsystem section | Most services root; no full service isolation | Failure budget exhausted leaves feature unavailable | Restart/reboot/USB maintenance | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | No init-system migration | tools/platform/y2_platform/cli.py tools/platform/y2_platform/service.py tools/platform/y2_platform/observe.py Y2Reborn:crates/reborn-platform/src/client.rs Y2Reborn:app/reborn/tests/architecture_guard.rs | docs/architecture/platform-api-v1.md Y2Reborn:docs/architecture/platform-api-boundary.md |
| F196 | Platform | Scoped reset / export / maintenance journal | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Explicit command/UI operations; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host interrupted reset/WAL backup/path tests | tests/test_platform_contract.py tests/test_platform_telemetry_regressions.py Y2Reborn:app/reborn/tests/architecture_guard.rs | Platform status/health and Platform source-specific counters/logs; see subsystem section | Physical reset/power-loss cases not all qualified; full wipe hidden | Partial maintenance marker inhibits startup | Resume journal/quarantine, preserve files | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | One settings-only reset and recovery smoke | tools/platform/y2_platform/cli.py tools/platform/y2_platform/service.py tools/platform/y2_platform/observe.py Y2Reborn:crates/reborn-platform/src/client.rs Y2Reborn:app/reborn/tests/architecture_guard.rs | docs/architecture/platform-api-v1.md Y2Reborn:docs/architecture/platform-api-boundary.md |
| F197 | Diagnostics | Boot/CPU/memory/thermal/timer/idle/suspend/storage telemetry | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes via y2-platform and sysfs; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Fix02 raw journal/status and storage counters; current SD diagnostic source | tests/test_platform_evidence.py tests/test_platform_measurement.py Y2Reborn:crates/reborn-observability/src/lib.rs | Platform status/health and Diagnostics source-specific counters/logs; see subsystem section | Reading a field is not subsystem qualification | Stale/missing counters or ambiguous labels | Raw retained source-bound receipts | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep counters; no diagnostic rewrite | tools/platform/y2_platform/boot.py tools/platform/y2_platform/health.py tools/platform/y2_platform/collect.py Y2Reborn:crates/reborn-observability/src/lib.rs Y2Reborn:app/reborn/src/diagnostics.rs Y2Reborn:crates/reborn-ui/src/diagnostics.rs | docs/architecture/platform-api-v1.md docs/architecture/platform-maintenance-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F198 | Diagnostics | Wi-Fi/BT/audio/USB/battery/charging/OTA/service diagnostics | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; UI Diagnostics; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Physical traces identify USB/radio faults; player metrics available | tests/test_platform_evidence.py tests/test_platform_measurement.py Y2Reborn:crates/reborn-observability/src/lib.rs | Platform status/health and Diagnostics source-specific counters/logs; see subsystem section | Some properties unsupported; timestamps may lack trusted wall clock | Misreported disconnect or current | Boot ID/monotonic time; explicit unavailable | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Preserve truthful values; clarify decoder_stalls | tools/platform/y2_platform/boot.py tools/platform/y2_platform/health.py tools/platform/y2_platform/collect.py Y2Reborn:crates/reborn-observability/src/lib.rs Y2Reborn:app/reborn/src/diagnostics.rs Y2Reborn:crates/reborn-ui/src/diagnostics.rs | docs/architecture/platform-api-v1.md docs/architecture/platform-maintenance-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F199 | Diagnostics | Persistent logs / previous boot / crash bundles | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Syslog2×256 KiB; bounded Reborn logs and bundles; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Physical boot history/SRAM receipts; host redaction/bounds tests | tests/test_platform_evidence.py tests/test_platform_measurement.py Y2Reborn:crates/reborn-observability/src/lib.rs | Platform status/health and Diagnostics source-specific counters/logs; see subsystem section | Buffered tail can be lost on power failure; no guaranteed panic persistence | Missing cause after hard power loss | Warm-reset SRAM and external observation | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Verify log export after one reboot/crash | tools/platform/y2_platform/boot.py tools/platform/y2_platform/health.py tools/platform/y2_platform/collect.py Y2Reborn:crates/reborn-observability/src/lib.rs Y2Reborn:app/reborn/src/diagnostics.rs Y2Reborn:crates/reborn-ui/src/diagnostics.rs | docs/architecture/platform-api-v1.md docs/architecture/platform-maintenance-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F200 | Diagnostics | Tester-friendly unified diagnostic export | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Reborn bundle via control CLI; UI Export Player Data is state backup; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Source UI export calls export-state --include-database, not diagnostic bundle | tests/test_platform_evidence.py tests/test_platform_measurement.py Y2Reborn:crates/reborn-observability/src/lib.rs | Platform status/health and Diagnostics source-specific counters/logs; see subsystem section | Separate redacted tester export, reserve/privacy tests, Reborn action and hash-verified computer retrieval implemented. | Tester submits private DB or cannot retrieve useful logs | Redacted rebornctl diagnostic plus documented SFTP retrieval | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Create/retrieve current candidate export and review useful redacted counters/log-event summaries. | tools/platform/y2_platform/boot.py tools/platform/y2_platform/health.py tools/platform/y2_platform/collect.py Y2Reborn:crates/reborn-observability/src/lib.rs Y2Reborn:app/reborn/src/diagnostics.rs Y2Reborn:crates/reborn-ui/src/diagnostics.rs | docs/architecture/platform-api-v1.md docs/architecture/platform-maintenance-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F201 | Diagnostics | Retention across abrupt power loss | Yes | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Best effort persistent writes; warm SRAM only; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Warm reset verified; cold-loss durability not established | tests/test_platform_evidence.py tests/test_platform_measurement.py Y2Reborn:crates/reborn-observability/src/lib.rs | Platform status/health and Diagnostics source-specific counters/logs; see subsystem section | No pstore/ramoops guarantee | Last fault lost | Manual report + surviving boot/log state | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Explain limits, do not demand perfect crash capture | tools/platform/y2_platform/boot.py tools/platform/y2_platform/health.py tools/platform/y2_platform/collect.py Y2Reborn:crates/reborn-observability/src/lib.rs Y2Reborn:app/reborn/src/diagnostics.rs Y2Reborn:crates/reborn-ui/src/diagnostics.rs | docs/architecture/platform-api-v1.md docs/architecture/platform-maintenance-v1.md docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md |
| F202 | Update | Signed manifest / Ed25519 verifier / staging / replay policy | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes development trust; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Real native C/crypto host fault tests and ARM receipts | tests/test_platform_update.py tests/test_update_qualification.py tests/test_system_update_fallback.py | Platform status/health and Update source-specific counters/logs; see subsystem section | Development key with downgrade permission; not production trust | Invalid bundle refused; bad policy may allow unwanted rollback | No public channel; manual paired update | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Use public release registry only if enabling OTA | tools/update/core.c tools/update/package.py tools/update/trust.json tools/platform/y2_platform/update.py initramfs/production/init | docs/architecture/platform-update-v1.md docs/validation/PLATFORM-V1-COMPLETION.md |
| F203 | Update | Rescue offline root writer / backup / readback / health ACK rollback | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Available, physical gate pending; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Host torn-write/readback/health/backup tests only | tests/test_platform_update.py tests/test_update_qualification.py tests/test_system_update_fallback.py | Platform status/health and Update source-specific counters/logs; see subsystem section | No physical integrated install/restore/interruption acceptance | Failed root plus bad backup strands in rescue | External manual BOOTIMG/Y2ROOT recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Qualify recovery/rollback required by chosen preserving update path. Automated root writer can stay inaccessible only if verified manual recovery covers beta1-to-beta2. | tools/update/core.c tools/update/package.py tools/update/trust.json tools/platform/y2_platform/update.py initramfs/production/init | docs/architecture/platform-update-v1.md docs/validation/PLATFORM-V1-COMPLETION.md |
| F204 | Update | Root-only OTA / Reborn delivered in root | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Configured channel or explicit local bundle; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No public OTA channel; candidate root must match rescue kernel | tests/test_platform_update.py tests/test_update_qualification.py tests/test_system_update_fallback.py | Platform status/health and Update source-specific counters/logs; see subsystem section | Reborn updated via root image, not independent app store | Incompatible kernel/schema refuses | Preserving manual paired release | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Beta2 manual update is acceptable if tested/documented | tools/update/core.c tools/update/package.py tools/update/trust.json tools/platform/y2_platform/update.py initramfs/production/init | docs/architecture/platform-update-v1.md docs/validation/PLATFORM-V1-COMPLETION.md |
| F205 | Update | Automatic BOOTIMG/kernel/DT OTA / A-B slots | Yes | Y2Linux userspace | NOT_IMPLEMENTED | No; No | UNTESTED | Single-slot rescue layout intentional | None | Not applicable; no implemented capability | Torn BOOTIMG can remove Linux rescue | Apparent brick | Stock-loader external flash | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Do not build A/B or boot OTA this week | tools/update/core.c tools/update/package.py tools/update/trust.json tools/platform/y2_platform/update.py initramfs/production/init | docs/architecture/platform-update-v1.md docs/validation/PLATFORM-V1-COMPLETION.md |
| F206 | Update | Release signing authority / rotation / public channel | Yes | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Only dev trust; no default endpoint; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Public key registry implemented; no production provision evidence | tests/test_platform_update.py tests/test_update_qualification.py tests/test_system_update_fallback.py | Platform status/health and Update source-specific counters/logs; see subsystem section | Root-only OTA cannot revoke keys in old immutable rescue | Compromised key remains trusted | Manual rescue trust replacement; OTA disabled | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Decide manual beta update path; no mandatory new server | tools/update/core.c tools/update/package.py tools/update/trust.json tools/platform/y2_platform/update.py initramfs/production/init | docs/architecture/platform-update-v1.md docs/validation/PLATFORM-V1-COMPLETION.md |
| F207 | Recovery | Failed Reborn / startup crash / bad settings | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Bounded supervisor; reset UI/CLI; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Supervisor retries and host app tests; current failure UI unqualified | tests/test_platform_maintenance.py tests/test_system_update_fallback.py Y2Reborn:crates/reborn-library/src/lib.rs | Platform status/health and Recovery source-specific counters/logs; see subsystem section | No UI after five rapid exits; SSH prerequisite | Tester lockout when app fails | USB key access and known root reflash | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Rehearse crash recovery with tester instructions | tools/platform/y2_platform/maintenance.py buildroot/package/reborn/reborn-supervise initramfs/production/init Y2Reborn:crates/reborn-library/src/lib.rs | docs/architecture/platform-maintenance-v1.md docs/architecture/production-recovery.md |
| F208 | Recovery | Corrupt library DB / operational DB errors | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Real SQLite corruption/quarantine/WAL/interruption tests | tests/test_platform_maintenance.py tests/test_system_update_fallback.py Y2Reborn:crates/reborn-library/src/lib.rs | Platform status/health and Recovery source-specific counters/logs; see subsystem section | Future schema/locks/full disk correctly refused, not wiped | Library unavailable; evidence retained | Quarantine proven corruption, rebuild index from music | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Keep behavior; one disposable-DB smoke | tools/platform/y2_platform/maintenance.py buildroot/package/reborn/reborn-supervise initramfs/production/init Y2Reborn:crates/reborn-library/src/lib.rs | docs/architecture/platform-maintenance-v1.md docs/architecture/production-recovery.md |
| F209 | Recovery | Broken Wi-Fi/BT credentials / bonds | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Forget/toggle/reconnect and maintenance APIs; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Prior radio forget observations; latest peer lifecycle pending | tests/test_platform_maintenance.py tests/test_system_update_fallback.py Y2Reborn:crates/reborn-library/src/lib.rs | Platform status/health and Recovery source-specific counters/logs; see subsystem section | Radio reset shared CONSYS may interrupt other link | No network/audio after stale state | UI forget and USB maintenance | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Verify per-radio reset preserves unrelated data | tools/platform/y2_platform/maintenance.py buildroot/package/reborn/reborn-supervise initramfs/production/init Y2Reborn:crates/reborn-library/src/lib.rs | docs/architecture/platform-maintenance-v1.md docs/architecture/production-recovery.md |
| F210 | Recovery | Bad root / update / storage failure external rescue | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Known fallback package; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | Owner manual recovery exists; public procedure currently historical and coordinate-sensitive | tests/test_platform_maintenance.py tests/test_system_update_fallback.py Y2Reborn:crates/reborn-library/src/lib.rs | Platform status/health and Recovery source-specific counters/logs; see subsystem section | Current install.md/recovery docs must match selected package and host | Wrong offset/profile destroys user data | Exact preserved pair via Download Only and checksum verification | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B,D | Make current recovery walkthrough a release gate | tools/platform/y2_platform/maintenance.py buildroot/package/reborn/reborn-supervise initramfs/production/init Y2Reborn:crates/reborn-library/src/lib.rs | docs/architecture/platform-maintenance-v1.md docs/architecture/production-recovery.md |
| F211 | Recovery | Y2DATA preservation across paired updates | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Preserve-data package excludes USRDATA; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Historical owner updates retain state; latest rollback/schema scenarios software only | tests/test_platform_maintenance.py tests/test_system_update_fallback.py Y2Reborn:crates/reborn-library/src/lib.rs | Platform status/health and Recovery source-specific counters/logs; see subsystem section | Database/settings/bonds need exact RC upgrade check | Loss of settings or calibration if wrong profile | Backup and profile validation | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B | Test settings/library/Wi-Fi/bonds before/after preserving upgrade | tools/platform/y2_platform/maintenance.py buildroot/package/reborn/reborn-supervise initramfs/production/init Y2Reborn:crates/reborn-library/src/lib.rs | docs/architecture/platform-maintenance-v1.md docs/architecture/production-recovery.md |
| F212 | Security | Root passwords / SSH keys / USB-only listener | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Root password !; key-only USB10.42.0.1:22+usb0; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Source fixed Dropbear args and fail-closed binding; historical listener observations | tests/test_platform_transfer.py tests/test_owner_data.py tests/test_platform_update.py | Platform status/health and Security source-specific counters/logs; see subsystem section | Root owner access powerful; latest image must contain no maintainer credentials | Unexpected remote shell if packaging/bind regresses | Refuse startup without owner key/CRNG/interface | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Release scan image/ports; never ship universal access key | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md |
| F213 | Security | Per-owner provisioning / accidental credential carryover | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Owner-specific seed tool; current private package lineage; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | No universal default password found in production config | tests/test_platform_transfer.py tests/test_owner_data.py tests/test_platform_update.py | Platform status/health and Security source-specific counters/logs; see subsystem section | Fresh empty Y2DATA initialization tool requires only owner public key and validated paired system package; no maintainer seed or private key input. | All devices trust maintainer or expose someone else's credentials | Fresh personal public key + device-generated host keys | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,D | Owner rehearse first install; preserve device calibration/protected partitions. | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F214 | Security | Root Reborn / malformed-media attack surface | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Reborn and most services root; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | FFmpeg bounded local decoder and malformed fixtures; no sandbox | tests/test_platform_transfer.py tests/test_owner_data.py tests/test_platform_update.py | Platform status/health and Security source-specific counters/logs; see subsystem section | A parser exploit could control device; no formal vulnerability audit | Compromised device from malicious media | Trusted local music, maintained pinned libraries; disable unneeded network inputs | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Do targeted dependency/advisory review; no privilege architecture rewrite | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md |
| F215 | Security | LSM/KASLR/secure boot / unprivileged upload isolation | Yes | Y2Linux userspace | NOT_IMPLEMENTED | CONFIG_SECURITY=n, RANDOMIZE_BASE=n; no secure boot added; No | UNTESTED | Source config; no security hardening qualification | None | Not applicable; no implemented capability | Trusted owner model only; no multiuser promise | Root/physical owner can replace system | USB key boundary and preserved loaders | EXPERIMENTAL_POST_BETA | NOT_REQUIRED / false | NOT_APPLICABLE_TO_CURRENT_PUBLIC_TARGET | F | Document; defer broad sandbox/hardening redesign | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md |
| F216 | Security | Local control sockets / permissions / service exposure | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | Private Unix sockets, root peer checks; no HTTP upload service; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Permission/path/peer tests; NTP client only, no server flag | tests/test_platform_transfer.py tests/test_owner_data.py tests/test_platform_update.py | Platform status/health and Security source-specific counters/logs; see subsystem section | Need final-image listening-socket audit; diagnostic root surfaces remain | Unexpected listener or unprivileged command access | Fail closed permissions; radio off | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | One RC exposure audit, fail release on any default credential/open endpoint | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md |
| F217 | Security | Privacy / external contacts / identifiers | Yes | Y2Linux userspace | IMPLEMENTED_ENABLED | DNS probe pool.ntp.org +NTP when online; explicit HTTPS update only; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Source search finds no analytics/automatic log uploader in project services | tests/test_platform_transfer.py tests/test_owner_data.py tests/test_platform_update.py | Platform status/health and Security source-specific counters/logs; see subsystem section | MAC/SSID/BT names/library metadata exist in local private evidence; opaque radio firmware internals unaudited | Accidental private diagnostic/state publication | Redacted diagnostic bundle; explicit user export | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Document DNS/NTP traffic and review shareable bundle | buildroot/configs/y2_production_defconfig tools/platform/y2_platform/ssh.py buildroot/patches/dropbear/0001-y2-require-requested-interface-binding.patch buildroot/package/reborn/S90reborn kernel/config/production.config | docs/architecture/platform-usb-v1.md docs/build/platform-v1-reconstruction.md docs/architecture/platform-update-v1.md |
| F218 | Release | Pinned source/toolchain/Cargo/Buildroot inputs | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Linux6.18, Buildroot2025.02.18, FFmpeg9.0.2, Rust1.90; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Candidate2 sealed current pair, ARM/ELF/package checks pass | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Host tools influence builds; source pins not vulnerability approval | Unreconstructable or wrong dependencies | Exact bundles/locks/cache | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | One clean RC build with complete inventory | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F219 | Release | Byte-identical clean image reproduction | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | BR2_REPRODUCIBLE yes; not demonstrated; Path active when invoked; source/candidate scope, not proof of current runtime | UNTESTED | Source reconstruction documented, not two equal image hashes | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Filesystem metadata/host paths/tool versions can affect bytes | Maintainer cannot reproduce artifact byte-for-byte | Publish exact hashes, locks, receipts, source identity | ACCEPTABLE_BETA_LIMITATION | NOT_REQUIRED / false | NOT_SEPARATELY_ASSESSED | E | Require repeatable build procedure; defer formal bit identity | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F220 | Release | Packaging / hashes / dependency closure / modules in BOOTIMG | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Yes; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Software receipt only: candidate3 301 production/platform tests with3 skips, ARM/QEMU, ELF/package/inventory/legal-info checks PASS; unchanged Reborn212 tests retained | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Exact release composition/capability generation and actual-image private-state rejection added; fresh integration build/package pending. | Mismatch boots wrong app/kernel or missing library | Paired validated package and fixed fallback | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | Seal only fresh matching kernel/root/Reborn and pass full package/dependency/privacy validation. | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F221 | Release | Firmware/Wi-Fi/BT blobs / stock defaults distribution | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Owner supplied seven checked files embedded privately; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | provision.py explicitly redistribution_permission_established=false | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | No public redistribution permission established; calibration must remain per-device | Unpublishable image or wrong radio identity | Owner extracts matching files locally; restricted compatibility | CORE_RELEASE_FEATURE | REQUIRED / false | OWNER_ONLY_PERMISSION_NOT_ESTABLISHED | A,D | Resolve permission or lawful tested owner-local firmware delivery, without generic calibration/owner blobs; release distribution gate. | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F222 | Release | Optional private codec profile distribution | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | BR2_PACKAGE_Y2_CODEC_EXPERIMENTS=y; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | AAC/freeaptx/LDAC included, disabled endpoints still ship libraries | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Licenses/NOTICE/product permissions unresolved; legal-info not clearance | Distributing unreviewed components | Public SBC-only package is a possible explicitly accepted distribution exception if rights block other codecs; it does not complete technical codec targets | CORE_RELEASE_FEATURE | REQUIRED / false | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED | A,D | Resolve public packaging rights/notices for feature-target AAC/aptX/HD/LDAC. A legally necessary exclusion is a documented distribution exception, not post-beta technical priority. | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F223 | Release | OSS source/notices / legal-info completeness | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Collected per candidate; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Legal-info succeeds but warns Bootlin/Buildroot/local package omissions | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Need actual corresponding source/notices; hashes alone insufficient | Noncompliant distribution or unusable license bundle | Supply reviewed sources/licenses with release | CORE_RELEASE_FEATURE | REQUIRED / false | SOURCE_NOTICES_INCOMPLETE | A,D | Close collector gaps and publish exact source offer/archive plan | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F224 | Release | Community install/recovery/docs host compatibility | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Developer runbooks and generated preserving package; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | One-owner evidence; no independent tester walkthrough | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Tester guide and standalone Linux first-owner generator/transfer/export/recovery workflow present; new-owner and cross-host rehearsals pending. | Tester erases data or cannot boot/copy/recover | Supported host procedure, personalized first install, known recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,D | Rehearse first install, preserving beta update and recovery with a community tester. | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F225 | Release | Hardware revision / eMMC / display / battery compatibility | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Exact Innioasis Y2 MT6582/eastaeon82_wet_kk assumptions; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | One observed board/SD128 card; exact eMMC geometry/EXT_CSD | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | No verified cross-revision matrix; no evidence that every Y2 is identical | Mismatch rails/panel/layout can be unsafe or unbootable | Reject unmatched layout/product; retain stock backup | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,D | State restricted supported identity and preflight checks; unsupported revisions stop | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F226 | Release | Manual beta2 preserving upgrade | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Existing BOOTIMG+Y2ROOT tool; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Owner upgrades historically work; current public workflow incomplete | tests/test_production_prepare.py tests/test_system_update_fallback.py tests/test_owner_data.py tests/test_reborn_receipts.py | Platform status/health and Release source-specific counters/logs; see subsystem section | Computer required; no proven OTA | Wrong profile wipes data | Only preserve-data scatter and matching pair | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | B,D | Rehearse once; explicitly accept manual beta2 as limitation | tools/production/build.py tools/production/system_update.py tools/production/package.py tools/production/owner_data.py tools/production/release_inventory.py tools/connectivity/provision.py | docs/build/platform-v1-reconstruction.md docs/architecture/production-install.md docs/validation/Y2-STORAGE-CEILING.md docs/validation/Y2-SD-SDR104-DIAG.md |
| F227 | Qualification | Host unit/integration / native ARM QEMU / image tests | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Available in build tooling; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Software receipt only: candidate3 301 production/platform tests with3 skips, ARM/QEMU, ELF/package/inventory/legal-info checks PASS; unchanged Reborn212 tests retained | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | Candidate3 software receipt exists; candidate4 and RC not qualified | Green software falsely treated as hardware success | Exact source-qualified receipts and distinct hardware gate | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | D | One full RC software gate; targeted fixes thereafter | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md |
| F228 | Qualification | Physical regression / realistic-library test | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Owner harness and retained reports; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_QUALIFIED | Fix02 strong CPU/storage baseline; latest storage quick check only | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | No full current integrated candidate pass | Cross-subsystem regression unseen | Safe profiles, rollback pair | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Qualify full selected product including sleep, high-resolution audio and codec set; preserve bounded prior results separately. | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md |
| F229 | Qualification | Wired/Bluetooth/screen-off/coexistence endurance | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Collector profiles exist, not automatic workouts; Path active when invoked; source/candidate scope, not proof of current runtime | UNTESTED | No completed comparable 8h current release report located | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | Profile name is not executed endurance; short tests insufficient for core beta claim | Delayed audio/thermal/storage/service failure | Stop release on required feature/safety failure; restrict a mode only for evidenced compatibility/hardware/distribution limits | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Run integrated wired/high-resolution/codec/sleep/coexistence endurance with actual workloads and sound checks; no qualification by collector alone. | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md |
| F230 | Qualification | Repeated USB/storage/scan/boot tests | No | Y2Linux userspace | PARTIALLY_IMPLEMENTED | Harnesses available; Path active when invoked; source/candidate scope, not proof of current runtime | PHYSICALLY_OBSERVED | USB Fix02 failed0/10; storage hash rounds pass older modes; scans1k/10k/20k | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | Latest unified modes and package unqualified | Transport loss, dirty filesystem or state loss after reboot | PIO/safe storage profiles; known recovery | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | 10 boots/cable cycles, hashes, realistic scan and preserving update | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md |
| F231 | Qualification | Suspend endurance cycles | No | Y2Linux userspace | IMPLEMENTED_DISABLED | Not ordinary product behavior; No | UNTESTED | Five RTC cycles never reached after failed full resume | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | Full resume prerequisite absent | Repeated reset/lost recovery | Disable full sleep | CORE_RELEASE_FEATURE | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Enable controlled suspend-cycle qualification tooling after same-boot wake is repaired; required release evidence, not post-beta. | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md |
| F232 | Qualification | Tester documentation / useful bug report workflow | No | Y2Linux userspace | IMPLEMENTED_ENABLED | Scattered developer docs; Path active when invoked; source/candidate scope, not proof of current runtime | SOFTWARE_VALIDATED | Current UI navigation docs exist; no full community manual | tests/test_platform_qualification.py tests/test_platform_measurement.py | Platform status/health and Qualification source-specific counters/logs; see subsystem section | One integrated qualification entrypoint plus tester guide and redacted bug export implemented; physical cases remain explicit. | Bad report, wrong instructions, tester confusion | Single release guide and bundle button/path | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,D | Owner execute one candidate qualification run, provide equipment/peer/listening observations where automation cannot prove outcome. | tools/host/qualify.py tools/platform/y2_platform/collect.py tools/production/tests.sh | docs/validation/Y2-CPU-FINAL-FIX02-PHYSICAL-QUALIFICATION.md docs/validation/PLATFORM-V1-HARDWARE-CEILING.md docs/validation/Y2-STORAGE-CEILING.md docs/release/Y2-COMMUNITY-BETA-IMPLEMENTATION-PASS.md |
| F233 | Storage | Candidate4 SD stock input pads / selectable card driver / expanded lab | Yes | Kernel | IMPLEMENTED_EXPERIMENTAL | Source: SD Schmitt enabled and RDSEL/TDSEL zero; card type B default; A/C/D lab-selectable; Sealed candidate4 source dcbd7d1; not reported flashed | SOFTWARE_VALIDATED | No candidate4 physical qualification; candidate3 pad readback motivates code, not proof of its result | tests/test_storage_ceiling.py tests/test_sd_tuning.py tests/test_storage_recovery.py tests/test_mmc_requests.py | Platform status/health and Storage source-specific counters/logs; see subsystem section | Inherited candidate4 source controls remain available; bounded UART01 inserted-SD integrity passes, but exhaustive pad/card-drive/ceiling qualification is not established by CPU-idle tests. | SD instability or regression despite stock-derived setting; unsafe lab setting | Retain verified HS3.3V50MHz recovery fallback; choose fastest robust final ceiling after qualification; public lab controls gated | FEATURE_COMPLETE_TARGET | REQUIRED / false | NOT_SEPARATELY_ASSESSED | A,B | Evaluate the inherited stock SD input/card-drive controls only in a separately scoped mode campaign if needed; preserve current negotiated mode/fallback. Baseline02 idle integrity does not qualify every SD ceiling. | kernel/platform/pinctrl.c kernel/platform/storage-modes.h kernel/patches/0009-y2-msdc-readonly.patch tests/test_sd_tuning.py | docs/validation/Y2-SD-SDR104-DIAG.md docs/validation/Y2-BASELINE-02.md docs/validation/Y2-CPU-C3-UART-PHYSICAL.md |
4. KERNEL / DRIVERS
Production is Linux 6.18, ARMv7 little-endian Cortex-A7, EABI hard-float userspace, four SMP CPUs, HZ100, high-resolution timers/NO_HZ_IDLE, NEON/VFP, HIGHMEM and standard proc/sysfs/evdev/ALSA/DRM interfaces. LPAE, virtualization, swap, CMA, kexec/crash dump, module unloading, generic DMA engines, GPIO userspace and /dev/mem are disabled. Driver-managed DMA remains used by individual peripherals. CONFIG_SECURITY=n and CONFIG_RANDOMIZE_BASE=n must not be described as a hardened sandbox.
The production DTS includes the main board DTS. Memory begins at 0x80000000, length 0x3e000000; the loader reservation is 0x81800000 + 0x02800000, and high/radio reservation 0xbdf00000 + 0x02100000. Physical01 reported 952288 KiB MemTotal. Neither the advertised RAM window nor measured free RAM licenses changing reservations. BOOTIMG owns modules, carried into /run/y2/modules then bind-mounted into root. Preserve the existing boot budgets and mapping. Sources: production config, board DT, production DT, init.
Project platform code also supplies clocks, pinctrl/EINT, PWRAP write policy, MT6323 ADC/charger, thermal, SPM/CIRQ, retained PM journal, USB PHY/MUSB, APT32F wheel, keypad, panel/backlight, MFG clock/domain, audio machine/AFE and native CONSYS/BTIF/Wi-Fi adaptation. The vendor Wi-Fi subtree is substantial; its unused AP/P2P/BOW/WAPI paths and TODOs are not automatically supported features. No current speaker/AW87559 or FM product path was found; historical stock bindings are not implementation evidence.
Every active Y2 kernel patch
All 49 .patch files are present in the active overlay manifest; there are no orphan patches among these files. Missing numbers0040–0051 are not evidence of missing functionality. Build integration also copies platform source, so patch count alone is not driver coverage. Risk below means the cost of changing it; evidence is deliberately scoped. No patch is proved obsolete by this audit. In particular0009's name is obsolete, its implementation is not.
| Patch | Subsystem / purpose | Current state / change risk | Test and physical evidence | Obsolete? |
|---|---|---|---|---|
| 0001-arm-allow-explicit-virt-ext-disable.patch | Boot: Explicitly allow ARM virtualization extension disable for retained stock handoff | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_bootimg.py, tests/test_production_handover.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0002-y2-Kconfig.patch | Kernel: Admit Y2 board/platform Kconfig | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_dev_foundation.py, tests/test_dev_abi.py, tests/test_overlays.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0003-y2-mediatek-c.patch | Boot: Y2 machine early boot integration | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_bootimg.py, tests/test_production_handover.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0004-y2-head-S.patch | Boot: Compressed-kernel handoff and early board requirements | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_bootimg.py, tests/test_production_handover.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0005-y2-drivers.patch | Kernel: Wire project platform drivers into upstream build | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_dev_foundation.py, tests/test_dev_abi.py, tests/test_overlays.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0006-mt6582-smp.patch | CPU: MT6582 secondary-core boot and checked hotplug | Active / High | UART01 bounded timer/hotplug/five-OPP and real C3 return regression PASS; inherited kernel architecture in Baseline02, new-image automatic boot pending. No isolated per-patch proof inferred. tests: tests/test_cpu_dvfs.py, tests/test_workload_qos.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0007-y2-pmic-keys.patch | Input: MT6323 key behavior/PMIC input integration | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_dev_wheel.py, tests/test_evdev.py, Y2Reborn:crates/reborn-platform/src/input.rs, Y2Reborn:crates/reborn-ui/src/tests.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0008-mt6582-i2c.patch | Kernel: MT6582 I2C controller variant | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_dev_foundation.py, tests/test_dev_abi.py, tests/test_overlays.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0009-y2-msdc-readonly.patch | Storage: MSDC addressing/write firewall, PM, ceilings, tuning, CRC fallback and lab diagnostics; filename readonly is historical | Active / High | UART01 eMMC and inserted-SD fsynced integrity after C2/C3 passes, no errors. This does not qualify every high-speed/card-drive/fault scenario. tests: tests/test_storage_ceiling.py, tests/test_sd_tuning.py, tests/test_storage_recovery.py, tests/test_mmc_requests.py | No removal justified by this audit; 0009 name is stale, not its functionality |
| 0010-mt6582-mmsys.patch | Display: MT6582 MMSYS routes | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0011-mt6582-mutex.patch | Display: Display mutex resources/ownership | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0012-mt6582-drm.patch | Display: Mediatek DRM MT6582 component support | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0013-mt6582-color.patch | Display: MT6582 color component integration | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0014-mt6582-ovl.patch | Display: MT6582 overlay integration | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0015-mt6582-rdma.patch | Display: MT6582 RDMA path | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0016-mt6582-phy.patch | Display: MT6582 MIPI PHY integration | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0017-mt6582-dsi.patch | Display: DSI variant, display timing and lifecycle | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0018-mt6582-crtc.patch | Display: CRTC integration and display lifecycle | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0019-y2-eint-library.patch | Input: Make EINT support available to board interrupt owner | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_dev_wheel.py, tests/test_evdev.py, Y2Reborn:crates/reborn-platform/src/input.rs, Y2Reborn:crates/reborn-ui/src/tests.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0020-mt6582-phy-ops.patch | Display: Variant-specific MIPI PHY ops | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_baseline_display.py, tests/test_reborn_splash.py, tests/test_gpu.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0021-mt6582-audio-Makefile.patch | Audio: Build MT6582 audio objects | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_audio.py, tests/test_audio_clocks.py, Y2Reborn:crates/reborn-media/src/native.rs, Y2Reborn:crates/reborn-audio/src/native.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0022-mt6582-audio-Kconfig.patch | Audio: Expose MT6582 audio Kconfig | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_audio.py, tests/test_audio_clocks.py, Y2Reborn:crates/reborn-media/src/native.rs, Y2Reborn:crates/reborn-audio/src/native.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0023-y2-stock-emmc-capacity.patch | Storage: Preserve stock eMMC reported capacity/address compatibility | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_storage_ceiling.py, tests/test_sd_tuning.py, tests/test_storage_recovery.py, tests/test_mmc_requests.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0024-mt6323-power-children.patch | Charging: MT6323 power child devices | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_charger.py, tests/test_offline_charging.py, tests/test_power03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0025-mt6323-wake-order.patch | Suspend: Order PMIC wake/interrupt restoration | Active / High | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_suspend_policy.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0026-mt6323-pm-state.patch | Suspend: Retain PMIC PM state | Active / High | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_suspend_policy.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0027-mt6323-poweroff-atomic.patch | Charging: Atomic-safe MT6323 hardware poweroff | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_charger.py, tests/test_offline_charging.py, tests/test_power03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0028-mt6323-rtc-errors.patch | Time: Propagate RTC errors correctly | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_platform_network_time.py, tests/test_power.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0029-y2-retain-emmc-s2idle.patch | Storage: Retain/reinitialize eMMC safely through system sleep | Active / High | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_storage_ceiling.py, tests/test_sd_tuning.py, tests/test_storage_recovery.py, tests/test_mmc_requests.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0030-cs43130-system-pm.patch | DAC: CS43130/31 system PM and codec error lifecycle | Active / Medium | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_audio.py, tests/test_audio_clocks.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0031-y2-usb-power-budget.patch | USB: Bound composite gadget advertised USB power budget | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_usb_failure.py, tests/test_cpu_fix03.py, tests/test_platform_transfer.py, tests/test_usb_reconnect.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0032-ext4-state-ialloc.patch | Filesystem: Backport4091c8206cfd: remove late i_state_flags clear from ext4 inode allocation (ialloc.c) | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_platform_storage_tools.py, tests/test_platform_transfer.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0033-ext4-state-inode.patch | Filesystem: Backport4091c8206cfd: remove late i_state_flags clear from ext4 inode loading (inode.c) | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_platform_storage_tools.py, tests/test_platform_transfer.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0034-ext4-state-super.patch | Filesystem: Backport4091c8206cfd: initialize i_state_flags in ext4_alloc_inode (super.c); closes inode reuse race | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_production_storage.py, tests/test_platform_storage_tools.py, tests/test_platform_transfer.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0035-mt6323-rtc-epoch-data.patch | Time: MT6323 RTC epoch/platform data | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_platform_network_time.py, tests/test_power.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0036-mt6582-efuse-word-access.patch | CPU: MT6582 efuse word access for silicon identity | Active / Medium | UART01 bounded timer/hotplug/five-OPP and real C3 return regression PASS; inherited kernel architecture in Baseline02, new-image automatic boot pending. No isolated per-patch proof inferred. tests: tests/test_cpu_dvfs.py, tests/test_workload_qos.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0037-mt6582-consys-reset.patch | Bluetooth: CONSYS reset provider without assuming AP watchdog policy | Active / High | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_platform_bluetooth.py, tests/test_connectivity.py, Y2Reborn:crates/reborn-platform/src/bluetooth.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0038-lima-initial-runtime-idle.patch | GPU: Lima initial runtime idle without permanent power hold | Active / Medium | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_gpu.py, Y2Reborn:crates/reborn-graphics/src/lib.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0039-mt6582-mali-binding.patch | GPU: MT6582 Mali DT binding | Active / Low | Repeated older production boot/subsystem observation; no isolated per-patch physical proof; tests: tests/test_gpu.py, Y2Reborn:crates/reborn-graphics/src/lib.rs | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0052-y2-gpt6-counter.patch | Idle: GPT6 counter initialization and ownership | Active / High | UART01 bounded timer/hotplug/five-OPP and real C3 return regression PASS; inherited kernel architecture in Baseline02, new-image automatic boot pending. No isolated per-patch proof inferred. tests: tests/test_cpu_final.py, tests/test_slow_idle.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0053-y2-local-timer-guard.patch | Idle: Guard and calibrate local architectural timer admission | Active / High | UART01 bounded timer/hotplug/five-OPP and real C3 return regression PASS; inherited kernel architecture in Baseline02, new-image automatic boot pending. No isolated per-patch proof inferred. tests: tests/test_cpu_final.py, tests/test_slow_idle.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0054-y2-inventra-dma.patch | USB: Compile Inventra DMA for Y2 MUSB | Active / Medium | UART01 repaired USB path passes three 1 MiB bidirectional checksum rounds with independent Wi-Fi observer; broader endurance and Baseline02 new-image checks remain. Earlier loaded failure is historical. tests: tests/test_usb_failure.py, tests/test_cpu_fix03.py, tests/test_platform_transfer.py, tests/test_usb_reconnect.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0055-musb-abort-bus-error.patch | USB: Abort DMA bus error safely | Active / High | UART01 repaired USB path passes three 1 MiB bidirectional checksum rounds with independent Wi-Fi observer; broader endurance and Baseline02 new-image checks remain. Earlier loaded failure is historical. tests: tests/test_usb_failure.py, tests/test_cpu_fix03.py, tests/test_platform_transfer.py, tests/test_usb_reconnect.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0056-y2-cpufreq-voltage-owner.patch | CPU: Use platform-owned safe voltage sequencing for cpufreq-dt | Active / High | UART01 bounded timer/hotplug/five-OPP and real C3 return regression PASS; inherited kernel architecture in Baseline02, new-image automatic boot pending. No isolated per-patch proof inferred. tests: tests/test_cpu_dvfs.py, tests/test_workload_qos.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0057-u-ether-align-dma-tx.patch | USB: Align Ethernet gadget DMA transmit buffers | Active / High | UART01 repaired USB path passes three 1 MiB bidirectional checksum rounds with independent Wi-Fi observer; broader endurance and Baseline02 new-image checks remain. Earlier loaded failure is historical. tests: tests/test_usb_failure.py, tests/test_cpu_fix03.py, tests/test_platform_transfer.py, tests/test_usb_reconnect.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0058-y2-musb-sleep-lifecycle.patch | USB: MUSB sleep interrupt/runtime lifecycle restoration | Active / High | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_usb_failure.py, tests/test_cpu_fix03.py, tests/test_platform_transfer.py, tests/test_usb_reconnect.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0059-pm-balance-prepare-refusal.patch | Suspend: Balance PM preparation refusal unwind | Active / High | Fix02 active-charge -EBUSY clean unwind PASS; tests: tests/test_suspend_policy.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
| 0060-y2-persistent-suspend-stages.patch | Suspend: Retained, timed suspend stages and resume-window breadcrumbs | Active / High | Fix02 staged PM PASS, full resume FAIL; later instrumentation/repair does not supersede failure without runtime result; tests: tests/test_suspend_policy.py, tests/test_cpu_fix02.py, tests/test_cpu_fix03.py | No evidence of obsolescence; retain until an upstream/base change proves replacement |
Broad core patches should remain frozen. Later0009 tuning and0060 instrumentation are source changes beyond earlier physical evidence.0038 Lima/runtime PM and display/audio patches should not be removed because another subsystem's full-suspend test failed.
| 0061-mt6582-uart-pio-sleep.patch | UART/C3: normal MT6582 PIO SleepEN ownership and bounded global SPM ACK | Active / High | UART01 3,647 ACKs and real returns; zero timeout/restore failures; targeted UART tests | No evidence of obsolescence; retain exact MT6582 contract |
5. CPU / POWER
Current CPU idle evidence — UART01 carried into Baseline02
C1 WORKING; C2 WORKING; C3 WORKING_AND_REPEATEDLY_OBSERVED on exact UART01. C1 advances on all four cores with zero rejections and 400 bounded wakes. C2 adds 6,971 entries / 50.654676 s in 60.054881 s (84.3473%); restore failures are zero. Natural parking owns mask 0xe and reaches CPU0 with both secondary power copies zero. Eighteen supported hotplug transitions and demand restore pass.
C3 completes 21 budget-one guarded reset-and-return trials with retained SRAM proof and RGU backstop, then adds 3,624 entries / 39.204662 s in 60.088344 s (65.2450%) under normal policy. Final entry/resume/success/UART-ACK accounting is 3,647 each, same boot, taint 0, with zero timer/context/CIRQ/clock restore failures. CPU utilization is 10.28%, IRQ 163.36/s and context switches 332.04/s; these are runtime indicators, not battery-current measurements.
Baseline02 retains the physically qualified entry/restore implementation. Its new S05y2-cpu-idle startup checks static foundations, admits budget -1 / CPU0 state2 with readback and rolls back on failure. CPU1–3 C3 remains disabled. Stop via y2-platform cpu-idle-policy stop; recovery options y2.deep_idle=off and y2.cpu_safe=1 retain fallback. New-image automatic cold boot is NOT_RUN.
| C3 prerequisite | Exact implemented and UART01-proved contract | Remaining scope |
|---|---|---|
| Topology | CPU0 only; both exact secondary power copies 0; natural owner mask 0xe | Baseline02 affected regression |
| OPP | Entry ≤747.5 MHz; all five active OPPs retained and checked before/after | Mixed charging/thermal endurance |
| UART/clocks/domains | Normal MT6582 PIO SleepEN ownership, global SPM request bit 0 / ACK bit 20 before power-run/WFI; bounded ACK; no forced PERI gate | Baseline02 cold boot and wider activity |
| PCM | Exact 480-word MT6582 DPIDLE program, separate from system-suspend PCM; normal PCM restored | Wider wake/endurance |
| CPU context | Linux cpu_suspend/cpu_resume; real reset SRAM stamp, MMU/CP15/VFP/GIC, BIU/cache/coherency checked | Additional stress/endurance |
| CIRQ | Exact MT6582 clone/flush accounting matches 3,647 real returns; restore failures 0 | Injected pending-edge replay not exercised |
| GPT4/local timer | Sole broadcast owner, 13 MHz conversion, future deadline >2 ms/26,000 ticks; observed 3.471384–18.392615 ms; timer context restores match | Wider boundary coverage; 1 ms probes had no entry without isolating individual rejection |
| Wake and media | Same boot, responsive; screen/workload restore; eMMC and inserted SD integrity clean after C2/C3 | SD-absent variant, long endurance, full system suspend separate |
GPT6, architectural CNTFRQ/PPI29 on all cores, GPT4 sole broadcast, highres and NO_HZ pass. The UART1 clock is no longer an unresolved blocker. Read UART implementation, UART01 hardware, SPM, runtime policy, PCM, CIRQ, local timer and resume vector.
| Active OPP | Voltage | Bounded hardware scope |
|---|---|---|
| 598 / 747.5 / 1040 MHz | 1.15 V | UART01 before/after C3 regression; earlier Fix02 integrity retained |
| 1196 MHz | 1.20 V | UART01 readback; earlier Fix02 integrity and 71.5°C peak retained |
| 1300 MHz | 1.25 V | UART01 readback; earlier guarded Fix02 load retained, without sustained thermal-envelope claim |
Schedutil, workload QoS, interactive boost, PWRAP voltage ordering and thermal authority remain. CPU/PMIC sensors are not pack sensors. The existing 110/120°C CPU and 150°C PMIC trips were not naturally exercised. Full same-boot system suspend with Power/RTC wake remains a separate unresolved release requirement.
6. STORAGE
Retained storage-mode evidence and current integrity scope
| Host | Implemented maximum | Observed maximum | Qualified shipping basis | Proposed beta mode |
|---|---|---|---|---|
| eMMC | 8-bit HS200200MHz; DDR52; HS52;25/13MHz ladders | Candidate2~140MB/s128MiB direct read, tuning/readback pass, no CRC/timeout | Prior50MHz8-bit integrity/PM and earlier13MHz direct writes; not HS200 endurance | Highest robust measured HS200/DDR52/HS52; keep lower fallbacks |
| SD | 4-bit SDR104200MHz, DDR5050MHzDDR, SDR50100MHz, HS50/25/legacy13 | Candidate2 SDR104 starts, then2CRC errors→DDR50~40MB/s short read | Prior4-bit HS50 integrity/gating; few cards | Highest robust card-specific SDR104/SDR50/DDR50/HS; finish current ceiling work |
Prior HS50 qualification remains a fallback baseline, not the final target ceiling. Candidate3 reports clean100MHz reads and unstable200MHz; neither short reads nor old-setting failure settles the final card/board ceiling. Qualify the fastest robust mode after correct tuning/pads/card driver evaluation. Do not turn automatic downgrade after errors into a claim that starting every boot in a known-failing mode is an appropriate public policy.
Candidate3 source at 04b41b0 corrects the SD sweep from64 to32taps, prevents field spill into CLKTXDLY, scans both sampling edges with repeated successful tries, chooses the widest eye/margin, and rejects insufficient windows. Read-only y2_storage_diag/y2_tune_diag expose maps, picks, command/data/lane CRC counters, pad readbacks and first/last fault. The root-only y2_lab can mutate tuning/drive state and is currently compiled by header default Y2_MSDC_LAB=1; the proposed public profile compiles it out. Candidate3 sealed successfully and is now reported physically characterized in the now-committed report. 200MHz remains unstable across delay/drive sweeps; SDR104 timing capped100MHz passed2GiB at~42MB/s. SDR50 is also reported clean, without equivalent write/endurance proof. Candidate4 adds stock Schmitt inputs, zero RDSEL/TDSEL and card drive selection; candidate4 now has a sealed304-test software receipt but no physical result. Completion and qualification of the fastest robust production mode remain pre-release work. Sources: tuning policy, MSDC patch, test cases, Oct2 handoff.
The ladder is eMMC HS200→DDR52→HS52→25→13; SD SDR104→DDR50→SDR50→HS50→25→13, matching core preference. Tuned-mode errors first retune then downgrade; voltage switch failures skip UHS. eMMC VCC is not power-cycled by Linux (no switchable VEMC declaration), VIO18 is fixed; SD VMCH/VMC admits only reviewed rail fields. A readback/fallback guard is useful but not proof of filesystem survival during every failed write. Current safety priority is keeping root/data and music intact.
Filesystems and media lifecycle
Internal root/data are separate writable ext4 volumes with exact controller/geometry/UUID/schema validation. Initial preflight mounts ro,noload; subsequent unmounted e2fsck -p accepts only safe repairs before rw handoff. Uncorrectable errors stay in rescue; no autoformat, SD root substitution or reboot loop. SD ext4/vfat/exfat are enabled, with read-only filesystem checks and unique-volume selection; NTFS and ambiguous layouts are not product support. A historical dirty FAT card was isolated rather than repaired, and cannot count as current corruption caused by Linux.
Fix03 replaces reclaimable kernfs inode/ctime identity with dev_t, diskseq and CID. Fix02 had reproduced spurious SD unmount/remount on cache reclaim; that bug is coded as fixed, not physically closed. SD replacement, UUID-less FAT, reclaim, clean exFAT, safe eject and scan cancellation need one focused RC pass. Music-copy writes should use bounded private staging and verified hash/fsync publication; ordinary SFTP clients have reserve enforcement but lack the full atomic-publication contract. The96MiB/128-inode reserve is not protection against an unrestricted root administrator.
Sources: media lifecycle, space, transfer, storage contract.
7. DISPLAY / GPU / INPUT
Native480×360 panel output uses Mediatek DRM/KMS, linearXRGB8888 scanout, GBM/EGL/GLES2 with Lima/kmsro on Mali-400MP2. Retained GPU01 reports EGL1.4, GLES2, Mali400 renderer,4096 maximum texture edge and16 texture units. This is hardware rendering, not llvmpipe; no production CPU-renderer fallback is selected. Static screens submit no unnecessary frames, dirty animation is capped about30FPS, and runtime power gating is physically observed. The awake GPU path is effectively finished for beta. Full-suspend context retention remains with the suspended-system gate, not a reason to rework Lima.
Input path: APT32F I2C frame → kernel key press/release → evdev → InputManager monotonic timestamp/dedupe/cadence → normalized actions → UI context policy. A same-direction interval under8ms is filtered; acceleration starts after four detents, with2/3/4-step thresholds at110/70/45ms and reset after220ms/reversal/loss/backwards time. Short menus stay one step; Now Playing wheel changes volume by2. This addresses the old1+2-row burst behavior in source; actual bounce statistics and physical detent acceptance are pending.
Select opens/acts and hold opens options. Back restores parent focus/scroll; hold returns Home. Play/Pause works globally; hold opens Now Playing. Previous/Next skip, holds seek±30s repeatedly. Volume repeats and works dark. Power toggles screen; hold opens Quick Settings. Dark navigation is dropped while transport/volume remain usable. Current navigation, input source.
Brightness is a real standard-backlight operation with five levels; shutdown closes graphics after a final black frame/backlight-off and platform independently darkens after app termination. These are implemented Productv2 changes, not a physical sign-off. Retain one human visual/control check for v2 rather than demand a UI redesign.
8. AUDIO
The complete native path is FFmpeg9.0.2 file demux/decode → shared float-planar DSP → conversion to actual sink format/rate → ALSA managed DMA → AFE DL1 → I05/I06→O00/O01 → second I2S → CS43131. AFE accepts S16_LE stereo at44100/48000. Both rates have short physical audio evidence; only44100 remains listed in audio-qualified.json, while audio-enabled.json enables both and marks candidate qualification false. This disagreement is intentional enablement versus evidence, not a reason to silently relabel48k qualified.
| Source input | Decoder/test coverage | Current wired output |
|---|---|---|
| FLAC16/24,44.1/48/88.2/96 | Exact fixtures; float DSP and source metadata tests | 44.1-family→44.1k,48-family→48k, S16; ultimate44.1 fallback on open failure |
| MP3 | mp3/tone fixtures, seek/error handling | Converted to negotiated S16 sink |
| AAC raw /M4A AAC | aac.aac/m4a-aac.m4a | Same; independent of Bluetooth FDK encoder |
| ALAC/M4A | m4a-alac.m4a | Same |
| Vorbis/Ogg | vorbis.ogg/tone.ogg | Same |
| Opus | opus.opus/tone.opus | Same |
| WAV PCM16/24/32,float32 | Four exact PCM fixtures and truncated WAV | Same |
| AIFF/AIF PCM24 | aiff-pcm24.aiff | Same |
| APE | ape-silence.ape | Same |
| WavPack | wavpack-silence.wv | Same |
Per-format feature rows intentionally use SOFTWARE_VALIDATED unless a particular physical playback receipt proves more. Host/ARM fixture coverage is not a10-format physical listening pass. Scanner extensions are flac mp3 aac m4a ogg opus wav aiff aif ape wv; arbitrary FFmpeg codec availability is not exposed support. File protocol only; no FFmpeg network, encoders, video player or streaming app.
DSP includes live volume ramp, limiter/headroom, ReplayGain track/album/off, EQ bands, crossfade, gapless, resampling and channel/output conversion. EQ engine/settings exist but Productv2 exposes no editor and defaults off. Crossfade defaults0; gapless defaults on. Fix02 exercised5s crossfade with silent fixtures, which cannot certify audible boundaries. Regression tests cover volume partial writes/ramp,24-bit sign conversion, source metadata, delay/trim, artwork and malformed/truncated inputs. Audio source, media tests, DSP/volume.
CS43131 uses the upstream cs43130-family driver, DAPM, safe initialization/mute and runtime power sequencing; board machine code starts headphone pin disabled and upstream reset volume−60dB. User volume is the shared application DSP path with controlled native sink setup, not a new calibrated hardware-gain UI. Upstream exposes hardware volume/filter/phase/high-pass/de-emphasis controls; per-control use and qualification are absent. DT omits EINT16/load-measurement properties; jack/load/impedance-driven gain is not admitted without its independent board/load safety proof. No present DSD, speaker, nativeS24/S32, preserved24-in32 or88.2/96k implementation is claimed. Native high-resolution output is a release target with the hardware-proof gate below;32-bit serial slots alone prove none of it.
Native high-resolution completion contract (F075/F076)
F075: FEATURE_COMPLETE_TARGET, NOT_IMPLEMENTED end to end, hardware-conditional. F076: CONDITIONAL_ON_HARDWARE, NOT_IMPLEMENTED. Reborn conversion helpers already support S24/S32 containers; no claim that all userspace work is absent. The missing native AFE path remains decisive.
| Layer | Current fact | What must be proved/implemented |
|---|---|---|
| Decoded source precision | FFmpeg decodes24/32-bit and88.2/96k sources, retains source metadata | Keep source format distinct from actual output, including UI reporting |
| DSP precision | Shared float-planar processing; floating point storage width is not a count of lossless output bits | Check low-level precision/headroom and clipping under selected DSP/bypass settings |
| ALSA format | Current hardware accepts S16_LE only; Reborn helpers expose S24_LE in4-byte containers and S32_LE | Select the exact supported format/alignment. S24_LE is not automatically packed S24_3LE; S32 container is not32 meaningful DAC bits |
| AFE memory fetch | DL1 presently consumes16-bit stereo; donor hd_reg=-1 | Find exact MT6582 wider fetch, signed alignment, ring/period accounting and I05/I06 interconnect precision |
| I2S slot width | 32-bit slots,64 BCLK/frame currently carry S16 payload | Capture exact bit placement/polarity/word length; padded slots are not high-resolution samples |
| Meaningful payload | Present native path preserves16 meaningful bits | Demonstrate meaningful low bits beyond16 with known24-bit fixtures; rule out truncation/zero padding before DAC |
| DAC input precision | CS43131 driver/capability does not establish delivered Y2 bus precision | Verify actual DAC serial configuration and received bitstream; no invented32-bit analog-resolution claim |
| Native rate/clock | AFE codes9/10 and rate masks only44.1/48; sources88.2→44.1 and96→48 today | Exact88.2/96 rate fields and MCLK/BCLK/LRCLK path; correct pitch/duration/sample count, no hidden resampling |
Missing technical evidence: exact MT6582 DL1 fetch/packing/interconnect and high-rate clock programming. The exact vendor header/donor limitations in radio/audio audit are insufficient evidence, not silicon-incapability proof. Investigate AFE implementation, register/clock definitions, machine driver, media conversion, ALSA sink and playback negotiation, against exact stock programming/MT6582 source.
Admission proof: authoritative register/stock evidence first, then low-bit DMA fixtures and measured I2S words/clocks,48/44.1/88.2/96 family transitions, channel order/sign, underruns, audible fidelity and sustained output. Missing capture access is an evidence/resource blocker, not permission to call S16 native24. If support remains unresolved, report the exact unresolved fields and delay an unconditional feature-complete claim. Only demonstrated hardware limitation permits a documented high-resolution exclusion.
9. BLUETOOTH
Native MT6627/CONSYS/firmware/BTIF produces standard HCI. BlueZ5.87 and BlueALSA5.0.0 provide Classic A2DP source; per-device calibration stays local. Pairing uses a bounded Pairable window, verifies bond, applies trust and explicitly connects. Reborn distinguishes connected/paired/bonded/audio-ready rather than enabling output solely from a link. y2-bt-reconnect is the only automatic reconnect owner; application actions hold operation leases. CONSYS has a bounded isolated retry, not an endless reset loop.
The strongest product audio receipt is182.955seconds of actual SBC playback with no XRUN/recovery/decode/playback errors and owner-confirmed clean AirPods audio/play-pause. Direct-fixture audio alone missed an application PCM-name bug later fixed. AVRCP player registration/metadata exists, but owner control observation and absence of an incoming retained trace must remain distinct. Fresh pair/reconnect/bond persistence, metadata, screen-off and coexistence remain RC tests. Physical issues, current contract.
| Codec | Compiled / encoder | Normal endpoint / Reborn | Peer/audio/CPU evidence | Fallback / distribution |
|---|---|---|---|---|
| SBC | Yes, libsbc2.2, BlueALSA | Enabled; actual PCM shown | Short audible peer pass, no completed long endurance | Mandatory baseline; package notices needed |
| SBC XQ | SBC quality preference/policy support | Private high/xq/xq+ controls; quality default high; negotiated peer acceptance separate | No XQ-specific negotiated playback/CPU evidence | Standard SBC; not a separate codec license |
| AAC | FDK-AAC2.0.3; BlueALSA built | Enabled by current owner-private integration policy; not publicly approved | ARM help/linkage, no retained physical AAC pass | SBC; FDK notice/source/patent review unresolved |
| aptX | libfreeaptx0.2.2; BlueALSA built | Current owner-private integration endpoint enabled; public profile gated | No compatible-peer/CPU result located | SBC; LGPL source duties and product rights review |
| aptX HD | Same library; own endpoint | Current owner-private integration endpoint enabled; public profile gated | No peer/CPU result located | SBC; same review |
| LDAC | libldac encoder+ABR2.0.2.3 | Current owner-private integration endpoint enabled; public profile gated | No peer/quality/CPU run located | SBC; certification NOTICE unresolved |
LDAC quality rates are330/660/990kbps in48k family,303/606/909 in44.1 family. ABR being linked is not measured dynamic bitrate. Auto has no qualified optional codecs; preferred codec is never equated with negotiated codec. Optional encoders run on CPU; controller version does not itself prohibit those Classic codecs. LE Audio, aptX Adaptive/Lossless have no supported current path and are not beta gaps.
Shared-radio coexistence must test SBC with Wi-Fi idle/scan/transfer, not assume separate-link success. No sustained simultaneous acceptance receipt was found. Standard SBC and possibly Wi-Fi-off-during-playback documentation are defensible fallbacks if the limited concurrency test finds a non-core limitation; repeated ordinary SBC failure remains a blocker.
Classic codec feature-completion acceptance
SBC/XQ/AAC/aptX/HD/LDAC, LDAC quality modes and ABR are release targets. AAC/aptX/HD/LDAC are technically viable host encoders over Classic A2DP, with private build/BlueALSA support; real peer/resource envelopes remain unqualified. Current private endpoint enablement is separate from peer qualification and public-distribution permission.
| Codec/mode | Code | Encoder built | BlueALSA support | Default endpoint/mode | Peer-tested | Audible on Y2 | Codec CPU acceptance | Coexistence acceptance | Public distribution |
|---|---|---|---|---|---|---|---|---|---|
| SBC | Yes | libsbc2.2 | Yes | Enabled | Bounded named peer | Yes, short owner observation | No codec-specific sustained receipt | No release endurance | OSS notices/source review |
| SBC XQ | Quality/policy exists | Shares libsbc | Quality option | XQ off; SBC endpoint on | Not evidenced | Not evidenced forXQ | Not evidenced | Not evidenced | Same component; peer interoperability separate |
| AAC | Yes | FDK2.0.3 private | Yes | Owner-private enabled; public gated | Not evidenced | Not evidenced | Not evidenced | Not evidenced | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED |
| aptX | Yes | freeaptx0.2.2 private | Yes | Owner-private enabled; public gated | Not evidenced | Not evidenced | Not evidenced | Not evidenced | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED |
| aptX HD | Yes | freeaptx0.2.2 private | Yes | Owner-private enabled; public gated | Not evidenced | Not evidenced | Not evidenced | Not evidenced | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED |
| LDAC | Yes | 2.0.2.3 private | Yes | Owner-private enabled; public gated | Not evidenced | Not evidenced | Not evidenced | Not evidenced | DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED |
| LDAC quality modes | Yes | Same encoder | mobile/standard/high controls | Owner-private controls enabled; unqualified | Not evidenced per mode | Not evidenced per mode | Not evidenced | Not evidenced per mode | Same LDAC gate |
| LDAC ABR | Yes | ABR library linked | ABR argument supported | Owner-private policy default; adaptation unqualified | No adaptation receipt | No ABR listening receipt | Not evidenced | No adaptation-under-load proof | Same LDAC gate |
Each codec needs: peer capability discovery → intersection with built/enabled/approved local codecs → persisted user preference/Auto → bounded selection/retry → actual negotiated PCM and audible playback → fallback/reconnect → CPU/temperature/dropout evidence with Wi-Fi idle/scan/transfer. Auto may select only mutually available admitted codecs; no best-codec claim from preference alone. Quality labels must distinguish requested target from measured bitrate; ABR needs actual adaptation evidence, not a checkbox. Named peer limits can remain documented. An unavailable compatible peer blocks that codec's acceptance, not its release priority.
Sources: manifest, pinned encoder/license ledger, service arguments, observed BT state, Reborn codec policy. Existing notices identify unresolved distribution review; this document makes no new legal clearance claim. A legally forced public omission must remain FEATURE_COMPLETE_TARGET with a named distribution exception and a clearly disclosed delivered feature set.
10. WI-FI
Current source has firmware/native driver, nl80211 supplicant, scan/password/saved-network UI, persistent private credentials, WPA2-PSK/CCMP association, DHCP hook, route/DNS readiness, NTP and reconnect/power policy. The real TX-checksum defect was fixed: unsupported NETIF_F_HW_CSUM advertisement removed, ordinary checked DNS/TCP then passed. Do not repeat the old checksum investigation.
Physical01 local throughput: receive45.15–45.60Mb/s, transmit46.35–46.56Mb/s across three repeats. Fix02 adds four1MiB SHA roundtrips each direction. These are separate from screen-off/coexistence endurance. Supplicant STATUS timeouts can produce transient unavailable telemetry while traffic works; Reborn now preserves last known association for counter accounting while reporting observation failure truthfully. Do not increase timeouts or falsify Online solely to make a counter green. Current UI password/forget/reconnect and screen-off behavior need RC checks. Enterprise/WPA3/AP/P2P/WPS are not supported product promises.
11. USB
Production MUSB supplies high-speed ACM+ECM. Device address10.42.0.1/24, host commonly10.42.0.2/24; file transfer is authenticated SFTP, not a mounted disk/MTP. Dropbear binds both10.42.0.1:22 andusb0, disables passwords/forwarding, waits for CRNG and owner public key. Failed interface binding closes the socket. Only OpenSSH's SFTP subsystem is installed, no second sshd. The fixed transfer helper stages privately, validates path/mount generation/space, seals a fresh inode, hashes and fsyncs publication; ordinary SFTP has weaker partial-upload semantics.
UART01 supersedes the older Fix02 loaded-transfer failure for the repaired source: three 1 MiB bidirectional checksum rounds pass with an independent Wi-Fi observer, same boot and no filesystem errors. Baseline02 retains the progress-aware DMA protection. This closes the bounded integrity regression, while large transfers, cable/reconnect/host-sleep endurance and supported-host coverage remain separate. PIO remains the supported fallback; no new candidate series is needed merely to retain it. Hardware receipt.
NCM modules and host classes are compiled, but activation is gated. ID wiring, VBUS source/switch/current are not board-qualified. Host-role requests fail closed before VBUS writes. HID/storage/UAC availability in config is not host usability. Keep peripheral ECM; support a documented host OS first, with Windows ECM setup explicitly unqualified until tested. USB contract, Fix03 source/evidence.
12. BATTERY / CHARGING
Voltage/presence are real ADC observations. SOC is a filtered voltage curve3.4–4.175V,30s filtering,120s rest criterion and charging offset; not a calibrated fuel gauge. No measured battery current, coulomb count, capacity or pack temperature is provided. Stock FG routines returning zero and constant25°C reports are not measurements. Show percentage only with a visible estimated label, retain low-voltage warning, never show remaining hours or calibrated accuracy.
Current charger source admits70/450/650mA selectors, with bounded source classification; the observed PC500mA allowance selects450mA. Default configurable ceiling650mA is a maximum, not measured input or battery current. CV4.175V, sampled4.2V safety guard, recharge4.110V, top-off4.050V,3h precharge/CV and24h session guards, charger watchdog and stock OVP/UVLO/PMIC die protections remain. Boot threshold3.2V, precharge boundary3.4V, and software critical-shutdown3.4V are different policies; do not confuse them.
Existing history shows charging voltage rises and hold/recharge states, but no controlled latest-candidate full-cycle/combined-use acceptance.1121.57s rising3.540→3.574V under changing load does not prove positive net charge for all workloads. PMIC/CPU temperature is not pack temperature. The audit cannot currently say every beta user can charge normally without special qualification. One attended ordinary PC and wall-charge session with playback/idle, credible external input observation and hold/recharge behavior is a release gate. Do not increase current or probe an unknown pack's absolute discharge limit.
Low-battery policy is enabled/provisional:3.5V low,3.4V critical,3.6V recovery, five critical samples and10s grace. Provisional SOC warns, calibrated-confidence gating prevents blindly treating estimated5% as hardware capacity. Platform shutdown is independent of app: peer-credential checked socket, one monotonic deadline, stop audio/save session/stop scan/checkpoint-close DB, bounded stop/kill, journal/sync and standard BusyBox shutdown. Kernel uninterruptible I/O and actual PMIC power cut cannot be guaranteed by a userspace timeout. Test reserve and next-boot integrity; do not equate a final journal record with physical off. Sources: policy, power service, SOC.
Battery feature completion versus unavailable measurements
Useful honest percentage, charging state, low/critical warning, safe persistence/shutdown and ordinary charging are core release requirements. Calibrated SOC is not the same as a voltage-derived estimate. F180 is now CONDITIONAL_ON_HARDWARE: real current/coulomb/pack-temperature completion must be investigated if exact MT6323/Y2 wiring supports it.
Current ADC source exposes BATSNS/ISENSE voltages and BATON voltage; it deliberately does not turn an unproven68mΩ shunt/offset/polarity or unverified NTC into amps/°C. Stock zero-return FG and constant-temperature behavior do not prove a usable coulomb counter. Missing proof is the exact wired sense/coulomb/NTC path, calibration and net-current sign under charge/discharge. Require comparison to appropriate measurement; CPU/PMIC die readings and configured charger current are not substitutes. If only useful estimated SOC is viable, explicitly document that proven limitation; do not invent current or classify the unresolved hardware inquiry as post-beta because it is difficult.
13. RTC / SUSPEND
RTC reads/write/ticking and NTP→RTC writeback have physical observations; rtc-policy now enables writes. Reboot and cold-power retention remain explicit tests. Awake RTC alarm+PMIC IRQ passed. Full sleep is different: Fix02 freezer/devices/platform/processors/core stages pass on battery; active charging refuses with clean−EBUSY unwind. Full RTC sleep returns from SPM, stamps resume vector, restores syscore/secondaries/device callbacks, then misses PM exit and resets via30s backstop. Userspace/radio restoration never completes. Power wake and five cycles are untested.
Fix03 adds timed breadcrumbs through the remaining resume-console/platform-end/thaw/notifier window, not a proven fix for the unknown stalled call. Warm SRAM journal self-test/retention is qualified; cold power loses it. Deep suspend is a CORE_RELEASE_FEATURE. Repair the remaining return-to-userspace failure and integrate Power→real sleep→Power/RTC wake→same boot with actual subsystem restoration. Current Power screen-toggle behavior is not that target. Runtime screen-off and real Power Off remain safe fallbacks, not completion waivers. If same-boot sleep remains broken, delay the feature-complete beta.
Full sleep/wake acceptance ledger (F032–F036, F065, F191, F231)
Target: deliberate Power action → real low-power sleep → very low observed drain → Power or RTC wake → same boot → restored UI/audio/radios/storage. Playback-active policy must be deliberate and user-visible: screen-off playback is a distinct mode; pause/checkpoint before full sleep where continuous output cannot survive system suspend. Existing short Power screen-toggle and long-hold Quick Settings are current behavior, not proof of the target. Final interaction choice belongs in Pass3 integration with the platform sleep contract.
| Stage/subsystem | Retained fact | Required release proof |
|---|---|---|
| Freezer | Fix02 pm_test pass | Affected regression and successful final thaw |
| Devices stage | Fix02 staged pass | Actual sleep cycle does not leave devices unusable |
| Platform/processors/core stages | Fix02 staged passes | Full transition, topology and same-boot return |
| SPM entry | Full attempt reached sleep/wake path | Real residence and wake reason; not a staged test |
| CPU resume | Resume vector/SPM return stamped | Stable userspace completion, no30s backstop reset |
| RTC wake | Wake0x20/return observed; full completion failed | Alarm wakes to working product, repeatably |
| Power wake | No completed physical receipt | Button IRQ wake, same boot, no lost/stuck input |
| CIRQ replay | Code/breadcrumb path exists | Pending wake interrupts replay correctly; no duplicate/lost event |
| Timer restore | Syscore/device progress before failure | Monotonic time/deadlines and each online CPU clockevent after return |
| Storage restore | Callbacks completed in failed overall run | Root/data/SD readable/writable, hashes/fsync, chosen fast timing retained/retrained safely |
| USB restore | No final product resume proof | Host sees recoverable ACM/ECM, authenticated transfer resumes/reconnects with hash integrity |
| Wi-Fi restore | No same-boot final product proof | Association/DHCP/route/DNS restored by bounded owner workflow |
| Bluetooth restore | No same-boot final product proof | Bond/trust/connection/negotiated codec and audible playback restored without competing reconnect owners |
| GPU/display restore | Awake/runtime PM mature; full sleep unqualified | Correct first resumed frame/backlight, no white screen/hang |
| ALSA restore | No final full-sleep audio proof | AFE/I2S/DAC reconfiguration, mute/pop behavior and correct selected output |
| Reborn restore | Full run resets before completed userspace return | Input/focus/queue/settings/worker liveness, deliberate paused/resume policy |
| Sleep drain | No completed measured deep-sleep envelope | Comparable awake/sleep observation and measured consumption where available; define numeric target from actual evidence, no invented hours |
Fix03 instrumentation must identify the first uncompleted console/platform-end/thaw/notifier step. Fix the observed stall before expanding cycles. Preserve SRAM journal, stage timestamps and watchdog reset attribution. A callback-return breadcrumb alone does not qualify the corresponding restored device. Charge-active refusal/clean unwind is a safety contract; test deliberate charging behavior rather than bypassing it. Missing final same-boot wake is a release blocker, not an acceptable screen-off substitute.
14. BUILDROOT / PLATFORM SERVICES
Buildroot2025.02.18, pinned external Bootlin ARMv7 hard-float glibc toolchain, BusyBox init, util-linux/e2fsprogs/dosfstools/exfatprogs, ALSA, Python standard modules, SQLite, wpa_supplicant, D-Bus/BlueZ/BlueALSA, libcurl/OpenSSL/CA certificates and Mesa/Lima are deliberately selected. Diagnostics include evtest, DRM/ALSA queries, i2c-tools, ethtool/iw, strace, iperf3 and memtester. Their existence is not permission to expose arbitrary hardware mutation to ordinary testers.
Startup sequence: RAM init mounts observation filesystems and modules → charging/normal-boot gate → internal identity/fsck → switch_root → runtime/data/platform/time/power setup → S05Reborn → later connectivity/readiness/time/SSH services. Reborn radio workers retry; first frame need not wait for radios. Readiness/status distinguish available implementations from live device state. Bounded supervisors record exhausted restart budgets.
The Reborn platform crate owns Y2 CLI/records/sysfs/power/workload operations. Typed models reach UI; one worker refreshes only visible platform pages,15s normally/4s PC Transfer, never screen-off. Battery record is read every2s. Application-owned standard APIs remain FFmpeg/ALSA, SQLite, DRM/GBM/EGL, evdev via platform, own process/mount diagnostics, own state/control socket. Rust guard's10 allowlist tuples and C graphics splash protocol are explicit exceptions, not evidence of a new platform-layer violation. Core session-file I/O is app-owned despite overly broad wording in the older boundary doc. No architectural rewrite is needed for beta.
15. REBORN CORE
SQLite schema1 uses a single worker/WAL, compatible browse indexes, transactional scan results, source generation/claims and safe pruning. Proven corruption is quarantined together with WAL/SHM and interrupted moves recover; future-schema/locked/full/read-only failures must not be mistaken for corruption or silently wiped. Rebuild now forces reread; incremental reuse uses size/mtime. Metadata/artwork errors retain usable songs. Source loss marks availability rather than deleting music.
Matched physical benchmarks on the older8-bit13MHz transport:
| Tracks | Indexed page p50/p99 ms | Commit64 p99 ms | Initial/incremental scan seconds |
|---|---|---|---|
| 1k | 2.384/2.860 | 6.984 | 4.154/0.192 |
| 10k | 2.067/2.428 | 578.580 | 52.553/7.666 |
| 20k | 2.080/2.448 | 562.513 | 114.573/18.251 |
These synthetic results prove meaningful usable scale, not all real-world metadata/artwork latency. Full list construction~45ms and scan CPU remain costs. The source already corrected the earlier~95ms20k browse page and multi-second one-bit WAL stalls. No additional database redesign is warranted. Benchmark evidence.
Playback has decoder worker, bounded PCM buffering/writes, generation cancellation, serialized transactional sink changes, queue occurrence IDs, seek trimming, gapless/crossfade and error recovery. A full producer queue increments decoder_stalls; that is backpressure, not necessarily underrun. Report actual audio_xruns, recovery/write/decode errors and audible behavior separately. Queue entries may outlive a removed file; current Fix02 cleanup left fixture entries, so source loss/skip/clear is a useful RC scenario, not a reason to rewrite queue identity.
Settings/session atomic writes and serde defaults preserve current fields; there is no broad versioned settings-migration framework. Database schema remains1; update verifier rejects incompatible destructive schema combinations. Preserve /data/reborn, network credentials and Bluetooth bonds across beta updates. Text search backend exists, but no dedicated current search screen; Favorites and persistent playlist editing are absent. They remain nonessential extensions to the current deliberately simplified Productv2 direction, rather than hardware limitations; the owner-requested audio/power/storage features are not in this category.
16. REBORN UI
Every current route has a matrix row. Productv2 has27 normal routes in its review count, four root items and a technical Diagnostics subtree. Music: Albums/Album, Artists/Artist, Songs, Folders, letter index; playback: Now Playing/options, Queue/options, Song Info; Settings: Wi-Fi/password, Bluetooth/pairing, PC Transfer, Audio/output/ReplayGain, Playback, Library, Display, System/Battery/Storage/Update/About/maintenance. Hold Power opens Quick Settings, restart/off confirmed. No separate Connectivity hub or Favorites screen; Quick Settings is a sheet, not a dead old route.
Maintenance offers real app-settings reset, library rebuild, artwork-cache clear, forget Wi-Fi and forget Bluetooth; full wipe is absent from normal UI. Facts are static rather than focusable on ordinary pages; full values and hardware details live in Diagnostics. Old reset pages printing shell commands were removed. Empty states name no music, failed/incomplete scan, missing SD, no current track or no queue and provide useful actions. Long labels/Unicode/focus restoration have tests/previews; all require one human480×360 check.
Two practical product gaps matter more than polish: PC Transfer hides the SFTP/address/auth mechanism in Diagnostics, so a fresh tester needs a visible route to instructions; Export Player Data is a private state backup, not a shareable bug bundle. License page has summary copy claiming system license texts; audit packaging should verify actual installed/shipped notices, since Reborn recipe visibly installs its own LICENSE/dependencies only. No evidence justifies wholesale UI work.
Bootv2 shows the same Reborn mark/background in initramfs and app with READY/RELEASED/PRESENTED handoff, then six-frame~200ms dissolve. Stock LK logo remains untouched. Shutdown uses~0.9s animation, closes audio/database/state, black frame, backlight off, acknowledgement, exit; platform darkens independently if app fails. Older52s first-frame measurement predates lazy FFmpeg and early app startup. Neither later~14.5s SSH recovery nor preview rendering proves latest first-frame timing or absence of white flash. Record one current video/timing sequence.
17. UPDATES / RECOVERY
Signed root-only OTA is substantial software: exact-byte manifest Ed25519, product/revision/source/kernel/schema/size/hash binding, bounded HTTPS/local staging, offline rescue backup of actual ext4 extent, fsync/readback verification, durable journal, high-water sequence, health ACK and verified previous-root restore. Pending health requires actual first frame/app liveness/platform checks within180s; missing ACK rolls back on next owner reboot, not a reboot loop. Reborn is updated as part of root; changed kernel/DT/modules require paired manual BOOTIMG+root.
Physical installation/interruption/restore of this integrated updater is not qualified. Current registry is a development key allowing explicitly signed development downgrade. Public channel is not configured; no autonomous network update source is guessed. Root-only update cannot rotate/revoke keys embedded in immutable rescue. Automatic BOOTIMG OTA and A/B are absent by design.
For beta1, computer-assisted preserving beta2 updates are acceptable after a rehearsal preserving settings/library/Wi-Fi/bonds. Do not make a new OTA server or physical torn-write campaign mandatory. Public UI must not invite an unqualified root writer; disable/hide OTA or retain explicit experimental gating unless fully qualified. A bad BOOTIMG cannot use Linux rescue; external retained stock loader/SPFT is the recovery path. Bad root can stay in rescue, but RAM rescue has ACM logging/console rather than ordinary USB SSH. Failed app recovery relies on the supervisor and owner USB access.
Current preserving package has BOOTIMG+ANDROID/Y2ROOT only, no Y2DATA payload. It is not a complete first installation for another stock owner. First use must deliberately initialize Android USRDATA as Y2DATA and provision that owner's public key, with backup/data-loss explanation; future updates must exclude it. owner_data.py exists but requires a historical boot-only system/base relationship and cannot simply accept the latest preserving package unchanged. This is concrete release-tooling work, not a missing kernel feature. Use current generated coordinate metadata; the historical recovery guide contains old logical/native readback assumptions and must not be copied blindly.
18. SECURITY / PRIVACY
Source audit found no universal production password, automatic Wi-Fi SSH listener or HTTP upload endpoint. Root password is locked; Dropbear key-only USB/interface-bound; no port forwarding; CRNG readiness required. Host keys generated per device, persistent on Y2DATA; authorizations must be per owner. Private candidate/provisioning artifacts must still be scanned before publication: safe source defaults do not prove a private image contains no maintainer state. A default credential or unexpected reachable endpoint is an unconditional A blocker.
Reborn and most platform services run as root; media parsing is not sandboxed, no LSM/KASLR/verified boot is added. This is a trusted single-owner local-media beta model, not security certification. Keep FFmpeg network disabled, use maintained pinned dependencies and a targeted release advisory review, verify sockets/permissions and no secrets/calibration/host keys in public output. Broad privilege separation is post-beta; a concrete exploitable release defect would override that deferral.
Privacy: no analytics or automatic log upload was found in the project source paths. The system does contact external services when connected: DNS readiness lookup of pool.ntp.org, NTP peers 0/1/2.pool.ntp.org, and explicit owner-configured HTTPS update requests. Network peers see ordinary IP/radio identity; Wi-Fi/BT operations expose their normal link identifiers. Opaque firmware behavior is not audited internally. State backup contains library metadata/paths and preferred-device identity; optional network export can include credentials. Reborn diagnostic redaction/bounds have tests, but platform raw logs/CID/addresses must be reviewed in a unified shareable bundle. Never describe “no analytics” as “no external traffic.”
19. RELEASE / DISTRIBUTION
Current build and package boundary
Baseline02 is the latest sealed owner-local candidate; its retained software checks and source pair supersede older integration counts in the historical receipt below. New-image/cold-boot hardware is PHYSICAL_NOT_RUN. See Baseline02.
Historical integration build receipt — 2026-10-02
Pinned kernel/Buildroot/toolchain/Rust archives, Cargo.lock/vendor checksums, FFmpeg pin, local package hashes, source bundles, ELF closure and exact manifests provide strong reconstruction. Candidate2 records281 production tests with3 explicit native-dependency skips,212 Reborn tests, ARM/QEMU, installed ARM imports and package/ELF/legal-info passes. Candidate3 subsequently records301 production/platform tests (3 native-dependency skips) and passing ARM/QEMU, installed ARM, ELF, inventory/legal-info/package checks; unchanged Reborn cargo checks were not rerun. Candidate4 now has304 passing software tests and a sealed receipt at e2dd583; no physical result. Software receipts are not physical qualification. BR2_REPRODUCIBLE=y is set; byte-identical rebuilding has not been demonstrated. One clean reproducible procedure and retained inputs/versions is a realistic beta bar; a two-build byte-equality project is not required this week.
The public preserving scatter must select only BOOTIMG and ANDROID, with PRELOADER, LK/UBOOT, MBR/EBRs, NVRAM, PROTECT, calibration, RECOVERY/LOGO and USRDATA excluded. The first-install data initializer must be separate and unmistakably destructive to prior Android userdata. Preserve stock loaders and protected records on each device. Never bundle someone else's radio addresses/calibration or a private raw evidence directory. Manual package SHA256 is integrity metadata, not release authentication or secure boot; publish it through the authenticated release channel and provide corresponding source/notices.
Distribution review by component
“Likely safe” below means an ordinary open-source redistribution path appears available subject to license obligations, not legal clearance. The relevant primary notices were checked during the audit. Buildroot's manual describes legal-info as assistance, not a complete compliance guarantee; local collector warnings remain unresolved.
| Component | Evidence / license family | Disposition for beta |
|---|---|---|
| Linux6.18 + platform/patches | GPL-2.0-only/syscall exception, per-file SPDX and source manifest | Likely ordinary redistribution path; ship corresponding source/config/patch/build material |
| Buildroot2025.02.18 | GPL-2.0 build system; each target package separate | Supply own modifications and actual target/source obligations; collector does not automatically save everything |
| Bootlin toolchain / glibc / GCC runtime | Pinned external archive; collector warns about external license files | Requires closure of exact source/notices/license files, not blanket GPL label |
| Reborn and its assets/dependencies | MIT workspace; DejaVu and icon/font provenance files; Cargo dependency licenses | Likely ordinary path; bundle notices and verify all artwork/asset provenance, including generated mark and any retained reference assets |
| FFmpeg9.0.2 | Actual configured libraries; no external encoders/network; upstream LGPL default, GPL components conditional | Verify actual configure/license inventory; source and relinking obligations as applicable. FFmpeg legal page |
| OpenSSL | Candidate2 inventory: OpenSSL3.5.8, Apache-2.0 | Retain exact version notices; no inference from tool name alone |
| BlueZ5.87 | GPL/LGPL split by component | Corresponding source and notices; inspect selected files |
| BlueALSA5.0.0 | MIT core plus separately licensed encoders | Core redistribution path does not approve linked optional codecs |
| libsbc2.2 | LGPL family | Source/notices for shipped library |
| FDK-AAC2.0.3 | FDK license; notice/source requirements; no patent license granted | Required feature target; distribution review unresolved. Any public exclusion must be recorded as a legal/distribution exception, not technical deferral. FFmpeg AAC file decoding is separate. Pinned NOTICE |
| libfreeaptx0.2.2 / aptX / aptXHD | LGPL-2.1-or-later shared implementation | Copyright/source path exists; product rights/trademark/patent questions not settled by legal-info; exclude private experiment profile for now |
| LDAC encoder/ABR2.0.2.3 | Apache2 source plus certification NOTICE | Requires review; do not bundle merely because endpoint is off. Pinned AOSP NOTICE |
| Mesa/Lima/libdrm | Mesa MIT/SGI/Khronos inventory, Lima per-file GPL/MIT, libdrm MIT | Ordinary open-source path; no proprietary Mali userspace needed |
| Wi-Fi/BT/WMT firmware + stock defaults | Seven owner-provisioned hash-checked files; redistribution_permission_established=false | Owner-only / cannot bundle yet absent permission; establish reviewed permission or owner-local extraction/assembly workflow |
| Per-device NVRAM/calibration/addresses | Device-owned private factory records | Never redistribute as a generic template; preserve/acquire on the owning device only |
| Stock preloader/LK/ROM/logo/recovery binaries | Intentionally retained on device; private fallback/stock inputs not licensed by project | Do not include them in public package without established rights; owner-local recovery assets |
| SP Flash Tool / download agent | Proven owner tooling, not newly licensed project code | Document exact supported provenance; do not casually redistribute executable/tool bundle |
Evidence: reconstruction boundary, codec source ledger, provisioning, Reborn dependency manifest. Offline/package legal-info success is useful evidence but not a final public-distribution verdict. No legal determination beyond these source notices is made.
Hardware support is one observed Innioasis Y2 MT6582/eastaeon82_wet_kk configuration, with particular eMMC geometry, panel, MT6627, CS43131 and battery assumptions. The repositories do not establish a complete list of commercial Y2 revisions. Do not assert all Y2s are identical or that another revision is known unsafe; both would exceed evidence. Beta compatibility must name accepted checks and reject unexpected identity/layout rather than guessing rail/display/partition compatibility.
20. TEST / QUALIFICATION
Coverage and limits
Current Baseline02 receipts: 391 production cases (386 pass, 5 dependency skips covered by 27 native filesystem/GIO, 3 ALSA and ARM checks), 125 focused source tests and 238 Reborn tests; fresh kernel/root/ARM/QEMU/ELF/config/DT/ABI/package PASS. This documentation update runs documentation/structure checks only. The older counts below belong to the dated census/implementation campaign.
The historical 2026-10-02 census scanned all tracked text across both repos, including non-obvious tools, vendored Wi-Fi and Rust dependencies, docs, validation and historical evidence. Generated build/worktree copies are not counted as independent source; selected manifests and physical summaries were inspected read-only. The JSON retains exact text-file paths and marker/gate line numbers. This is an exhaustive capability map and lexical census, not formal verification of every dependency line, a live electrical audit, or an exhaustive CVE/legal opinion.
Existing tests include pure policy C harnesses, Python unit/integration, native verifier/writer fault tests, Rust/native media/SQLite/sink/input/UI tests, ARM QEMU, kernel/DT/config/ABI/memory/image gates, package rejection and ELF closure. Some tests model hardware rather than executing it. The earlier test_baseline.py receipt is historically scoped outside the production suite; current Baseline02 dependency skips and compensating checks are listed above. A test skip must retain its reason and compensating coverage, never be counted as pass. Candidate3 has a completed301-test software receipt with3 explicit skips. The newer candidate4 receipt reports304 software tests PASS; no hardware pass follows from that.
Retained performance and endurance map
| Area | Actual retained evidence | Missing beta-relevant evidence |
|---|---|---|
| Boot | Old first frame52.060s; later~14.5s to SSH | Latest v2 first-frame and no-SD startup measurement |
| UI/wheel | Dirty rendering≤30FPS policy; earlier hardware renderer; real input boost~22ms | Latest human detent/focus latency;22ms lease is not end-to-end wheel latency |
| Library | 1k/10k/20k measured table above | Realistic mixed library on selected RC mode |
| Wired | 1min each44.1/48 +6 switches; later25s silent app windows | Long real playback and audible boundaries |
| Bluetooth | ~183s SBC actual app, owner clean/control | 2h SBC plus fresh pair/reconnect and coexistence |
| Screen-off | UART01 C2 84.3473%, C3 65.2450% separate 60-second windows; repeated actual returns, natural parking | New Baseline02 automatic cold boot; wider endurance/electrical drain; no battery-duration promise |
| Wi-Fi | ~45–47Mb/s standalone;4×1MiB hashes | Screen-off/concurrent audio continuity |
| USB | UART01 three 1 MiB bidirectional checksum rounds; independent Wi-Fi observer | Baseline02 affected regression plus large-transfer/reconnect/host-sleep endurance |
| eMMC | Safe-mode read/write/gating hashes; HS200128MiB read~140MB/s | Selected highest-robust mode mixed reads/writes/fsync/sleep/endurance; HS200 must be evaluated |
| SD | Older integrity passes; candidate2 SDR104 CRC→DDR50; candidate3 reported100MHz2GiB clean~42MB/s,200MHz still CRC | Multiple clean filesystems/cards, highest-robust-mode writes/hotplug/sleep and verified lower fallbacks |
| Thermal | Cooling authority;1300 four-worker75°C guard reached quickly | Ordinary charging+playback+radio/scan acceptable envelope |
| Suspend | Staged same-boot pass; one failed full wake/backstop reset | Required same-boot Power/RTC wake and restoration/cycle qualification |
| Update | Real host crypto/writer failure injection | Physical OTA recovery if promoted; otherwise manual upgrade rehearsal |
No completed release-representative long wired, Bluetooth, screen-off, USB or storage endurance receipt was located. Existing wired-8h, bluetooth-8h, coexistence, transfer, boot and suspend profiles are test tooling, not test results. Required feature-completion suite and pass/stop criteria are in the plan.
TODO / FIXME / marker disposition
The machine inventory classifies each lexical hit by file and line: dependency debt, historical/documentary claim, test fixture/negative assertion, vendor Wi-Fi reachability debt, or current gate/fallback/operational-state review. “TEMP” sensor constants, architecture exception strings, STUBS in a C test harness, “Unavailable” for absent hardware and a negative UI test are not missing product features.
Meaningful classes: vendor Wi-Fi unfinished RX counters/Host-FW synchronization/AP/P2P handlers are deferred unless a reached client-mode failure implicates them; OTP/recursive erase refusal in fs-store.h is a deliberate boundary, not a feature to complete; explicit unqualified suspend/codec/native-audio gates remain; real release gaps are tracked by independent product targets and completion groups. UIv2 generic-unavailable cleanup is implemented, not an outstanding instruction to prune again. The complete marker census is searchable without turning every inherited TODO into a week's work.
Runtime and compile-time gate decisions
| Gate | Current effect | Proposed beta disposition / accessibility |
|---|---|---|
y2.cpu_safe=1 | Disables DVFS/idle/deep/suspend paths via common safe predicate | Retain rescue option, not default product profile; prebuilt tested fallback easier for tester |
y2.dvfs=off | Disables platform DVFS admission; exact meaning from cpu-options | Retain diagnostic escape; no promise it selects an arbitrary frequency |
y2.local_timer=off | Forces legacy timer fallback | Retain, normally leave qualified local timers on |
y2.cpuidle=off | Disables board idle driver | Retain fault isolation; higher drain expected |
y2.deep_idle=off | Disables C3 only; C2 remains available | Retain recovery option; Baseline02 startup otherwise automatically admits qualified CPU0 C3 |
y2.suspend_safe=1 | Refuses full platform suspend | Retain emergency/qualification fallback; normal product must support qualified deep sleep |
y2.emmc_mode=HS52 | Caps eMMC to preceding HS52 policy | Retain fallback; final default is fastest robust qualified mode |
y2.sd_mode=HS | Skips UHS to3.3V high speed | Retain fallback; final default is fastest robust qualified mode |
y2.mmc_safe=1 | Crystal26MHz source, legacy13MHz, no high-speed caps | Retain last-resort known storage path |
y2_clock_limit_hz | Runtime13/25/50/100/200MHz cap controls | Developer diagnostics only; ordinary tester not asked to tune live root |
y2.usb_dma=off | PIO path / original packet layout | Use if required by successful RC transfer evidence |
y2.rescue=1 | Explicit RAM rescue entry | Retain; requires packaged boot-argument path, not typing at a missing boot menu |
Y2_MSDC_LAB | Header defaults1; root-only tuning mutation | Compile0 for public RC, read-only diagnostics retained |
BR2_PACKAGE_Y2_CODEC_EXPERIMENTS | Builds FDK/freeaptx/LDAC optional encoders | Complete codec target and clear distribution independently; gate until approved, record any legally forced omission |
C3 disable / cpu-idle-policy, dormant prerequisites; separate suspend owner flag | Baseline02 once-per-boot qualified CPU0 C3 activation with static readback and unchanged entry guards | C3 is bounded hardware-proven on UART01; new automatic cold boot pending. Full suspend owner flag does not confer acceptance |
| NCM/host role/USB audio modules | Available code, role/VBUS gate | NCM optional if ECM suffices; host conditional on board proof |
| Audio-enabled vs audio-qualified JSON | S16 44.1/48 enabled, narrower qualified profile | Keep honest evidence separation; implement nativeHD only after exact AFE proof, then qualify |
| Private SOC/power overrides; radio enable/codec preference; update channel | Validated persistent policy/config inputs | Document defaults and migration; no silent unsafe override |
| Root OTA/dev trust | Writer exists, no public channel | Hide/disable unqualified public action; manual beta updates accepted |
All700 extracted current/historical config/setup declarations are retained in JSON, including separate first-boot/development configs. Historical declarations are not all production flags. CPU options, local timer, USB, storage. Boot flags generally require a rebuilt/repackaged verified BOOTIMG; a normal tester currently has no on-device bootloader menu for them. Provide a matching prebuilt safe pair, not instructions to edit flash offsets.
21. KNOWN FAILURE MODES
| Failure | Evidence / likelihood status | Required containment / release effect |
|---|---|---|
| Appears bricked after bad BOOTIMG | Known single-slot rescue dependency; owner manual recovery history | Release gate: independently available correct loader/SPFT recovery and exact pair |
| Root/data/SD corruption | No current clean-media corruption established; SDR104 CRC faults and unqualified write paths are real risks | Release gate: highest robust qualified modes with safe fallbacks, verified hashes/fsck/shutdown and no live raw writes |
| Battery drains while “off” | Screen-off is awake; actual Power Off behavior needs RC confirmation | A/B poweroff and required sleep closure; screen-off drain is a distinct mode, not sleep acceptance |
| Cannot charge / net discharge under use | Configured charger and positive historical voltage trend, no complete acceptance | Release gate: attended ordinary-source/combined-load test |
| White/blank screen or no UI | Historical shutdown handoff issue; v2 source correction, supervisor budget exhaustion possible | Polished-release correction; blocks release if installation/recovery unusable |
| Bluetooth cannot reconnect / sink silent | Short SBC pass; lifecycle unqualified; historical PCM-name bug fixed | Required targeted test; blocks release for repeated core playback failure |
| USB disappears / cannot copy music | UART01 repaired path passes three 1 MiB bidirectional checksum rounds; older Fix02 failure remains historical | Carry forward bounded integrity; wider host/reconnect/large-transfer endurance and Baseline02 regression remain |
| Settings/bonds lost after update | Preserving package exists; current full migration scenario pending | Blocks release if loss reproduced; required acceptance rehearsal before release |
| OTA cannot recover | Host-tested only, one rescue slot | E manual update limitation only with qualified preserving recovery; D if advertised updater unsafe |
| Unsafe overclock/voltage / uncontrolled heat | Stock-bin guarded OPPs pass bounded tests;1300 all-core guard reached | Blocks release on observed unsafe behavior; existing cap/thermal authority, no ceiling expansion |
| Hidden SSH exposure/default credential | No such production source default found; private image not public proof | Blocks release if found; final image authorization/listener audit mandatory |
| Diagnostics leaks private library/network information | State export intentionally private; raw collectors not universal redaction | Pre-release: dedicated shareable bundle; do not upload backups by default |
| Wrong Y2 revision/layout | Only one board family qualified; mismatch risk unknown | Compatibility release gate: reject unexpected identity, no guessed writes |
| Public image contains owner-only blobs/uncleared codec binaries | Confirmed private packaging assumptions | Distribution release gate; endpoint-off does not remove binaries |
22. RELEASE COMPLETION GATES
The former seven safety/distribution gates are retained: fresh-owner installation/recovery/keys/compatibility; lawful package composition/source/notices; storage integrity; USB transfer; charging/shutdown reserve; integrated endurance; and preserving-update/package rehearsal. They are necessary but insufficient for the intended beta. Add feature gates for native meaningful24-bit and88.2/96 where supported, the viable Classic codec set/policy/coexistence, affected regression of qualified C2/C3 and new automatic C3 startup, full same-boot system sleep/wake/restoration, admitted high OPPs and fastest robust storage. Experimental labels allow bounded compatibility feedback, never corruption or unsafe operation.
The current plan records the remaining Baseline02 and release boundaries; earlier three-pass schedules are historical. C3 support is physically proved on UART01; other hardware-conditional items remain unresolved release decisions until exact proof establishes support or a genuine limit. Missing instruments, missing peers, insufficient time or reverse-engineering difficulty are not unsupported-hardware evidence. Any permitted distribution omission remains a feature target with an explicit public exception and owner acceptance; it is not reclassified post-beta.
23. ACCEPTABLE BETA LIMITATIONS
Manual preserving beta1→beta2 update can replace fully automatic OTA if verified update/recovery remains understandable. Estimated SOC may remain visibly labeled while truthful charging/warnings/shutdown work; calibrated current/temperature depend on actual board support. Narrow named peer/card/revision compatibility, bounded experimental labeling, software-resampler fallback for an unsupported source rate, SFTP rather than MTP, and best-effort cold-power log retention can be documented.
S16-only, SBC-only, permanently disabled deep sleep, or an arbitrary HS50 cap are not accepted solely because they are simpler. Lower audio/codec/storage modes and screen-off runtime idle remain safety fallbacks. A highest robust lower storage mode becomes the actual product ceiling only after correct supported-mode investigation and integrity evidence, not by deadline preference.
24. GENUINELY POST-BETA / UNSUPPORTED
Nonessential current extensions: writable engineering lab UI, CPU rasterizer fallback, network/video/DRM playback, advanced DAC impedance/DSD features beyond proven board wiring, AP/P2P/browser modes, NCM if ECM meets performance/reliability, extra Favorites/search/playlist screens outside the current Productv2 direction, automatic BOOTIMG/A-B OTA, and broad new security architecture. These are scope choices, not declarations of hardware incapability. Existing EQ processing/product exposure is now feature-completion work.
Do not pursue SD HS400 (not an SD mode). eMMC HS400 has no established supported MT6582 path and is outside the intended ceiling set. LE Audio has no supported controller ISO path; Adaptive/Lossless have no supported encoder/integration path in this stack. Do not turn those into fake release requirements. FM/speaker absence in current software and unproven host VBUS/ID do not establish physical impossibility: FM/speaker remain nonessential/unproven, host is explicitly conditional. Only evidence can upgrade a conditional feature to unsupported.
25. PRESERVED FOUNDATIONS AND COMPLETION GROUPS
Carry forward stock ROM/preloader/LK/protected partitions, memory/reservations, bounded timer/SMP/DVFS voltage/thermal results, awake Lima, existing audio/DSP decode, one reconnect owner, checksum fix, SQLite safety, platform boundary, cryptographic verification and preserving-image guards. Modify their interfaces only where required for explicit feature completion; retain focused regression and exact provenance. Do not freeze unfinished product features merely because their fallback works.
Every row has one product target and one or more completion groups; the following searchable index includes existing capabilities that must be carried forward. B does not mean every feature is physically untested: cited bounded passes remain valid and need only affected/integrated regression. A and C may overlap because implementation is conditional on proof; D is independent of technical maturity and also covers software/package/API release checks. completion_status distinguishes mature carry-forward from pending work. A B assignment is not a claim every feature needs a fresh isolated device experiment.
| Group | Meaning | Feature IDs |
|---|---|---|
| A | MUST_IMPLEMENT_BEFORE_FEATURE_COMPLETE_BETA | F006, F007, F032, F033, F034, F046, F047, F058, F065, F075, F076, F077, F094, F108, F110, F111, F112, F113, F114, F115, F116, F132, F133, F180, F183, F187, F191, F200, F213, F221, F222, F223, F224, F225, F228, F229, F230, F231, F232, F233 |
| B | MUST_PHYSICALLY_QUALIFY_BEFORE_FEATURE_COMPLETE_BETA | F001, F002, F003, F005, F006, F007, F008, F009, F010, F011, F012, F013, F014, F015, F016, F017, F019, F020, F021, F022, F023, F024, F025, F026, F027, F028, F029, F030, F031, F032, F033, F034, F035, F036, F037, F038, F039, F040, F041, F042, F043, F044, F045, F046, F047, F049, F051, F052, F053, F054, F056, F057, F058, F059, F060, F061, F062, F063, F064, F065, F067, F068, F069, F070, F071, F072, F073, F074, F075, F076, F077, F078, F079, F080, F081, F082, F083, F084, F085, F086, F087, F088, F089, F091, F092, F093, F094, F095, F096, F097, F098, F102, F103, F104, F105, F106, F107, F108, F109, F110, F111, F112, F113, F114, F115, F116, F117, F119, F120, F121, F122, F123, F124, F126, F127, F128, F129, F130, F132, F133, F135, F136, F137, F138, F139, F142, F143, F144, F145, F146, F147, F148, F149, F150, F151, F152, F153, F154, F155, F156, F157, F158, F159, F160, F161, F162, F163, F164, F165, F166, F167, F168, F169, F170, F171, F172, F173, F174, F175, F177, F178, F179, F180, F181, F182, F183, F184, F185, F186, F187, F188, F189, F190, F191, F195, F196, F197, F198, F199, F200, F202, F203, F207, F208, F209, F210, F211, F226, F228, F229, F230, F231, F233 |
| C | REQUIRED_IF_HARDWARE_SUPPORTS_IT | F030, F046, F075, F076, F132, F133, F180 |
| D | RELEASE_DISTRIBUTION_BLOCKER | F004, F006, F007, F111, F112, F113, F114, F115, F116, F192, F193, F194, F210, F212, F213, F216, F217, F218, F220, F221, F222, F223, F224, F225, F226, F227, F232 |
| E | ACCEPTABLE_BETA_LIMITATION | F055, F134, F201, F204, F206, F214, F219 |
| F | GENUINELY_POST_BETA_EXPERIMENTAL | F018, F048, F050, F066, F090, F099, F100, F101, F125, F131, F140, F141, F176, F205, F215 |
| G | UNSUPPORTED_DO_NOT_PURSUE | F118 |
Verdict: FEATURE COMPLETION IN PROGRESS. Baseline02 is the latest sealed integrated candidate, with qualified preceding CPU-idle architecture. Its new image/automatic cold boot and the independent feature/release gates remain. Earlier weekly schedules are historical; no scope reduction or release clearance is inferred from this documentation synchronization.
Historical reclassification validation receipt — 2026-10-02
All233 feature IDs, implementation states, physical-evidence strings, failure modes, test/evidence references and original source references preserved;48 patch entries retained. F233 alone changes evidence from UNTESTED to SOFTWARE_VALIDATED using candidate4's newer seal.91 priority promotions comprise29 former D and62 former C rows; they are scope changes, not91 new coding projects. JSON required fields/enums/counts, matrix consistency, all hardware-conditional questions/proof and completion-group indexes pass. Documentation checker:278 Linux pages/4005 local links and56 Reborn pages/559 links, zero problems; git diff --check passes. No implementation tests, build, flash, physical test or push ran. Only these three release documents and the two standing roadmap summaries were edited in this reclassification; other pre-existing documentation work was preserved.
Historical audit snapshots through 2026-10-03 before UART01 closure
The retained text below records earlier source cuts and CPU failures. Its “current”, “next”, default-off and UART blocker statements apply only to those images and sessions; Sections 2 and 5 above govern the Baseline02 state.
Y2Linux + Reborn Community Beta — complete current-state feature audit
Baseline02 owner-selected automatic C3 policy — 2026-10-03
The new integrated Baseline02 candidate enables qualified CPU0 C3 automatically once after static foundations pass. This supersedes default-off as the proposed new-image production policy. Kernel registration still starts quarantined; all existing dynamic entry/UART ACK/context/clock/timer/fault guards remain intact. Source/fault tests and live ARM policy-control readback pass on installed UART01. New-image cold-boot policy qualification remains NOT_RUN until owner installation. Preceding UART01 C1/C2/C3 hardware evidence remains qualified in its recorded bounded scope; no full-suspend, endurance or electrical battery promotion. See Baseline02 record.
UART01 runtime CPU idle hardware qualification — 2026-10-03
C1 WORKING; C2 WORKING; C3 WORKING_AND_REPEATEDLY_OBSERVED on exact installed UART01/e9e8d63/b71b4688/kernel6.18.0-y2linux-cpu-c3-uart-01/rootv1.20, same fd955840 boot and taint0. C2+6971 entries/50.654676s of60.054881s (84.35%), zero clock restore faults. C3 proves21 RGU/SRAM/budget1 reset returns then +3624 entries/39.204662s of60.088344s (65.25%); final3647 entries/resumes/ successes/UART ACKs/timer contexts/CIRQ clone+flushes, all restore failures0. Preserved hotplug, five OPPs, timers, eMMC/SD, screen/workload/playback and USB/independent Wi-Fi regressions pass. UART1 stays clocked; correct PIO sleep/global request-ACK ownership closes admission without forced gating.
F027/F028/F030 rows now reflect this bounded physical scope. Current-boot C3 normal policy is enabled; fresh boots remain default-off/budget0. Persistent boot policy, new wake sources, endurance, full system suspend and electrical battery improvement remain separate release work. #28/#31/#34 remain open; no general feature-complete/release or public-distribution promotion. Current authoritative hardware record and joined out/cpu-c3-uart-physical/20261003T183259Z-uart01/final-verdict.json supersede all historical never-entered/NOT_RUN/UART1-blocked statements below. No new image build/flash/push; both sealed payload hashes unchanged.
C3 UART sealed candidate boundary — 2026-10-03
Exact MT6582 PIO-owner admission/global UART request-ACK integration is fixed; C1/C2 and all unrelated clock/context/timer/OPP architecture are preserved. Candidate out/y2linux-cpu-c3-uart-candidate/ at Linuxe9e8d63/Rebornb71b4688 is freshly built/sealed. Production375/source109/native host/Reborn238 tests, ARM/QEMU/config/DT/modules/ABI/ELF and preserving package checks pass; five minimal-host dependency skips have separate native/ARM coverage. Sources and collector limitations are attached; package remains owner-local.
Fresh closing SSH still verifies installed candidate02/unchanged boot, C3 disabled/budget0/entries0; C1/C2 working evidence remains authoritative. C3 has never entered. #28/#31/#34 and CPU idle acceptance remain open until owner-installed UART01 gives real ACK and bounded same-boot context/timer wake. No hardware-limit proof, full suspend/electrical battery claim, protected data change, flash/push or milestone closure. Owner alone installs BOOTIMG+Y2ROOT with the preserving scatter; harness is ready for first entry then20 further cycles. Six preexisting owner doc edits remain separate. Exact source, hashes, checks and owner action are in the C3 UART handoff.
C3 UART admission software correction — 2026-10-03
Candidate02's C1/C2 WORKING results remain valid; C3 has never entered. Exact MT6582 sources show UART1 is in the default blocker mask but PIO UART owners conditionally permit their clock and enable sleep before the global SPM request/ACK. This missing integration is now corrected with guarded ownership,100us ACK refusal, exact restore and diagnostics. No gate/FIFO/ data/baud/reset write, unrelated guard removal or C1/C2 redesign is added. The new source/candidate boundary remains SOFTWARE_READY_NEEDS_NEW_FLASH; no hardware ACK or DORMANT success is claimed. See Y2-CPU-C3-UART.md and Y2-CPU-C3-UART-PHYSICAL.md.
CPU idle candidate02 hardware result — 2026-10-03
Candidate02 is flashed and tested at Linuxdb0234e/Rebornb71b4688, kernelidle-02, rootv1.19, unchanged bootf155196b-64d4-45a4-88b3-27755a1a8926. **C1/C2/parking WORKING; C3 BLOCKED BEFORE ENTRY BY UART1. Overall CPU idle acceptance FAILS C3.** This supersedes candidate02 NOT_RUN and flash instructions in older sections. C2+6772 entries/50.669913s of60.048084s (84.38%), restore failures0. All four C1 states, hotplug/power copies, five OPPs, timer continuity, eMMC/inserted-SD integrity, screen/playback and USB/Wi-Fi observer pass.
SPI0 now releases correctly; settled CPU0/747.5MHz preflight has only UART1 PERI0x20000 unmet, all other exposed static categories ready. Exact-kernel UART probes retain LSR0 and observe nonzero divisor1; they do not establish safe gating. No actual dormant entry/context/CIRQ/GPT4 deep wake, repeated cycles or hardware-limit proof. C3 stays off. Main qualification taint0; removed diagnostic probes leave expected out-of-tree taint4096 in the final same boot. The harness now waits again for natural parking after synced storage; targeted100 locked CPU/idle/suspend/workload tests pass. No kernel/root image change this turn.
No electrical battery benefit or full-system suspend qualification; SD-absent and radio endurance remain unobserved. No flash/push/protected-partition write, milestone activation/closure or unrelated release promotion. See the current physical receipt and source/harness record.
CPU idle candidate02 software boundary — 2026-10-03
Installed01 C1/C2/parking regressions pass; C3 UART1/SPI0 preflight fails with zero actual dormant entries. Follow-up02 is sealed at Linuxdb0234e/Rebornb71b4688, with100 CPU owner/fault cases,366 production cases/native prerequisites,238 Reborn cases, fresh ARM kernel/root, QEMU/dependencies and preserving-package checks passing. Candidate02 is NOT_RUN physically, C3 SOFTWARE_READY_NEEDS_NEW_FLASH; raw UART/SPI decisions and actual deep wake still require the owner flash. No full-suspend/battery-energy/unrelated release promotion, no flash/push. See exact source/hashes/handoff.
CPU idle candidate01 hardware result — 2026-10-03
Owner-installed Linux3dfb5f5/Rebornb71b4688 is now tested on unchanged boot e0eb2f36-7c1f-4007-99e2-81d2eae047d4, taint0. C1 and C2 are WORKING; C2 adds7,040 entries/49.674049s in60.047965s (82.72%), restores/media errors0. Natural parking, three hotplug cycles, all five OPPs before/after preflight, screen/workload wake, real playback and USB/independent Wi-Fi integrity pass. Overall CPU idle qualification FAILS: C3 preflight retains UART1/SPI0, PERI0x02020000, and no physical dormant call occurs. Other reported static prerequisites pass. C3 remains off; dynamic deadline/context/CIRQ wake unobserved.
Exact MT6582 source follow-up corrects SPI idle polarity/UART DMA metadata, retains unknown/live/aliased engines and adds read-only handoff operands. Candidate02 requires a fresh preserving build and owner flash; no claim that it already releases both clocks. Electrical battery benefit and full-system suspend remain unqualified. No flash/push, protected-data write, external issue closure or unrelated release promotion. See physical result and source follow-up.
CPU idle software handoff — 2026-10-03
One fresh preserving CPU idle candidate is sealed and software validated at Linux3dfb5f5/Rebornb71b4688. Kernel/config/DT/modules/ABI, Buildroot/Reborn ARM, production364 cases with native prerequisites completed, Reborn238 cases, QEMU/ELF/dependencies and package validation pass. C1/C2 are physically WORKING on the verified installed baseline; C2 shows useful84% residency and a controlled enabled/disabled comparison. C3 is SOFTWARE_READY_NEEDS_NEW_FLASH, with no actual dormant entry claimed. Candidate hardware acceptance remains NOT_RUN; the single automated SSH qualification follows owner-only flash. No flash/push, Y2DATA or protected-partition write, milestone closure or unrelated release-gate promotion. Exact hashes, source ledger, changes and owner command: completion record.
Sealed feature-completion integration — 2026-10-02
READY FOR HARDWARE DECISION RUN. The implementation pass records the ten-workstream results, fresh build/tests, exact hashes and single owner handoff.233features and their release requirements remain. Native wired24/high-rate programming and full-resume closure remain unresolved; physical qualification and public distribution are separate open gates. No flash or push. Older snapshots below are historical.
Audit date: 2026-10-02, Europe/Berlin. This is the master factual inventory and feature-complete planning baseline for Community Beta 1. It does not authorize implementation, a build, a flash, a hardware test, a milestone closure or publication. The separate feature-completion beta plan defines the proposed next pass. Machine-readable inventory contains identical feature rows, all active kernel patches, repository heads/history, tracked-text census, marker classifications and gate declarations.
Implementation update — 2026-10-02
The owner separately authorized the ten-workstream engineering campaign. This update records implementation, not another broad audit. See implementation/results, tester guide and source/distribution gate. Starting sources are Linux9ac2c0b / Reborn eb64b8b, including boot polish. Read-only SSH now proves candidate4 installed (dcbd7d1/b92d312, taint0); HS200/SDR104200MHz selection and zero current counters are narrow observation, not endurance. No valid PM ring exists for a new resume diagnosis.
Storage tuning/recovery/lab containment, typed sleep evidence, native ALSA S32 negotiation, private codec endpoints/controls/telemetry, Productv2 EQ/sleep/details, redacted tester export, fresh first-owner provisioning and release checks are implemented in this pass. The following table's affected rows are synchronized with JSON. Earlier source/census and seal-time statements below are historical snapshots; the implementation report owns the final source/build identities. No release target is downgraded and no new physical qualification is claimed.
1. EXECUTIVE SUMMARY
Release definition: a polished, feature-complete community beta contains all intended major product capabilities. It may retain bugs, bounded experimental labels and documented peer/card compatibility limits. Major capabilities may be omitted only for demonstrated hardware limits, unresolved legal/distribution constraints, or genuinely nonessential experiments. A working lower mode, difficulty, reverse engineering or missing qualification does not make a product requirement optional. Safety remains mandatory: an experimental label never licenses corruption, unsafe power behavior or unusable recovery.
The existing functioning Linux music player and all233 feature rows /48 kernel patches remain the factual inventory. The release target includes high-quality wired audio and meaningful24-bit output, native88.2/96k where the exact AFE path permits it; viable Classic SBC/XQ/AAC/aptX/HD/LDAC/ABR; C2 and hardware-conditional C3; same-boot deep sleep with Power/RTC wake; all admitted598–1300MHz OPPs; fastest robust storage modes; reliable high-performance USB; battery/charging; polished Productv2; preserving update/recovery.
91 rows change from former C/D limitation/post-beta priorities to required or hardware-conditional scope. All233 receive independent product-target, implementation, evidence, distribution and completion-group fields. Counts:146 CORE_RELEASE_FEATURE,59 FEATURE_COMPLETE_TARGET,5 CONDITIONAL_ON_HARDWARE,7 ACCEPTABLE_BETA_LIMITATION,1 UNSUPPORTED_HARDWARE and15 EXPERIMENTAL_POST_BETA. Native24-bit and SDR104 retain hardware conditions within FEATURE_COMPLETE_TARGET, so there are7 hardware-conditional rows overall. These are scope counts, not claims of readiness. Historical A–E/beta labels remain only in JSON legacy_release_classification, with exact promoted IDs and a counting rule.
Current verdict: FEATURE COMPLETION IN PROGRESS. Native high-resolution wired output remains unresolved; optional Classic endpoints are now enabled in an explicit private integration profile. Full resume and C3 still require physical closure. The previous seven safety/distribution gates remain necessary but do not alone define completion. Plan: three batched engineering passes → one integrated RC → physical qualification/endurance → release. A seven-day target is aggressive and conditional; unresolved required capabilities delay beta rather than silently shrinking its feature set.
Current source at 2026-10-02T18:14:11+02:00: Linux e2dd583c95fd42782f6e03a6b4d765d5bb571a94, Reborn b92d312cc2dc4b74f57a1a9a7b1407e34707137a. Candidate4 is now sealed/software-validated (304 tests in receipt), unflashed/unqualified. Candidate3 remains the latest reported installed/SD-observed pair; Fix02 remains the latest broad hardware qualification. This reclassification ran no implementation, build, flash, physical test or push.
2. EXACT SOURCE / RUNTIME BASELINE
| Baseline | Exact identity | What it establishes |
|---|---|---|
| Y2Linux current HEAD at cutoff | e2dd583c95fd42782f6e03a6b4d765d5bb571a94, main | Newest documentation receipt; candidate4 built from dcbd7d1, code 3920a54 |
| Y2Linux entry HEAD | c5f0eecf51901f51f16f80a3291a7a8630cc75ba | Candidate3 built source; later fc472d5 records its seal |
| Reborn current HEAD | b92d312cc2dc4b74f57a1a9a7b1407e34707137a, main | Product UI v2 and negotiated storage Diagnostics |
| Working trees on entry | Both clean | No dirty user work altered; audit later creates documentation only |
| Local/remote relationship at entry | Linux45 ahead of cached origin/main; Reborn7 ahead | These are local tracking refs, not a fetch or proof of remote tip; no push performed |
| Branches/tags | Full branch -avv, tags and last80 commits in JSON | main, hardware-final and historical build/research worktrees retained; no tags returned |
| Sealed candidate3 | kernel 6.18.0-y2linux-sd-sdr104-diag-03; root 2025.02.18-platform-v1.13; release 1.0.0-sd-sdr104-diag-candidate.3 | SEALED:301 software tests with3 native skips, ARM/ELF/package/inventory passes. New draft reports flashed/SD characterization; not whole-system qualification |
| Previous sealed package | out/y2linux-storage-ceiling-02-candidate/; Linux 4db6d6dee8e8b21d85f4f7dfa8e6b7aac82d5e56; Reborn current HEAD | Manifest/versions and passing stored package validation exist |
| Candidate2 images | BOOTIMG 5c17f744a0569feb16f6954531024ae7dcafee10bf14cbdb2eb18ba5d083fd36; Y2ROOT dc611011ce6f129cf18a61a28f9435e2504ade1d416f0b78d6db26764fd20a59 | Manifest identities, not new whole-device readback |
| Previous installed/observed report | Candidate2, kernel 6.18.0-y2linux-storage-ceiling-02, root 2025.02.18-platform-v1.12; Oct2 handoff records Oct1 check | Superseded by draft candidate3 SD report; no live-device connection by this audit |
| Latest broad physical run | Linux 1a1a6693dcd82f62daecd4c1491ef512823a86c5, Reborn 77cf83e09a18f82a867040e72d35b6e70b26fa85, Fix02, Sep29 | Physical report; private raw qualification-summary.json independently read |
| Retained external-flash fallback | Hardware02, kernel 6.18.0-y2linux-hardware-02, root 2025.02.18-platform-v1.4 | BOOTIMG b2a2c3bcb7cc7783828882e447e8b867453cb5b65846ce63577076b1ca4afeea; root 63dbd0a198cd86e847c10ed163fd14b2cbe269595fa1988c99ac8393160bb547; recovery asset, not universally qualified public image |
| Candidate3 sealed / latest reported installed | out/y2linux-sd-sdr104-diag03-candidate/; Linux c5f0eec; Reborn b92d312 | BOOTIMG 94b9976dd3fed82122197acd1f8de1fa116b346f0f1a1db0330b529261798689; Y2ROOT b163d0d1f9301c6067c1e46577942ca5dd3f88bac6c93b1a581425879310f1a7 |
| Newest candidate4 source / build | kernel 6.18.0-y2linux-sd-sdr104-diag-04; root 2025.02.18-platform-v1.14; release 1.0.0-sd-sdr104-diag-candidate.4 | Sealed out/y2linux-sd-sdr104-diag04-candidate/;304 software tests PASS plus ARM/ELF/inventory/legal-info; physical NOT_TESTED |
| Latest sealed candidate4 images | Built Linux dcbd7d1, Reborn b92d312; receipt at e2dd583 | BOOTIMG 139e1d05fb7d5bdada4a499eb2fbfebf21467317fd01a2ee1189763284aecd19; Y2ROOT a88aa8395dc9dcd53e2700a4cc60bcb4ac81940d95d4fc7871c218222e629384 |
Sources: release identity, kernel config, candidate2 receipt, local candidate2 manifest.json, metadata/versions.json, validation/summary.json, and owner clarification. Build artifacts were observed read-only; no interference with the concurrent candidate3 build.
Source/build/physical reconciliation
The first audit entry correctly recorded the owner's candidate3 build-in-progress clarification. Later work sealed and physically characterized candidate3, then built candidate4. The committed SD report at e2dd583 now seals candidate4 and explicitly says it is unflashed. Its candidate3 seal-time footer still says unflashed, while the newer candidate3 physical section records characterization; retain both chronologies and prefer the newer observation. No new device access or independent raw candidate3 sweep verification was performed by this reclassification. Candidate4's304 software tests are not physical proof.
Other disagreements
| Claim in older material | Current evidence and audit disposition |
|---|---|
| CURRENT_PLATFORM_STATE and candidate-index name Fix02 as installed or candidate2 as unflashed | Oct2 handoff explicitly says candidate2 installed; use its narrower storage check. That entry state was overtaken during audit: candidate3 sealed/reported characterized; candidate4 is newest sealed software candidate, still physically untested |
| Y2-STORAGE-CEILING opening says no mode >50 MHz has run | Its later candidate1 section proves HS200; Oct2 handoff adds candidate2 UHS/DDR50 and failing SDR104. Opening is stale |
| Candidate2 validation JSON says flashed=false / NOT_RUN | That is its seal-time receipt, predating owner flash; preserve receipt history, do not rewrite it as a later test |
| Fix03 USB problem described as defective RX re-arm | Fix03 source/audit establishes legitimate DMA progress tripped a per-jiffy storm guard; progress-aware guard repairs that. The two observed 0/10 failures remain valid until a fresh test |
| 0009 patch filename says readonly | It now contains production write firewall, runtime PM, mode ladders, tuning and writable lab interface. Not obsolete; name is historical |
| CPU high OPPs unqualified / all four cores always on | Fix02 admits1196/1300 with voltage evidence and automatic parking. Full thermal/endurance envelope remains unqualified |
| Low-battery disabled / no percentage / only70mA charging | Current source enables provisional voltage shutdown and SOC estimate; charger supports70/450/650mA. No measured current or calibrated gauge inferred |
| BlueALSA4.3.1 / SBC only compiled | Current5.0.0 optional private encoders compiled, runtime explicitly SBC-only. Binary redistribution implications remain even when endpoints disabled |
| Native high-resolution decode means hardware24-bit/96k | AFE source accepts S16 at44.1/48 only; decode converts to sink format/rate |
| exFAT unsupported in historical installation guide | Current config contains EXFAT_FS/exfatprogs and platform accepts exfat; current physical exFAT receipt not located |
| UI v1 Connectivity/power/developer placeholder routes | Product v2 replaces them with Settings, Quick Settings sheet and typed diagnostics; current Screen enum is authoritative |
| Platform-boundary doc says9 exceptions and no core filesystem I/O | Guard has10 allowlist tuples, permits app-owned core session I/O, and scans Rust. Graphics C uses standard DRM and explicit splash protocol |
| Export Player Data means bug report | It calls export-state --include-database; that is a private state backup, distinct from redacted Reborn diagnostic bundle |
| GPU epic still open means awake rendering unfinished | Actual Lima rendering/runtime PM work; full system-suspend qualification is the unresolved separate dependency |
| Successful legal-info means image publishable | Collector warnings, owner firmware and private codec notices explicitly leave distribution gates open |
GitHub was queried read-only using the existing account: open #16/#27/#28/#29/#31/#32/#33/#34 remain. #33 milestone text still describes early work and cannot supersede current source. No issue/milestone mutation or new implementation authorization occurred.
Evidence and maturity rules
Product target is independent of implementation and evidence. Every row retains its original implementation/evidence unless a newer receipt justifies a correction (F233: UNTESTED→SOFTWARE_VALIDATED from candidate4 seal). NOT_IMPLEMENTED means absent end-to-end capability even when helpers exist. The schema preserves STUB_OR_PLACEHOLDER and UNIT_TESTED for historical compatibility; neither is used to inflate evidence. PHYSICALLY_QUALIFIED means the cited bounded older pass, not whole-current-candidate acceptance; all current-candidate qualification flags remain false. No ENDURANCE_QUALIFIED result is invented.
Product axes: CORE_RELEASE_FEATURE, FEATURE_COMPLETE_TARGET, CONDITIONAL_ON_HARDWARE, ACCEPTABLE_BETA_LIMITATION, UNSUPPORTED_HARDWARE, EXPERIMENTAL_POST_BETA. release_required is REQUIRED, REQUIRED_IF_HARDWARE_SUPPORTED or NOT_REQUIRED; hardware_conditional and public_distribution_state remain independent. The additional release_requirement distinguishes polished UX from feature and conditional completion. A technically viable codec can be FEATURE_COMPLETE_TARGET with DISTRIBUTION_BLOCKED_OR_REVIEW_REQUIRED. NOT_SEPARATELY_ASSESSED distribution status is not clearance.
Completion groups A–G now mean implementation, physical qualification, hardware condition, release/distribution, acceptable limitation, genuine experiment, and unsupported respectively; they are not the old A–E priorities. Groups can overlap. Existing bounded passes carry forward with affected/integrated regression; a B assignment is not233 new isolated hardware experiments. Historic classifications are retained in JSON solely for comparison.
5. CPU / POWER
Current CPU idle evidence — 2026-10-03
Installed baseline Linux131ee46/Reborn7f9df39, same bootcee326c1, now physically closes C1 and C2: four-core WFI residency/entries/rejections pass; natural parking reaches CPU0/owner0xe; SLIDLE adds7182 entries and50.763741 seconds in60.404076 seconds (84%), with clock restore failures0 and fsynced eMMC/inserted-SD integrity. All five guarded OPPs and three physical hotplug cycles pass. Real wired playback adds352256 decoded frames, errors0, real PlaybackNormal lease and all-core demand wake. These results supersede the historical C2 gap below for the installed baseline; the coherent new candidate still requires qualification. C3 remains SOFTWARE_READY_NEEDS_NEW_FLASH, default off until one backstopped entry and 20 checked cycles. No battery-life or full-system-suspend pass is claimed. Physical record, implementation and harness.
| OPP | Source voltage | Strongest physical evidence | Beta interpretation |
|---|---|---|---|
| 598 MHz | 1.15 V | Fix02 clock/readback/integrity and idle | Carry forward |
| 747.5 MHz | 1.15 V | Fix02 QoS floors, readback and interaction | Carry forward |
| 1040 MHz | 1.15 V | Fix02 four-worker integrity16647 iterations, no errors | Carry forward |
| 1196 MHz | 1.20 V | Fix02 integrity18604 iterations, peak71.5°C | Required admitted OPP; mixed-load/endurance/charging comfort remains |
| 1300 MHz | 1.25 V | Two workers5247 iterations/no errors; four workers reached75°C test guard in16.8s | Not evidence of a safe sustained worst-case thermal envelope |
Bin and PWRAP admission are real:7-bit arbiter reads 0x7f, selectors 0x48/0x50/0x58; unknown prerequisites gate higher modes. Fix03 changes admission_error=1 (successful QoS change return) to0; this is a label correction, not a newly safe voltage. Thermal cooling overrode live QoS down to598 MHz. The sampled7796 frequency/voltage pairs establish bounded ordering observations, not an electrical waveform capture. Fix02 report, DVFS source.
Eight bounded workload classes exist: Idle, PlaybackNormal, PlaybackHeavy, Interactive, ArtworkDecode, LibraryScan, NetworkTransfer, Maintenance. Application producers request semantic leases; the platform owns frequency policy. Reborn's partial-write lease defect was repaired before Fix02. Existing expiry and thermal precedence should not change before beta.
GPT6 supplies the13-MHz basis; architectural clocksource and per-CPU PPI29 clockevents work with CNTFRQ13MHz on every CPU. GPT4 is sole broadcast owner. Fix02 highres/nohz and ~1.09ms median requested1ms sleeps pass. C1 WFI works. C2 SLIDLE failed because inherited TOPCKGEN+4 was0 instead of expected0x0f; Fix03 admits both source-backed baselines and preserves checked0x8f programming/restore. It has no subsequent full physical pass. C3 stays default off and unqualified; runtime CIRQ/deadline handoff is distinct from system suspend.
Automatic parking worked3→2→1 at5-second pacing; display wake restored all CPUs in0.63s. Fix03 prevents the wake's own burst from doubling hold time. Screen-off idle improved to2.71% of four-core capacity /171 IRQ/s in a330-second sample with USB, charging and radios; it is not measured battery endurance. Screen-off runtime idle remains required for playback and fallback, but is not the full-sleep product. Close C2; investigate and qualify C3 if viable; full same-boot sleep/wake is a core release requirement.
CPU/PMIC die sensors are not battery sensors. DT retains110°C passive/120°C critical CPU and150°C PMIC critical trips. Their natural intervention is not physically exercised at the high ceiling. The previous owner's accepted thresholds are not changed by this plan. Test realistic charging+playback/scan/radio load under the existing attended guard, and use an existing lower ceiling if needed; do not pursue higher voltages or thermal limits.
CPU idle completion ledger (F028–F030)
C1 is mature. C2 is implemented/enabled: Fix02 saw zero entries because bus DCM read0 instead of0x0f; Fix03 accepts both with exact restore. Its release gap is actual entry/residency, timer continuity and wake under normal parking. C3 is implemented/disabled and CONDITIONAL_ON_HARDWARE, with substantial existing code, not a blank implementation project.
| C3 prerequisite | Current source / evidence | Required closure |
|---|---|---|
| Topology/OPP | spm.c requires CPU0 alone, CPUs1–3 physically off, frequency≤747.5MHz; existing parking works | Observe normal prerequisite admission; do not force unsafe hotplug or confuse C3 entry-frequency cap with active1300MHz removal |
| Runtime PCM | Separate stock deep-idle PCM, infra/DDRPHY retained; normal PCM restored on abort/return | Validate runtime program behavior on board; system-suspend PCM proof is not equivalent |
| CPU context | cpu_suspend, Linux MMU/CP15/VFP/GIC ownership, BIU/L2 register save/restore, boot resume vector | Same-boot register/timer/control integrity after actual dormant return and abort |
| CIRQ | Begin clones/masks, end replays; readiness is required | Actual pending interrupt replay, no lost/duplicated wake |
| GPT4 deadline | Sole broadcast clockevent; C3 TIMER_STOP/OFF, monotonic next timer must exceed2ms | Prove earliest-deadline handoff and interrupt wake, near/past deadline refusal, no time jump or stalled per-CPU timers |
| Domains/clocks | Both SPM power status registers, PERI/INFRA masks, checked bus baseline; preflight lists every unmet condition | Resolve actual blockers without deleting safety predicates; verify exact clock restore |
| Entry/wake | No retained C3 entry; failures/aborts latch broken state and fall back to C2/WFI | Entry/resume evidence, repeated idle/wake and measured practical power benefit |
Sources: SPM, idle, runtime policy, runtime PCM, resume vector, local timer, CIRQ. C2+parking could offer a comparable practical idle result only if measured drain/latency demonstrates it; current CPU percentages do not. Such an explicit product tradeoff requires evidence and owner decision, not automatic C3 deferral. Full system sleep remains a separate core feature regardless.