aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
author9names <[email protected]>2025-06-01 00:08:09 +1000
committer9names <[email protected]>2025-06-01 00:08:09 +1000
commit69abc42077e6de4453d422330a9a07407a36f218 (patch)
tree271db332e94a4176a4e8c33f1f7d41daffde100f /docs
parent9b8d6d6f22193ba020ed18c622cb8c6d59e1254f (diff)
doc: add high-level embassy-boot a-b info
Diffstat (limited to 'docs')
-rw-r--r--docs/pages/bootloader.adoc7
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/pages/bootloader.adoc b/docs/pages/bootloader.adoc
index 53f85d995..b0f0331aa 100644
--- a/docs/pages/bootloader.adoc
+++ b/docs/pages/bootloader.adoc
@@ -2,6 +2,13 @@
2 2
3`embassy-boot` a lightweight bootloader supporting firmware application upgrades in a power-fail-safe way, with trial boots and rollbacks. 3`embassy-boot` a lightweight bootloader supporting firmware application upgrades in a power-fail-safe way, with trial boots and rollbacks.
4 4
5The update method used is referred to as an A/B partition update scheme.
6
7With a general-purpose OS, A/B partition update is accomplished by directly booting either the A or B partition depending on the update state.
8To accomplish the same goal in a way that is portable across all microcontrollers, `embassy-boot` swaps data page by page (in both directions) between the DFU and the Active partition when a firmware update is triggered. +
9Because the original Active application is moved into the DFU partition during this update, the operation can be reversed if the update is interrupted or the new firmware does not flag that it booted successfully. +
10See the design section for more details on how this is implemented.
11
5The bootloader can be used either as a library or be flashed directly if you are happy with the default configuration and capabilities. 12The bootloader can be used either as a library or be flashed directly if you are happy with the default configuration and capabilities.
6 13
7By design, the bootloader does not provide any network capabilities. Networking capabilities for fetching new firmware can be provided by the user application, using the bootloader as a library for updating the firmware, or by using the bootloader as a library and adding this capability yourself. 14By design, the bootloader does not provide any network capabilities. Networking capabilities for fetching new firmware can be provided by the user application, using the bootloader as a library for updating the firmware, or by using the bootloader as a library and adding this capability yourself.