11#include <zephyr/sys/util.h>
12#include <zephyr/devicetree.h>
15#define image_0 mcuboot_primary
16#define slot0_partition mcuboot_primary
17#define image_1 mcuboot_secondary
18#define slot1_partition mcuboot_secondary
19#define image_0_nonsecure mcuboot_primary
20#define slot0_ns_partition mcuboot_primary
21#define image_1_nonsecure mcuboot_secondary
22#define slot1_ns_partition mcuboot_secondary
23#define image_2 mcuboot_primary_1
24#define image_3 mcuboot_secondary_1
25#define slot2_partition mcuboot_primary_1
26#define slot3_partition mcuboot_secondary_1
27#define slot4_partition mcuboot_primary_2
28#define slot5_partition mcuboot_secondary_2
29#define image_scratch mcuboot_scratch
30#define image_scratch mcuboot_scratch
32#if (CONFIG_SETTINGS_FCB || CONFIG_SETTINGS_NVS || defined(PM_SETTINGS_STORAGE_ID) ||\
33 CONFIG_SETTINGS_ZMS || CONFIG_SETTINGS_ZMS_LEGACY)
34#define storage settings_storage
35#define storage_partition settings_storage
36#elif CONFIG_FILE_SYSTEM_LITTLEFS
37#define storage littlefs_storage
38#define storage_partition littlefs_storage
40#define storage nvs_storage
41#define storage_partition nvs_storage
43#define storage zms_storage
44#define storage_partition zms_storage
47#define PM_ID(label) PM_##label##_ID
48#define PM_IS_ENABLED(label) PM_##label##_IS_ENABLED
50#define FLASH_AREA_LABEL_STR(label) #label
52#define FIXED_PARTITION_ID(label) PM_ID(label)
53#define PARTITION_ID(label) FIXED_PARTITION_ID(label)
54#define FLASH_AREA_ID(label) FIXED_PARTITION_ID(label)
56#define FIXED_PARTITION_DATA_FIELD(label, x) \
57 UTIL_CAT(PM_, UTIL_CAT(UTIL_CAT(PM_, UTIL_CAT(PM_ID(label), _LABEL)), x))
58#define PARTITION_DATA_FIELD(label, x) FIXED_PARTITION_DATA_FIELD(label, x)
59#define FLASH_DATA_FIELD(label, x) FIXED_PARTITION_DATA_FIELD(label, x)
61#define FIXED_PARTITION_OFFSET(label) FIXED_PARTITION_DATA_FIELD(label, _OFFSET)
62#define PARTITION_OFFSET(label) FIXED_PARTITION_OFFSET(label)
63#define FLASH_AREA_OFFSET(label) FIXED_PARTITION_OFFSET(label)
65#define FIXED_PARTITION_SIZE(label) FIXED_PARTITION_DATA_FIELD(label, _SIZE)
66#define PARTITION_SIZE(label) FIXED_PARTITION_SIZE(label)
67#define FLASH_AREA_SIZE(label) FIXED_PARTITION_SIZE(label)
69#define FIXED_PARTITION_DEVICE(label) \
70 COND_CODE_1(DT_NODE_EXISTS(FIXED_PARTITION_DATA_FIELD(label, _DEV)), \
71 (DEVICE_DT_GET_OR_NULL(FIXED_PARTITION_DATA_FIELD(label, _DEV))), \
72 (DEVICE_DT_GET_OR_NULL(DT_NODELABEL(FIXED_PARTITION_DATA_FIELD(label, _DEV)))))
73#define PARTITION_DEVICE(label) FIXED_PARTITION_DEVICE(label)
74#define FLASH_AREA_DEVICE(label) FIXED_PARTITION_DEVICE(label)
76#define FIXED_PARTITION_MTD(label) \
77 COND_CODE_1(DT_NODE_EXISTS(FIXED_PARTITION_DATA_FIELD(label, _DEV)), \
78 (FIXED_PARTITION_DATA_FIELD(label, _DEV)), \
79 (DT_NODELABEL(FIXED_PARTITION_DATA_FIELD(label, _DEV))))
80#define PARTITION_MTD(label) FIXED_PARTITION_MTD(label)
81#define FIXED_PARTITION_NODE_MTD(node) \
83 DT_FIXED_SUBPARTITION_EXISTS(node), \
84 (DT_MTD_FROM_FIXED_SUBPARTITION(node)), \
85 (DT_MTD_FROM_FIXED_PARTITION(node)))
86#define PARTITION_NODE_MTD(node) FIXED_PARTITION_NODE_MTD(node)
88#define FIXED_PARTITION_EXISTS(label) IS_ENABLED(PM_IS_ENABLED(label))
89#define PARTITION_EXISTS(label) FIXED_PARTITION_EXISTS(label)
90#define FLASH_AREA_LABEL_EXISTS(label) FIXED_PARTITION_EXISTS(label)
91#define FIXED_PARTITION_ADDRESS(label) FIXED_PARTITION_DATA_FIELD(label, _ADDRESS)
92#define PARTITION_ADDRESS(label) FIXED_PARTITION_ADDRESS(label)
94#define FIXED_PARTITION(label) \
95 ((const struct flash_area *)&UTIL_CAT(global_pm_partition_, label))
96#define PARTITION(label) FIXED_PARTITION(label)
98#define DECLARE_PARTITION(label) \
99 extern const struct flash_area UTIL_CAT(global_pm_partition_, label)
102#define MAKE_LABEL(id, _) UTIL_CAT(PM_, UTIL_CAT(PM_##id##_LABEL))
#define DECLARE_PARTITION(label)
Definition flash_map_pm.h:98
FOR_EACH(DECLARE_PARTITION,(;), LISTIFY(PM_NUM, MAKE_LABEL,(,)))
#define MAKE_LABEL(id, _)
Definition flash_map_pm.h:102