You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[nrf noup] treewide: add NCS partition manager support
Partition Manager is an nRF Connect SDK component which uses yaml
files to resolve flash partition placement with a holistic view of the
device.
This component's MCUboot portions began life as upstream mcuboot
PR#430. This added support for being built as a sub image from the
downstream Nordic patch set for a zephyr multi image build
system (mcuboot 430 was combined with effor submitted to upstream
zephyr as PR#13672, which was ultimately reworked after being rejected
for mainline at the ELCE 2019 conference in Lyon).
It has since evolved over time. This is the version that will go into
NCS v1.3. It features:
- page size aligned partitions for all partitions used by mcuboot.
- image swaps without scratch partitions
Add support for configurations where there exists two primary slots
but only one secondary slot, which is shared. These two primary slots
are the regular application and B1. B1 can be either S0 or S1
depending on the state of the device.
Decide where an upgrade should be stored by looking at the vector
table.
Provide update candidates for both s0 and s1. These candidates must be
signed with mcuboot after being signed by b0.
Additional notes:
- we make update.hex without trailer data
This is needed for serial recovery to work using hex files.
Prior to this the update.hex got TLV data at the end of the
partition, which caused many blank pages to be included,
which made it hard to use in a serial recovery scheme.
Instead, make update.hex without TLV data at the end,
and provide a new file test_update.hex which contains
the TLV data, and can be directly flashed to test the
upgrade procedure.
- we use a function for signing the application as future-proofing
for when other components must be signed as well
- this includes an update to single image applications that enables
support for partition manager; when single image DFU is used, a
scratch partition is not needed.
- In NCS, image 1 primary slot is the upgrade bank for mcuboot (IE S0 or
S1 depending on the active slot). It is not required that this slot
contains any valid data.
- The nRF boards all have a single flash page size, and partition
manager deals with the size of the update partitions and so on, so we
must skip a boot_slots_compatible() check to avoid getting an error.
- There is no need to verify the target when using partition manager.
- We lock mcuboot using fprotect before jumping, to enable the secure
boot property of the system.
- Call fw_info_ext_api_provide() before booting if EXT_API_PROVIDE
EXT_API is enabled. This is relevant only when the immutable
bootloader has booted mcuboot.
Signed-off-by: Håkon Øye Amundsen <haakon.amundsen@nordicsemi.no>
Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Signed-off-by: Sigvart Hovland <sigvart.m@gmail.com>
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
Signed-off-by: Pawel Dunaj <pawel.dunaj@nordicsemi.no>
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
Signed-off-by: Vidar Berg <vidar.berg@nordicsemi.no>
Signed-off-by: Draus, Sebastian <sebastian.draus@nordicsemi.no>
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Signed-off-by: Georgios Vasilakis <georgios.vasilakis@nordicsemi.no>
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
(cherry picked from commit 6a5dc04)
0 commit comments