Commit Graph
9 Commits
Author SHA1 Message Date
liquidraver 946b871d46 boot reset cause: plain-English hints in the restart notice, fix nrf52840 vbus wake docs 2026-09-19 21:35:22 +02:00
liquidraver 348a6e7fe1 Merge branch 'dev' of https://github.com/liquidraver/ZephCore into dev 2026-09-19 21:20:14 +02:00
liquidraver fb6a303678 ship heltec v4-r8: build.sh, mesh america catalog (folds into heltec v4 tile), trim board docs, display.rotate list 2026-09-19 21:07:39 +02:00
Pieter ViljoenandClaude Opus 5 6ec31e7b7f capture the reset cause at boot instead of consuming it in main()
hwinfo_get_reset_cause() reads a latched register. It was read inline in
main_companion.cpp and cleared there, so the repeater, room server and
observer never read it and never cleared it: their flags carried into the next
boot, and whichever role read first defined what any later reader would see.

helpers/boot_info.c reads it once in a SYS_INIT at POST_KERNEL, logs it,
stores it and clears the register. That runs before main() on every role.
zephcore_boot_reset_cause() hands out the stored copy and reports false where
the platform has no support, which a caller can distinguish from a cause of 0.

The clear's return is discarded deliberately: ESP32 has no
hwinfo_clear_reset_cause() implementation, so the weak stub returns -ENOSYS.
The capture is still correct there; only the next boot's reading is not.

Logging in boot_info_init() rather than only in the consuming role matters
because the clear now happens everywhere. Without it a repeater that rebooted
on WATCHDOG or LOCKUP would have the evidence cleared and recorded nowhere,
where before it survived in the register for whoever read it over SWD.

main_companion.cpp reads the stored copy and renders through a table with one
row per RESET_* bit, so a cause with no label is no longer logged as bare hex.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 11:58:01 -07:00
liquidraver 7331ca6c58 sync with upstream but held off the companion CLI 2026-08-29 22:08:59 +02:00
liquidraver ca280c52ed vcontact key fix 2026-08-29 21:26:12 +02:00
liquidraver 5bf3c577c9 tune cad detection across all chips 2026-08-29 17:31:39 +02:00
liquidraver 27ea7e41a5 flash cleaning improvements 2026-08-28 09:41:43 +02:00
liquidraver 8c0464ea30 logo thiccification and docs chores 2026-08-24 21:43:40 +02:00