Abstract
The release unit is one signed bundle: a manifest (bundle version, each component’s image version, the hardware revisions each image accepts, the slot contract revision, and a compatibility matrix) plus the host image and every official module image, signed as a whole. The host has A/B application slots: a new image is written to the inactive slot, booted under a watchdog, and must confirm itself after its radio and audio paths are up, or the bootloader reverts to the other slot. The active image is never overwritten. A read-only factory slot and the processor’s ROM recovery paths sit behind it. Every part with firmware has a rollback path. Input/output modules are updated through their slot interface (a bootloader on the slot’s control bus, an FPGA configuration flash written over the slot’s SPI, or an audio lane repurposed during the update), each confirming from its own A/B store or golden/primary images. Radio modules are forced into their bootloader by a boot-select line (nBOOT) that the host holds asserted while it releases the module from reset; the host then reflashes the module over the existing control SPI and interrupt line. One host line serves several modules, because only a module leaving reset reads it. Soldered radio modules are first-flashed and recovered by the host processor acting as a debug-port programmer on the module’s debug lines (bit-banged SWD), with no fixture or probe.
Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 License.
Recommended Citation
Anonymous, "Firmware update of a modular wireless audio unit from one signed bundle: host A/B slots with self-confirmation, rollback on every part, I/O and radio modules updated through their slot interfaces, radio modules forced into their bootloader by a host-driven boot-select line and reflashed over their existing control lines, soldered radios recovered by the host's own debug-port programming, and compatibility decided by a versioned contract in each module's ID memory", Technical Disclosure Commons, ()
https://www.tdcommons.org/dpubs_series/12147