Repository navigation
Conversation
…, silent dry-grid observability
M3.B boot timebase supervisor — implementation checkpoint (2026-10-23)Stacked Draft PR #291 on M3.A #290 (checkpoint ancestry e820407/true on-wire 7c95). Exact code HEAD
|
|
Integrated into main through PR #299 — historical stacked review closed. Verified on 24 Oct 2026: this PR's exact HEAD This PR targeted an intermediate stacked branch, not |
M3.B — Boot-timebase orchestration stacked on proven M3.A
Base PR #290 (
feat/m3a-persistent-sv-grid-20261023), ultimately checkpointe820407.../ PCAP-verified SV/PTP source7c95f70c. Do not merge directly intomain, public stable, or checkpoint before hardware FAT.What changes: guarded Kconfig
CONFIG_AR_PTP_BOOT_SOURCE_AUTOSTART(default n; explicitly y in isolated injector bench sdkconfig defaults when phase servo is enabled), core0 low-priority boot clock supervisor waits for ETH PHY UP and configured SOURCE only, uses existing verified PTP SOURCE start, bounded exponential retries (four max), no self-promotion for RECEIVER/MONITOR, and never sends SV on its own. Existing 200ms dry-grid preflight from M3.A automatically aligns GPTimer and 1Hz phase observer once boot SOURCE is usable, without USB/Studio or SV START. Keep low-rate phase observer telemetry, never claim GNSS/global evidence from boot readiness.Ownership: Manual
PTP START,PTP STOP,PTP CONFIGatomically disable boot auto-start only until reboot. Explicit PTP START on a running SOURCE is idempotent and must not reseed EMAC. Studio window/USB shutdown requests only SV STOP, not PTP STOP; operator explicit PTP STOP remains available. M3.A unchanged and retained as parent branch.Quality: constexpr boot role/admission/backoff pure policy with GCC/Clang wrap and negative tests; Studio workspace shutdown regression; scoped Draft ESP32 firmware and native Qt matched-image preview CI; no wire codec, Ethernet payload, 4I4V phase or SV BER changes.
Limitations / gates: SOURCE background autoboot is lab-only opt-in; external GM discovery/selection/BMCA not implemented here (M3.C). GPTimer allocation still goes through existing publisher-idle preflight, but does so autonomously with no GUI START; moving all physical timer control into a dedicated supervisor is future isolation work if hardware shows ownership races. Hardware FAT requires PTP and 4k/4.8k dry grid readiness after boot, 100 STOP/START, host disconnect, no unexpected GM source, and ARSAS+DigSub SV/smpSynch verified. SIPROTEC 5 global source interop is separate. Keep Draft until tested.