diff options
author | Ulf Lilleengen <lulf@redhat.com> | 2022-04-28 10:38:25 +0200 |
---|---|---|
committer | Ulf Lilleengen <lulf@redhat.com> | 2022-04-28 10:38:25 +0200 |
commit | bd237a1f96680f2cdf411ef2ca80beaa6b09cc6a (patch) | |
tree | 0eb34a0258b7b99a0988b3bfa1729b1aa448396e /docs | |
parent | ba46df6825f35e0c3beb90f28b61f3dbe46e005e (diff) | |
download | embassy-bd237a1f96680f2cdf411ef2ca80beaa6b09cc6a.zip |
Allow using separate page sizes for state and dfu
* Less generics on bootloader. Keep PAGE_SIZE as a common multiple of
DFU and ACTIVE page sizes.
* Document restriction
* Add unit tests for different page sizes
Diffstat (limited to 'docs')
-rw-r--r-- | docs/modules/ROOT/pages/bootloader.adoc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/modules/ROOT/pages/bootloader.adoc b/docs/modules/ROOT/pages/bootloader.adoc index 1a984d6d..7539774c 100644 --- a/docs/modules/ROOT/pages/bootloader.adoc +++ b/docs/modules/ROOT/pages/bootloader.adoc @@ -27,6 +27,7 @@ The bootloader divides the storage into 4 main partitions, configured by a linke * DFU - Where the application-to-be-swapped is placed. This partition is written to by the application. * BOOTLOADER STATE - Where the bootloader stores the current state describing if the active and dfu partitions need to be swapped. When the new firmware has been written to the DFU partition, a flag is set to instruct the bootloader that the partitions should be swapped. -The partitions for ACTIVE (+BOOTLOADER), DFU and BOOTLOADER_STATE may be placed in separate flash, but they have to support compatible page sizes. +The partitions for ACTIVE (+BOOTLOADER), DFU and BOOTLOADER_STATE may be placed in separate flash. The page size used by the bootloader is determined by the lowest common multiple of the ACTIVE and DFU page sizes. +The BOOTLOADER_STATE partition must be big enough to store one word per page in the ACTIVE and DFU partitions combined. The bootloader has a platform-agnostic part, which implements the power fail safe swapping algorithm given the boundaries set by the partitions. The platform-specific part is a minimal shim that provides additional functionality such as watchdogs or supporting the nRF52 softdevice. |