25
25
/* For RAM LOAD mode, the active image must be fetched from the bootloader */
26
26
#include <bootutil/boot_status.h>
27
27
#include <zephyr/retention/blinfo.h>
28
+
29
+ #define SLOT0_PARTITION slot0_partition
30
+ #define SLOT1_PARTITION slot1_partition
31
+ #define SLOT2_PARTITION slot2_partition
32
+ #define SLOT3_PARTITION slot3_partition
33
+ #define SLOT4_PARTITION slot4_partition
34
+ #define SLOT5_PARTITION slot5_partition
28
35
#endif
29
36
30
37
#include "mcuboot_priv.h"
@@ -89,7 +96,7 @@ struct mcuboot_v1_raw_header {
89
96
uint8_t boot_fetch_active_slot (void )
90
97
{
91
98
int rc ;
92
- uint8_t slot ;
99
+ uint8_t slot , fa_id ;
93
100
94
101
rc = blinfo_lookup (BLINFO_RUNNING_SLOT , & slot , sizeof (slot ));
95
102
@@ -100,8 +107,48 @@ uint8_t boot_fetch_active_slot(void)
100
107
}
101
108
102
109
LOG_DBG ("Active slot: %d" , slot );
110
+ /* Map slot number back to flash area ID */
111
+ switch (slot ) {
112
+ case 0 :
113
+ fa_id = FIXED_PARTITION_ID (SLOT0_PARTITION );
114
+ break ;
115
+
116
+ #if FIXED_PARTITION_EXISTS (SLOT1_PARTITION )
117
+ case 1 :
118
+ fa_id = FIXED_PARTITION_ID (SLOT1_PARTITION );
119
+ break ;
120
+ #endif
121
+
122
+ #if FIXED_PARTITION_EXISTS (SLOT2_PARTITION )
123
+ case 2 :
124
+ fa_id = FIXED_PARTITION_ID (SLOT2_PARTITION );
125
+ break ;
126
+ #endif
127
+
128
+ #if FIXED_PARTITION_EXISTS (SLOT3_PARTITION )
129
+ case 3 :
130
+ fa_id = FIXED_PARTITION_ID (SLOT3_PARTITION );
131
+ break ;
132
+ #endif
133
+
134
+ #if FIXED_PARTITION_EXISTS (SLOT4_PARTITION )
135
+ case 4 :
136
+ fa_id = FIXED_PARTITION_ID (SLOT4_PARTITION );
137
+ break ;
138
+ #endif
139
+
140
+ #if FIXED_PARTITION_EXISTS (SLOT5_PARTITION )
141
+ case 5 :
142
+ fa_id = FIXED_PARTITION_ID (SLOT5_PARTITION );
143
+ break ;
144
+ #endif
145
+
146
+ default :
147
+ fa_id = INVALID_SLOT_ID ;
148
+ break ;
149
+ }
103
150
104
- return slot ;
151
+ return fa_id ;
105
152
}
106
153
#else /* CONFIG_MCUBOOT_BOOTLOADER_MODE_RAM_LOAD ||
107
154
* CONFIG_MCUBOOT_BOOTLOADER_MODE_RAM_LOAD_WITH_REVERT
0 commit comments