This is an automated email from Gerrit.

Tomas Vanek ([email protected]) just uploaded a new patch set to Gerrit, which you 
can find at http://openocd.zylin.com/4865

-- gerrit

commit 5c414a293a518374a030b4af45151f822766b383
Author: Tomas Vanek <[email protected]>
Date:   Sun Jan 20 23:58:51 2019 +0100

    flash/nor/nrf5: refactor sector allocation to use alloc_block_array()
    
    Change-Id: Ied8ea917cec492fc6bb8836a92d8c4ceaf3b499b
    Signed-off-by: Tomas Vanek <[email protected]>

diff --git a/src/flash/nor/nrf5.c b/src/flash/nor/nrf5.c
index 3fa861c..6837fad 100644
--- a/src/flash/nor/nrf5.c
+++ b/src/flash/nor/nrf5.c
@@ -744,46 +744,31 @@ static int nrf5_probe(struct flash_bank *bank)
 
 
        if (bank->base == NRF5_FLASH_BASE) {
-               bank->num_sectors = num_sectors;
-               bank->size = num_sectors * flash_page_size;
-
                /* Sanity check */
                if (chip->spec && chip->flash_size_kb != 
chip->spec->flash_size_kb)
                        LOG_WARNING("Chip's reported Flash capacity does not 
match expected one");
                if (chip->ficr_info_valid && chip->flash_size_kb != 
chip->ficr_info.flash)
                        LOG_WARNING("Chip's reported Flash capacity does not 
match FICR INFO.FLASH");
 
-               bank->sectors = calloc(bank->num_sectors,
-                                      sizeof((bank->sectors)[0]));
-               if (!bank->sectors)
-                       return ERROR_FLASH_BANK_NOT_PROBED;
-
-               /* Fill out the sector information: all NRF5 sectors are the 
same size and
-                * there is always a fixed number of them. */
-               for (int i = 0; i < bank->num_sectors; i++) {
-                       bank->sectors[i].size = flash_page_size;
-                       bank->sectors[i].offset = i * flash_page_size;
+               bank->num_sectors = num_sectors;
+               bank->size = num_sectors * flash_page_size;
 
-                       /* mark as unknown */
-                       bank->sectors[i].is_erased = -1;
-                       bank->sectors[i].is_protected = -1;
-               }
+               bank->sectors = alloc_block_array(0, flash_page_size, 
num_sectors);
+               if (!bank->sectors)
+                       return ERROR_FAIL;
 
                nrf5_protect_check(bank);
 
                chip->bank[0].probed = true;
+
        } else {
-               bank->size = flash_page_size;
                bank->num_sectors = 1;
-               bank->sectors = calloc(bank->num_sectors,
-                                      sizeof((bank->sectors)[0]));
-               if (!bank->sectors)
-                       return ERROR_FLASH_BANK_NOT_PROBED;
+               bank->size = flash_page_size;
 
-               bank->sectors[0].size = bank->size;
-               bank->sectors[0].offset = 0;
+               bank->sectors = alloc_block_array(0, flash_page_size, 
num_sectors);
+               if (!bank->sectors)
+                       return ERROR_FAIL;
 
-               bank->sectors[0].is_erased = 0;
                bank->sectors[0].is_protected = 0;
 
                chip->bank[1].probed = true;

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to