Documenting two roadmap decisions so the public board reflects them:
Scope split. Kernel primitives (k_*, sys/*) belong in this repo. Larger upstream subsystems are planned for a companion repo rather than Boreas itself:
- Settings subsystem — after log/shell, likely the most-used subsystem in shipped Zephyr products (calibration, provisioning, persistent state); maps cleanly onto NVS.
- ZBUS — fast-growing default app-architecture answer in the NCS/Golioth ecosystem; mostly pure software over existing primitives (
k_mutex, k_sem, k_msgq).
The verbatim-port thesis these depend on is validated: upstream SMF runs on Boreas with only the three small shims tracked in #44.
k_poll stays deferred (reaffirmed). App-level usage is rarer than its reputation — the heavy users are internal to stacks not being ported (net sockets, BT host), and modbus does not need it. k_event (wait-any/wait-all with mask, full 32 bits as of #42) covers most app-level multiplexed-wait patterns and is the migration answer for consumers. FreeRTOS QueueSets do not map to Zephyr's poll-event model (registration semantics, no signal objects), so k_poll would be a from-scratch wait-queue build — and every new blocking path re-enters the object-lifetime minefield. Revisit only with a concrete consumer.
Feature-track sequencing: #45 (ring_buf) → #46 (k_mem_slab + k_fifo) → companion-repo subsystems.
Documenting two roadmap decisions so the public board reflects them:
Scope split. Kernel primitives (
k_*,sys/*) belong in this repo. Larger upstream subsystems are planned for a companion repo rather than Boreas itself:k_mutex,k_sem,k_msgq).The verbatim-port thesis these depend on is validated: upstream SMF runs on Boreas with only the three small shims tracked in #44.
k_poll stays deferred (reaffirmed). App-level usage is rarer than its reputation — the heavy users are internal to stacks not being ported (net sockets, BT host), and modbus does not need it.
k_event(wait-any/wait-all with mask, full 32 bits as of #42) covers most app-level multiplexed-wait patterns and is the migration answer for consumers. FreeRTOS QueueSets do not map to Zephyr's poll-event model (registration semantics, no signal objects), so k_poll would be a from-scratch wait-queue build — and every new blocking path re-enters the object-lifetime minefield. Revisit only with a concrete consumer.Feature-track sequencing: #45 (ring_buf) → #46 (k_mem_slab + k_fifo) → companion-repo subsystems.