mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-10-15 08:50:15 +00:00
DESIGN.md is the reconciled high-level design after the 2026-09 restructure: system context, roles, build-time composition, layers and dependency rules (with the known exceptions), threading and event loop, end-to-end flows, cross-cutting concerns and the upstream alignment policy. docs/adr/ holds the nine decision records (ESP32 boot layout, S3 native USB, overlay precedence, BLE privacy, Zephyr main pin, SX126x duty cycle and RX-busy gating, adaptive contention window, storage backend, WiFi companion boards). ARCHITECTURE.md stays the detailed component reference and links both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
904 B
Markdown
21 lines
904 B
Markdown
# ADR 0003 — Devicetree overlays: board.overlay first, conf-paired overlays after it
|
|
|
|
Status: accepted (recorded 2026-09-25)
|
|
|
|
## Context
|
|
|
|
`board.overlay` goes into `EXTRA_DTC_OVERLAY_FILE` **first**, so overlays paired with later confs
|
|
(`repeater`/`pm_esp32`/`esp32s3_usb`/`no_display`) override it — matching the conf chain's own "user extras last"
|
|
rule. This was the opposite order until 2026-08-28, which silently broke `esp32s3_usb.overlay`'s console reroute
|
|
on the boards that choose a console in `board.overlay`, and `pm_esp32.overlay`'s SX1262 NSS sleep-hold on
|
|
`heltec_wireless_tracker`. `partitions.overlay` stays last.
|
|
|
|
## Decision
|
|
|
|
Overlay order mirrors the conf order: board first, conf-paired overlays next, `partitions.overlay` last.
|
|
|
|
## Consequences
|
|
|
|
A conf-paired overlay can always override a board default; a board that must win has to change its board.conf
|
|
pairing, not the order.
|