Description
The idea for this suggestion is to move the extra sector used for moving, to be part of slot 1 instead of slot 0, and to have a disjoint write location for MCUboot and the application which loads the firmware update: MCUboot deals with the first sector of this slot but the application will load a firmware update to the second slot of this slot. This means that when the update is initiated, the second slot image is already shifted up by a sector and no additional move needs to take place.
- Slot 0 sector X will be put into slot 1 sector X
- Slot 0 sector X will be erased
- Slot 1 sector (X + 1) will be put into slot 0 sector X
- X is incremented and loop runs until end of the image
This should speed up update times due to not having to shift the slot 0 image up by a sector, erasing a lot of erase and write processes. This would however mean that MCUboot would likely need a lot of changes to support this, slot 1 would need an additional sector instead of slot 0, and MCUmgr would need to be updated to write the update starting at the second sector for secondary slots, not the first sector