bootutil: optionally use flash_area_get_sectors()
Add a typedef which lets us use flash_sector or flash_area to contain
the sectors within the boot_data global. When
MCUBOOT_USE_FLASH_AREA_GET_SECTORS is defined, this is struct
flash_sector.
Also add struct boot_loader_state accessors to handle this case, and
make the appropriate changes to where the sectors are allocated to use
the new typedef.
Finally, ensure MCUBOOT_USE_FLASH_AREA_GET_SECTORS is defined in the
Zephyr Makefile, since flash_area_get_sectors() is already provided
there.
This lets mcuboot users convert to the new flash API gradually.
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index 1db09ab..c4a292a 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -1207,8 +1207,8 @@
* necessary because the gcc option "-fdata-sections" doesn't seem to have
* any effect in older gcc versions (e.g., 4.8.4).
*/
- static struct flash_area slot0_sectors[BOOT_MAX_IMG_SECTORS];
- static struct flash_area slot1_sectors[BOOT_MAX_IMG_SECTORS];
+ static boot_sector_t slot0_sectors[BOOT_MAX_IMG_SECTORS];
+ static boot_sector_t slot1_sectors[BOOT_MAX_IMG_SECTORS];
boot_data.imgs[0].sectors = slot0_sectors;
boot_data.imgs[1].sectors = slot1_sectors;
@@ -1302,7 +1302,7 @@
int
split_go(int loader_slot, int split_slot, void **entry)
{
- struct flash_area *sectors;
+ boot_sector_t *sectors;
uintptr_t entry_val;
int loader_flash_id;
int split_flash_id;