zephyr: Add support for direct image upload
The commit enables direct image upload for the Zephyr platform.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
diff --git a/boot/zephyr/flash_map_extended.c b/boot/zephyr/flash_map_extended.c
index e27c3c6..eb1e6bc 100644
--- a/boot/zephyr/flash_map_extended.c
+++ b/boot/zephyr/flash_map_extended.c
@@ -93,6 +93,30 @@
return flash_area_id_to_multi_image_slot(0, area_id);
}
+#if defined(CONFIG_MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD)
+int flash_area_id_from_direct_image(int image_id)
+{
+ switch (image_id) {
+ case 0:
+ case 1:
+ return FLASH_AREA_ID(image_0);
+#if DT_HAS_FIXED_PARTITION_LABEL(image_1)
+ case 2:
+ return FLASH_AREA_ID(image_1);
+#endif
+#if DT_HAS_FIXED_PARTITION_LABEL(image_2)
+ case 3:
+ return FLASH_AREA_ID(image_2);
+#endif
+#if DT_HAS_FIXED_PARTITION_LABEL(image_3)
+ case 4:
+ return FLASH_AREA_ID(image_3);
+#endif
+ }
+ return -EINVAL;
+}
+#endif
+
int flash_area_sector_from_off(off_t off, struct flash_sector *sector)
{
int rc;