diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f3f633..c9ec70b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -# warden-sdk CI. +# bfe-core1106-sdk CI. # # Policy (mirrors flare-edge): only GitHub-owned actions get the repo token; the one # third-party helper (taiki-e/install-action) is pinned and never handed a token. diff --git a/README.md b/README.md index 2f5baf3..1bc443d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# warden-sdk +# bfe-core1106-sdk -[![ci](https://github.com/blueflare-energy/warden-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/blueflare-energy/warden-sdk/actions/workflows/ci.yml) +[![ci](https://github.com/blueflare-energy/bfe-core1106-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/blueflare-energy/bfe-core1106-sdk/actions/workflows/ci.yml) ![Lines of code](.github/badges/loc.svg) ![Tests](.github/badges/tests.svg) ![Coverage](.github/badges/coverage.svg) @@ -114,7 +114,7 @@ the simulators narrow which claims need a panel, they do not replace it. ## Downstream -WardenOS (the 86 Panel firmware this SDK was born for) consumes warden-sdk +WardenOS (the 86 Panel firmware this SDK was born for) consumes this repo from its own private repo, flare-edge; issue references and checkout paths pointing there are context, not reachable links. The QEMU simulator runs its production binaries unmodified — including real over-the-air updates against diff --git a/docs/architecture.md b/docs/architecture.md index 9fa1d0d..d5c45c7 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -67,7 +67,7 @@ supervisor logic runs in CI with no panel. the boot-mode register's survives-warm-reset / cleared-by-POR behaviour (the MaskRom recovery maneuver). The matching firmware-side `Bus` seam on flared's `devmem` — so the shipped ladder can be asserted to poke the confirmed offset, never the wrong-SoC - one — lands when flare-edge consumes warden-sdk (§8 item 3, maintainer-gated), not yet on + one — lands when flare-edge consumes this repo (§8 item 3, maintainer-gated), not yet on flare-edge `main`. - **`modbus` — RS-485 device end.** Done. `ModbusSlave`: a byte-in/byte-out RTU slave (CRC16 byte-identical to the master, FC 0x01–0x06/0x0F/0x10/0x11, exception replies, @@ -89,7 +89,7 @@ supervisor logic runs in CI with no panel. Integration with flare-edge: flared implements `MemBus` for `/dev/mem` and gains `#[cfg(test)]` tests driving its real arm/beat logic against `HpmcuSim`. This needs -warden-sdk reachable as a Cargo dependency in CI — i.e. a remote for this repo, +this repo reachable as a Cargo dependency in CI — i.e. a remote for this repo, which is a **maintainer go-ahead item** (credential/remote creation). Until then the firmware-side seam and a local test double land in flare-edge, unified with `sim/` once the dependency exists. No duplication of *logic* — only the tiny trait. @@ -124,7 +124,7 @@ The brick was a *memory-map* fault: the boot-loaded MCU's load address (`0x40000 is a reserved carve-out on Thunder-Boot boards but plain kernel RAM on ours. No behavioural sim catches that — it needs a **static check against the target DT**: "every address the MCU/coprocessor code loads to is inside a `reserved-memory` -node." warden-sdk owns these config-lint checks (idblock loader `.ini` vs DT +node." This repo owns these config-lint checks (idblock loader `.ini` vs DT reservations, partition table vs image sizes, vermagic vs kernel) as CI gates, so a mistake is caught before a flash rather than on the bench. @@ -187,7 +187,7 @@ memory-map faults; and "boots under emulation" is never on-silicon evidence. 2. **C-driver MC/DC harnesses** — `relays.c` and `freshness.c` at 100% MC/DC, CI-gated via the shared `drivers/enforce-mcdc.sh`. **Done** (the first C coverage gate). 3. **flared devmem/hpmcu seam + tests** — firmware-side trait, unified with `sim/` - once flare-edge consumes warden-sdk (a separate, maintainer-gated step). **Pending.** + once flare-edge consumes this repo (a separate, maintainer-gated step). **Pending.** 4. **Config-lint CI gates** (§5) — the brick-class of bug. **Done.** 5. **Hermetic kernel build** (`build/build-kernel.sh` + the `patches-apply` gate). **Done.** 6. **Kernel 5.10→6.18.46 forward-port** (§6, ADR-0001). **Done** (hardware-verified). diff --git a/docs/decisions/0003-standalone-repo.md b/docs/decisions/0003-standalone-repo.md index 5b118dc..2f38e6d 100644 --- a/docs/decisions/0003-standalone-repo.md +++ b/docs/decisions/0003-standalone-repo.md @@ -10,13 +10,13 @@ no CI, tests, or versioning of their own. The SDK requirement (future-features-2 §SDK) calls for "its own repo, held to firmware standards." ## Decision -A **private** `warden-sdk` GitHub repo (now `blueflare-energy/warden-sdk` and public +A **private** `warden-sdk` GitHub repo (now `blueflare-energy/bfe-core1106-sdk` and public per ADR-0007), standalone from day one with its own CI/versioning. Work lands on a `bringup` branch; the first commit to `main` is gated on a passing review run, green CI, and the maintainer's fresh explicit go-ahead. ## Consequences -- flare-edge consumes warden-sdk later (flared depending on `warden-sim`, drivers +- flare-edge consumes this repo later (flared depending on `warden-sim`, drivers built from here) — a separate, maintainer-gated integration step; flare-edge is not edited by the SDK-completion effort. - Private for now (references bench devices / in-progress hardening); can be opened diff --git a/docs/decisions/0005-driver-source-of-truth.md b/docs/decisions/0005-driver-source-of-truth.md index be6d10b..7fa4928 100644 --- a/docs/decisions/0005-driver-source-of-truth.md +++ b/docs/decisions/0005-driver-source-of-truth.md @@ -9,9 +9,9 @@ currently lives in flare-edge. The kernel driver source lives in an un-versioned scratch tree (`flare-edge/research/linux-6.18.46/`). ## Decision -Bring **hardened copies into `warden-sdk/drivers/`** as the canonical source-of-truth, +Bring **hardened copies into this repo's `drivers/`** as the canonical source-of-truth, each with its HAL seam and a 100% MC/DC host harness. The RV1106 kernel deltas are -formalized as a patch series in `patches/`. flare-edge consumes warden-sdk later +formalized as a patch series in `patches/`. flare-edge consumes this repo later (separate, maintainer-gated step). ## Consequences diff --git a/docs/decisions/0008-panel-devenv-positioning.md b/docs/decisions/0008-panel-devenv-positioning.md index c37c2fd..e3bee8d 100644 --- a/docs/decisions/0008-panel-devenv-positioning.md +++ b/docs/decisions/0008-panel-devenv-positioning.md @@ -26,3 +26,7 @@ it. seam inventory, scenario payloads) but read as one consumer's usage. - The honesty rule is unchanged: emulation results are never on-silicon claims. +- The repo is renamed **`bfe-core1106-sdk`** (2026-08-31): the name leads + with the org and the chip, not the product. `warden-sdk` remains as a + GitHub redirect; crate names (`warden-sim`, `warden-config-lint`), the + `WARDEN_*` env vars, and binary names are unchanged. diff --git a/drivers/README.md b/drivers/README.md index 29b7133..9510e10 100644 --- a/drivers/README.md +++ b/drivers/README.md @@ -38,7 +38,7 @@ is already modelled and tested here** in `../sim/`: **Why the Tier-2 *source* isn't vendored here yet:** `modbus_engine.c` and `warden_rga.c` pull in shared UI headers (`platform.h`, `settings.h`, `lv_*`) and librga. Copying those in would duplicate exactly the shared surface the -**flare-edge↔warden-sdk unification** (ADR-0003/0005, a separate maintainer-gated step) is +**flare-edge↔SDK unification** (ADR-0003/0005, a separate maintainer-gated step) is meant to resolve cleanly. So the Tier-2 *models* (the hardware ends) live here now; the Tier-2 *driver sources* migrate in with the unification, at which point their existing flare-edge harnesses point at this repo.