@@ -189,7 +189,6 @@ int sfdp_parse_sector_map_table(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp
189189 int status = 0 ;
190190 uint32_t tmp_region_size = 0 ;
191191 uint8_t type_mask;
192- int i_ind = 0 ;
193192 int prev_boundary = 0 ;
194193 // Default set to all type bits 1-4 are common
195194 int min_common_erase_type_bits = SFDP_ERASE_BITMASK_ALL;
@@ -235,34 +234,31 @@ int sfdp_parse_sector_map_table(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp
235234
236235 // Loop through Regions and set for each one: size, supported erase types, high boundary offset
237236 // Calculate minimum Common Erase Type for all Regions
238- for (i_ind = 0 ; i_ind < sfdp_info.smptbl .region_cnt ; i_ind ++) {
239- tmp_region_size = ((*((uint32_t *)&smptbl_buff[(i_ind + 1 ) * 4 ])) >> 8 ) & 0x00FFFFFF ; // bits 9-32
240- sfdp_info.smptbl .region_size [i_ind ] = (tmp_region_size + 1 ) * 256 ; // Region size is 0 based multiple of 256 bytes;
237+ for (auto idx = 0 ; idx < sfdp_info.smptbl .region_cnt ; idx ++) {
238+ tmp_region_size = ((*((uint32_t *)&smptbl_buff[(idx + 1 ) * 4 ])) >> 8 ) & 0x00FFFFFF ; // bits 9-32
239+ sfdp_info.smptbl .region_size [idx ] = (tmp_region_size + 1 ) * 256 ; // Region size is 0 based multiple of 256 bytes;
241240
242- sfdp_info.smptbl .region_erase_types_bitfld [i_ind ] = smptbl_buff[(i_ind + 1 ) * 4 ] & 0x0F ; // bits 1-4
241+ sfdp_info.smptbl .region_erase_types_bitfld [idx ] = smptbl_buff[(idx + 1 ) * 4 ] & 0x0F ; // bits 1-4
243242
244- min_common_erase_type_bits &= sfdp_info.smptbl .region_erase_types_bitfld [i_ind ];
243+ min_common_erase_type_bits &= sfdp_info.smptbl .region_erase_types_bitfld [idx ];
245244
246- sfdp_info.smptbl .region_high_boundary [i_ind ] = (sfdp_info.smptbl .region_size [i_ind ] - 1 ) + prev_boundary;
245+ sfdp_info.smptbl .region_high_boundary [idx ] = (sfdp_info.smptbl .region_size [idx ] - 1 ) + prev_boundary;
247246
248- prev_boundary = sfdp_info.smptbl .region_high_boundary [i_ind ] + 1 ;
247+ prev_boundary = sfdp_info.smptbl .region_high_boundary [idx ] + 1 ;
249248 }
250249
251250 // Calc minimum Common Erase Size from min_common_erase_type_bits
252251 type_mask = SFDP_ERASE_BITMASK_TYPE1;
253- for (i_ind = 0 ; i_ind < 4 ; i_ind++) {
252+ // If no common erase type is found between regions
253+ sfdp_info.smptbl .regions_min_common_erase_size = 0 ;
254+ for (auto idx = 0 ; idx < 4 ; idx++) {
254255 if (min_common_erase_type_bits & type_mask) {
255- sfdp_info.smptbl .regions_min_common_erase_size = sfdp_info.smptbl .erase_type_size_arr [i_ind ];
256+ sfdp_info.smptbl .regions_min_common_erase_size = sfdp_info.smptbl .erase_type_size_arr [idx ];
256257 break ;
257258 }
258259 type_mask = type_mask << 1 ;
259260 }
260261
261- if (i_ind == 4 ) {
262- // No common erase type was found between regions
263- sfdp_info.smptbl .regions_min_common_erase_size = 0 ;
264- }
265-
266262EXIT:
267263 free (smptbl_buff);
268264
0 commit comments