boot: store write align as uint32_t
In overwrite-only mode, the write alignment is not used for much.
Making this a larger value will allow the alignment for a particular
device to be larger than a uint8_t. This will make the trailer size
very large for these devices (and prevent
!defined(MCUBOOT_OVERWRITE_ONLY) from being used), but at least allows
the overwrite only mode to be used on these devices.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/boot/bootutil/src/bootutil_misc.c b/boot/bootutil/src/bootutil_misc.c
index 4a2ab9a..90dc722 100644
--- a/boot/bootutil/src/bootutil_misc.c
+++ b/boot/bootutil/src/bootutil_misc.c
@@ -148,7 +148,7 @@
}
uint32_t
-boot_trailer_sz(uint8_t min_write_sz)
+boot_trailer_sz(uint32_t min_write_sz)
{
return /* state for all sectors */
BOOT_STATUS_MAX_ENTRIES * BOOT_STATUS_STATE_COUNT * min_write_sz +
diff --git a/boot/bootutil/src/bootutil_priv.h b/boot/bootutil/src/bootutil_priv.h
index f2b5825..e701429 100644
--- a/boot/bootutil/src/bootutil_priv.h
+++ b/boot/bootutil/src/bootutil_priv.h
@@ -214,7 +214,7 @@
} scratch;
uint8_t swap_type[BOOT_IMAGE_NUMBER];
- uint8_t write_sz;
+ uint32_t write_sz;
#if defined(MCUBOOT_ENC_IMAGES)
struct enc_key_data enc[BOOT_IMAGE_NUMBER][BOOT_NUM_SLOTS];
@@ -229,7 +229,7 @@
size_t slen, uint8_t key_id);
int boot_magic_compatible_check(uint8_t tbl_val, uint8_t val);
-uint32_t boot_trailer_sz(uint8_t min_write_sz);
+uint32_t boot_trailer_sz(uint32_t min_write_sz);
int boot_status_entries(int image_index, const struct flash_area *fap);
uint32_t boot_status_off(const struct flash_area *fap);
uint32_t boot_swap_info_off(const struct flash_area *fap);
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index 5e12891..43bc487 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -363,11 +363,11 @@
return 0;
}
-static uint8_t
+static uint32_t
boot_write_sz(struct boot_loader_state *state)
{
- uint8_t elem_sz;
- uint8_t align;
+ uint32_t elem_sz;
+ uint32_t align;
/* Figure out what size to write update status update as. The size depends
* on what the minimum write size is for scratch area, active image slot.