sim: update alignment (aka write_sz) to u16
The simulated alignment functions were returning u8 which would be
invalid for any alignment beyond 128; as a first step in the direction
of allowing larger alignments, make them u16 which should allow for up
to 2**15 aligment size.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
diff --git a/sim/mcuboot-sys/csupport/run.c b/sim/mcuboot-sys/csupport/run.c
index f531db9..a0e4448 100644
--- a/sim/mcuboot-sys/csupport/run.c
+++ b/sim/mcuboot-sys/csupport/run.c
@@ -42,7 +42,7 @@
uint32_t size);
extern int sim_flash_write(uint8_t flash_id, uint32_t offset, const uint8_t *src,
uint32_t size);
-extern uint8_t sim_flash_align(uint8_t flash_id);
+extern uint16_t sim_flash_align(uint8_t flash_id);
extern uint8_t sim_flash_erased_val(uint8_t flash_id);
struct sim_context {
@@ -202,7 +202,7 @@
#endif
}
-uint8_t flash_area_align(const struct flash_area *area)
+uint16_t flash_area_align(const struct flash_area *area)
{
return sim_flash_align(area->fa_device_id);
}
diff --git a/sim/mcuboot-sys/csupport/storage/flash_map.h b/sim/mcuboot-sys/csupport/storage/flash_map.h
index b27a90c..5d420f7 100644
--- a/sim/mcuboot-sys/csupport/storage/flash_map.h
+++ b/sim/mcuboot-sys/csupport/storage/flash_map.h
@@ -123,7 +123,7 @@
/*
* Alignment restriction for flash writes.
*/
-uint8_t flash_area_align(const struct flash_area *);
+uint16_t flash_area_align(const struct flash_area *);
/*
* What is value is read from erased flash bytes.
diff --git a/sim/mcuboot-sys/src/api.rs b/sim/mcuboot-sys/src/api.rs
index a88cfcf..8b180cf 100644
--- a/sim/mcuboot-sys/src/api.rs
+++ b/sim/mcuboot-sys/src/api.rs
@@ -21,7 +21,7 @@
pub type FlashMap = HashMap<u8, FlashPtr>;
pub struct FlashParamsStruct {
- align: u8,
+ align: u16,
erased_val: u8,
}
@@ -81,7 +81,7 @@
pub unsafe fn set_flash(dev_id: u8, dev: &mut dyn Flash) {
THREAD_CTX.with(|ctx| {
ctx.borrow_mut().flash_params.insert(dev_id, FlashParamsStruct {
- align: dev.align() as u8,
+ align: dev.align() as u16,
erased_val: dev.erased_val(),
});
let dev: &'static mut dyn Flash = mem::transmute(dev);
@@ -179,7 +179,7 @@
}
#[no_mangle]
-pub extern fn sim_flash_align(id: u8) -> u8 {
+pub extern fn sim_flash_align(id: u8) -> u16 {
THREAD_CTX.with(|ctx| {
ctx.borrow().flash_params.get(&id).unwrap().align
})