diff --git a/boot/zephyr/include/sysflash/sysflash.h b/boot/zephyr/include/sysflash/sysflash.h
index dd759e2..646f112 100644
--- a/boot/zephyr/include/sysflash/sysflash.h
+++ b/boot/zephyr/include/sysflash/sysflash.h
@@ -1,4 +1,8 @@
-/* Manual version of auto-generated version. */
+/*
+ * Copyright (c) 2023 Nordic Semiconductor ASA
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
 
 #ifndef __SYSFLASH_H__
 #define __SYSFLASH_H__
@@ -6,40 +10,42 @@
 #include <mcuboot_config/mcuboot_config.h>
 #include <zephyr/devicetree.h>
 #include <zephyr/storage/flash_map.h>
+#include <zephyr/sys/util_macro.h>
 
 #ifndef CONFIG_SINGLE_APPLICATION_SLOT
 
+/* Each pair of slots is separated by , and there is no terminating character */
+#define FLASH_AREA_IMAGE_0_SLOTS    slot0_partition, slot1_partition
+#define FLASH_AREA_IMAGE_1_SLOTS    slot2_partition, slot3_partition
+#define FLASH_AREA_IMAGE_2_SLOTS    slot4_partition, slot5_partition
+
 #if (MCUBOOT_IMAGE_NUMBER == 1)
-/*
- * NOTE: the definition below returns the same values for true/false on
- * purpose, to avoid having to mark x as non-used by all callers when
- * running in single image mode.
- */
-#define FLASH_AREA_IMAGE_PRIMARY(x)    (((x) == 0) ?                \
-                                         FIXED_PARTITION_ID(slot0_partition) : \
-                                         FIXED_PARTITION_ID(slot0_partition))
-#define FLASH_AREA_IMAGE_SECONDARY(x)  (((x) == 0) ?                \
-                                         FIXED_PARTITION_ID(slot1_partition) : \
-                                         FIXED_PARTITION_ID(slot1_partition))
+#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS
 #elif (MCUBOOT_IMAGE_NUMBER == 2)
-/* MCUBoot currently supports only up to 2 updateable firmware images.
- * If the number of the current image is greater than MCUBOOT_IMAGE_NUMBER - 1
- * then a dummy value will be assigned to the flash area macros.
- */
-#define FLASH_AREA_IMAGE_PRIMARY(x)    (((x) == 0) ?                \
-                                         FIXED_PARTITION_ID(slot0_partition) : \
-                                        ((x) == 1) ?                \
-                                         FIXED_PARTITION_ID(slot2_partition) : \
-                                         255)
-#define FLASH_AREA_IMAGE_SECONDARY(x)  (((x) == 0) ?                \
-                                         FIXED_PARTITION_ID(slot1_partition) : \
-                                        ((x) == 1) ?                \
-                                         FIXED_PARTITION_ID(slot3_partition) : \
-                                         255)
-#else
-#error "Image slot and flash area mapping is not defined"
+#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
+                            FLASH_AREA_IMAGE_1_SLOTS
+#elif (MCUBOOT_IMAGE_NUMBER == 3)
+#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
+                            FLASH_AREA_IMAGE_1_SLOTS, \
+                            FLASH_AREA_IMAGE_2_SLOTS
 #endif
 
+static inline uint32_t __flash_area_ids_for_slot(int img, int slot)
+{
+    static const int all_slots[] = {
+        FOR_EACH_NONEMPTY_TERM(FIXED_PARTITION_ID, (,), ALL_AVAILABLE_SLOTS)
+    };
+    return all_slots[img * 2 + slot];
+};
+
+#undef FLASH_AREA_IMAGE_0_SLOTS
+#undef FLASH_AREA_IMAGE_1_SLOTS
+#undef FLASH_AREA_IMAGE_2_SLOTS
+#undef ALL_AVAILABLE_SLOTS
+
+#define FLASH_AREA_IMAGE_PRIMARY(x) __flash_area_ids_for_slot(x, 0)
+#define FLASH_AREA_IMAGE_SECONDARY(x) __flash_area_ids_for_slot(x, 1)
+
 #if !defined(CONFIG_BOOT_SWAP_USING_MOVE)
 #define FLASH_AREA_IMAGE_SCRATCH    FIXED_PARTITION_ID(scratch_partition)
 #endif
