flash: declare fixed arrays const 87/1887/2
authorSpencer Oliver <spen@spen-soft.co.uk>
Mon, 20 Jan 2014 15:03:24 +0000 (15:03 +0000)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Thu, 6 Feb 2014 22:17:51 +0000 (22:17 +0000)
Change-Id: Id06b8b53ec59a7b3182f60f51dde5b16563aaeef
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/1887
Tested-by: jenkins
14 files changed:
contrib/gen-stellaris-part-header.pl
src/flash/nand/lpc32xx.c
src/flash/nor/at91sam4l.c
src/flash/nor/at91sam7.c
src/flash/nor/avrf.c
src/flash/nor/fm3.c
src/flash/nor/kinetis.c
src/flash/nor/lpcspifi.c
src/flash/nor/nuc1x.c
src/flash/nor/spi.c
src/flash/nor/spi.h
src/flash/nor/stellaris.c
src/flash/nor/stmsmi.c
src/flash/nor/str7x.c

index 0cc567f72fbafadf760f460d0957cb89fb660c8a..68f2889b31d00512d271872de2d93a31c1f3bc1c 100755 (executable)
@@ -6,7 +6,7 @@
 $comment = "// Autogenerated by contrib/gen-stellaris-part-header.pl
 // From Stellaris Firmware Development Package revision";
 
 $comment = "// Autogenerated by contrib/gen-stellaris-part-header.pl
 // From Stellaris Firmware Development Package revision";
 
-$struct_header = "static struct {
+$struct_header = "static const struct {
        uint8_t class;
        uint8_t partno;
        const char *partname;
        uint8_t class;
        uint8_t partno;
        const char *partname;
index 38c7e33500ed705bd3a2a9a728afab77cbe3d8c2..c310f90406f2989bd8def9e62f7c7086b098bfb2 100644 (file)
@@ -52,10 +52,10 @@ extern int nand_correct_data(struct nand_device *nand, u_char *dat,
 #define SPARE_OFFS 0x140
 #define DATA_OFFS  0x200
 
 #define SPARE_OFFS 0x140
 #define DATA_OFFS  0x200
 
-static int sp_ooblayout[] = {
+static const int sp_ooblayout[] = {
        10, 11, 12, 13, 14, 15
 };
        10, 11, 12, 13, 14, 15
 };
-static int lp_ooblayout[] = {
+static const int lp_ooblayout[] = {
        40, 41, 42, 43, 44, 45,
        46, 47, 48, 49, 50, 51,
        52, 53, 54, 55, 56, 57,
        40, 41, 42, 43, 44, 45,
        46, 47, 48, 49, 50, 51,
        52, 53, 54, 55, 56, 57,
@@ -1148,7 +1148,7 @@ static int lpc32xx_write_page_slc(struct nand_device *nand,
                /* Copy to oob, at correct offsets */
                static uint8_t ecc[24];
                slc_ecc_copy_to_buffer(ecc, hw_ecc, ecc_count);
                /* Copy to oob, at correct offsets */
                static uint8_t ecc[24];
                slc_ecc_copy_to_buffer(ecc, hw_ecc, ecc_count);
-               int *layout = nand->page_size == 2048 ? lp_ooblayout : sp_ooblayout;
+               const int *layout = nand->page_size == 2048 ? lp_ooblayout : sp_ooblayout;
                int i;
                for (i = 0; i < ecc_count * 3; i++)
                        foob[layout[i]] = ecc[i];
                int i;
                for (i = 0; i < ecc_count * 3; i++)
                        foob[layout[i]] = ecc[i];
@@ -1549,7 +1549,7 @@ static int lpc32xx_read_page_slc(struct nand_device *nand,
        slc_ecc_copy_to_buffer(ecc, hw_ecc, ecc_count);
        /* Copy ECC from flash using correct layout */
        static uint8_t fecc[24];/* max size */
        slc_ecc_copy_to_buffer(ecc, hw_ecc, ecc_count);
        /* Copy ECC from flash using correct layout */
        static uint8_t fecc[24];/* max size */
-       int *layout = nand->page_size == 2048 ? lp_ooblayout : sp_ooblayout;
+       const int *layout = nand->page_size == 2048 ? lp_ooblayout : sp_ooblayout;
        int i;
        for (i = 0; i < ecc_count * 3; i++)
                fecc[i] = foob[layout[i]];
        int i;
        for (i = 0; i < ecc_count * 3; i++)
                fecc[i] = foob[layout[i]];
index bb84185205b5834ae91745911f138e46fe629b33..d3bdbfe67b8227d63adc520d78387cfc7886366b 100644 (file)
@@ -82,7 +82,7 @@ struct sam4l_chip_info {
 };
 
 /* These are taken from Table 9-1 in 42023E-SAM-07/2013 */
 };
 
 /* These are taken from Table 9-1 in 42023E-SAM-07/2013 */
-static struct sam4l_chip_info sam4l_known_chips[] = {
+static const struct sam4l_chip_info sam4l_known_chips[] = {
        { 0xAB0B0AE0, 0x1400000F, "ATSAM4LC8C" },
        { 0xAB0A09E0, 0x0400000F, "ATSAM4LC4C" },
        { 0xAB0A07E0, 0x0400000F, "ATSAM4LC2C" },
        { 0xAB0B0AE0, 0x1400000F, "ATSAM4LC8C" },
        { 0xAB0A09E0, 0x0400000F, "ATSAM4LC4C" },
        { 0xAB0A07E0, 0x0400000F, "ATSAM4LC2C" },
@@ -104,13 +104,13 @@ static struct sam4l_chip_info sam4l_known_chips[] = {
 };
 
 /* Meaning of SRAMSIZ field in CHIPID, see 9.3.1 in 42023E-SAM-07/2013 */
 };
 
 /* Meaning of SRAMSIZ field in CHIPID, see 9.3.1 in 42023E-SAM-07/2013 */
-static uint16_t sam4l_ram_sizes[16] = { 48, 1, 2, 6, 24, 4, 80, 160, 8, 16, 32, 64, 128, 256, 96, 512 };
+static const uint16_t sam4l_ram_sizes[16] = { 48, 1, 2, 6, 24, 4, 80, 160, 8, 16, 32, 64, 128, 256, 96, 512 };
 
 /* Meaning of PSZ field in FPR, see 14.10.4 in 42023E-SAM-07/2013 */
 static const uint16_t sam4l_page_sizes[8] = { 32, 64, 128, 256, 512, 1024, 2048, 4096 };
 
 struct sam4l_info {
 
 /* Meaning of PSZ field in FPR, see 14.10.4 in 42023E-SAM-07/2013 */
 static const uint16_t sam4l_page_sizes[8] = { 32, 64, 128, 256, 512, 1024, 2048, 4096 };
 
 struct sam4l_info {
-       struct sam4l_chip_info *details;
+       const struct sam4l_chip_info *details;
 
        uint32_t flash_kb;
        uint32_t ram_kb;
 
        uint32_t flash_kb;
        uint32_t ram_kb;
@@ -230,7 +230,7 @@ FLASH_BANK_COMMAND_HANDLER(sam4l_flash_bank_command)
        return ERROR_OK;
 }
 
        return ERROR_OK;
 }
 
-static struct sam4l_chip_info *sam4l_find_chip_name(uint32_t id, uint32_t exid)
+static const struct sam4l_chip_info *sam4l_find_chip_name(uint32_t id, uint32_t exid)
 {
        unsigned int i;
 
 {
        unsigned int i;
 
index 7d0de3aaf5288f1e6409dff76165954d5c96cc0f..9cda3f2d7a69f2f49f6e5a3bd15e0fdac4bc9378 100644 (file)
@@ -106,11 +106,11 @@ static void at91sam7_set_flash_mode(struct flash_bank *bank, int mode);
 static uint32_t at91sam7_wait_status_busy(struct flash_bank *bank, uint32_t waitbits, int timeout);
 static int at91sam7_flash_command(struct flash_bank *bank, uint8_t cmd, uint16_t pagen);
 
 static uint32_t at91sam7_wait_status_busy(struct flash_bank *bank, uint32_t waitbits, int timeout);
 static int at91sam7_flash_command(struct flash_bank *bank, uint8_t cmd, uint16_t pagen);
 
-static uint32_t MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 };
-static uint32_t MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 };
-static uint32_t MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 };
+static const uint32_t MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 };
+static const uint32_t MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 };
+static const uint32_t MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 };
 
 
-static char *EPROC[8] = {
+static const char *EPROC[8] = {
        "Unknown", "ARM946-E", "ARM7TDMI", "Unknown", "ARM920T", "ARM926EJ-S", "Unknown", "Unknown"
 };
 
        "Unknown", "ARM946-E", "ARM7TDMI", "Unknown", "ARM920T", "ARM926EJ-S", "Unknown", "Unknown"
 };
 
index 393798a9ff558dd4852d3268b22772a510bb9a01..e408282b5cbcd895ac67cbd628339142a9140308 100644 (file)
@@ -63,7 +63,7 @@ struct avrf_flash_bank {
        int probed;
 };
 
        int probed;
 };
 
-static struct avrf_type avft_chips_info[] = {
+static const struct avrf_type avft_chips_info[] = {
 /*     name, chip_id,  flash_page_size, flash_page_num,
  *                     eeprom_page_size, eeprom_page_num
  */
 /*     name, chip_id,  flash_page_size, flash_page_num,
  *                     eeprom_page_size, eeprom_page_num
  */
@@ -293,7 +293,7 @@ static int avrf_probe(struct flash_bank *bank)
        struct target *target = bank->target;
        struct avrf_flash_bank *avrf_info = bank->driver_priv;
        struct avr_common *avr = target->arch_info;
        struct target *target = bank->target;
        struct avrf_flash_bank *avrf_info = bank->driver_priv;
        struct avr_common *avr = target->arch_info;
-       struct avrf_type *avr_info = NULL;
+       const struct avrf_type *avr_info = NULL;
        int i;
        uint32_t device_id;
 
        int i;
        uint32_t device_id;
 
@@ -370,7 +370,7 @@ static int avrf_info(struct flash_bank *bank, char *buf, int buf_size)
 {
        struct target *target = bank->target;
        struct avr_common *avr = target->arch_info;
 {
        struct target *target = bank->target;
        struct avr_common *avr = target->arch_info;
-       struct avrf_type *avr_info = NULL;
+       const struct avrf_type *avr_info = NULL;
        int i;
        uint32_t device_id;
 
        int i;
        uint32_t device_id;
 
index 09ce3173822733bd52c66a4cc1569c7ddefc84e8..5ec2f60acdaeb95f867ac7dd29ef0117a0b481ab 100644 (file)
@@ -332,7 +332,7 @@ static int fm3_write_block(struct flash_bank *bank, uint8_t *buffer,
        /* R4 keeps Flash Sequence address 2     (u32FlashSeq2)    */
        /* R5 returns result value               (u32FlashResult)  */
 
        /* R4 keeps Flash Sequence address 2     (u32FlashSeq2)    */
        /* R5 returns result value               (u32FlashResult)  */
 
-       const uint8_t fm3_flash_write_code[] = {
+       static const uint8_t fm3_flash_write_code[] = {
                                                                /*    fm3_FLASH_IF->FASZ &= 0xFFFD;           */
        0x5F, 0xF0, 0x80, 0x45,         /*        MOVS.W   R5, #(fm3_FLASH_IF->FASZ)  */
        0x2D, 0x68,                                     /*        LDR      R5, [R5]                   */
                                                                /*    fm3_FLASH_IF->FASZ &= 0xFFFD;           */
        0x5F, 0xF0, 0x80, 0x45,         /*        MOVS.W   R5, #(fm3_FLASH_IF->FASZ)  */
        0x2D, 0x68,                                     /*        LDR      R5, [R5]                   */
index c2ea1d8cbe19c3b02605ea8e505337a0755d7fe6..bc39772ddd0021f7446587ff32c50c4b4e328e63 100644 (file)
@@ -86,7 +86,7 @@
  *
  */
 
  *
  */
 
-const struct {
+static const struct {
        unsigned pflash_sector_size_bytes;
        unsigned nvm_sector_size_bytes;
        unsigned num_blocks;
        unsigned pflash_sector_size_bytes;
        unsigned nvm_sector_size_bytes;
        unsigned num_blocks;
index b30a2d93b9ad5860ab9b1c895818f0d7c0c2b4f1..7566c275f863e3a32209a126fa4cfbf1782f0a31 100644 (file)
@@ -51,7 +51,7 @@ struct lpcspifi_flash_bank {
        uint32_t ioconfig_base;
        uint32_t bank_num;
        uint32_t max_spi_clock_mhz;
        uint32_t ioconfig_base;
        uint32_t bank_num;
        uint32_t max_spi_clock_mhz;
-       struct flash_device *dev;
+       const struct flash_device *dev;
 };
 
 struct lpcspifi_target {
 };
 
 struct lpcspifi_target {
@@ -63,7 +63,7 @@ struct lpcspifi_target {
        uint32_t ioconfig_base; /* base address for the port word pin registers */
 };
 
        uint32_t ioconfig_base; /* base address for the port word pin registers */
 };
 
-static struct lpcspifi_target target_devices[] = {
+static const struct lpcspifi_target target_devices[] = {
        /* name,          tap_idcode, spifi_base, ssp_base,   io_base,    ioconfig_base */
        { "LPC43xx/18xx", 0x4ba00477, 0x14000000, 0x40083000, 0x400F4000, 0x40086000 },
        { NULL,           0,          0,          0,          0,          0 }
        /* name,          tap_idcode, spifi_base, ssp_base,   io_base,    ioconfig_base */
        { "LPC43xx/18xx", 0x4ba00477, 0x14000000, 0x40083000, 0x400F4000, 0x40086000 },
        { NULL,           0,          0,          0,          0,          0 }
@@ -848,7 +848,7 @@ static int lpcspifi_probe(struct flash_bank *bank)
        uint32_t ioconfig_base;
        struct flash_sector *sectors;
        uint32_t id = 0; /* silence uninitialized warning */
        uint32_t ioconfig_base;
        struct flash_sector *sectors;
        uint32_t id = 0; /* silence uninitialized warning */
-       struct lpcspifi_target *target_device;
+       const struct lpcspifi_target *target_device;
        int retval;
 
        /* If we've already probed, we should be fine to skip this time. */
        int retval;
 
        /* If we've already probed, we should be fine to skip this time. */
@@ -886,7 +886,7 @@ static int lpcspifi_probe(struct flash_bank *bank)
                return retval;
 
        lpcspifi_info->dev = NULL;
                return retval;
 
        lpcspifi_info->dev = NULL;
-       for (struct flash_device *p = flash_devices; p->name ; p++)
+       for (const struct flash_device *p = flash_devices; p->name ; p++)
                if (p->device_id == id) {
                        lpcspifi_info->dev = p;
                        break;
                if (p->device_id == id) {
                        lpcspifi_info->dev = p;
                        break;
index da88134da7554326b97a9041a613ef82835e9d82..6ca858ec938080ee5628dfcfac34aa40d8872f79 100644 (file)
@@ -76,7 +76,7 @@
 #define LOCK 0x00
 
 /* part structs */
 #define LOCK 0x00
 
 /* part structs */
-static struct {
+static const struct {
        const char *partname;
        uint32_t partno;
        uint16_t num_page;
        const char *partname;
        uint32_t partno;
        uint16_t num_page;
index 2eef632634814c0ebee16ff16e350c7190099ce5..e87f6754fbb302b02ee618902a0a5d9c871ec31e 100644 (file)
@@ -31,7 +31,7 @@
 
  /* Shared table of known SPI flash devices for SPI-based flash drivers. Taken
   * from device datasheets and Linux SPI flash drivers. */
 
  /* Shared table of known SPI flash devices for SPI-based flash drivers. Taken
   * from device datasheets and Linux SPI flash drivers. */
-struct flash_device flash_devices[] = {
+const struct flash_device flash_devices[] = {
        /* name, erase_cmd, chip_erase_cmd, device_id, pagesize, sectorsize, size_in_bytes */
        FLASH_ID("st m25p05",      0xd8, 0xc7, 0x00102020, 0x80,  0x8000,  0x10000),
        FLASH_ID("st m25p10",      0xd8, 0xc7, 0x00112020, 0x80,  0x8000,  0x20000),
        /* name, erase_cmd, chip_erase_cmd, device_id, pagesize, sectorsize, size_in_bytes */
        FLASH_ID("st m25p05",      0xd8, 0xc7, 0x00102020, 0x80,  0x8000,  0x10000),
        FLASH_ID("st m25p10",      0xd8, 0xc7, 0x00112020, 0x80,  0x8000,  0x20000),
index e397a6be421fed748697a24ec4cb1503e2e88d5c..6e939b76910d47393a6f3d6cf6cd3c498caa6fb8 100644 (file)
@@ -43,7 +43,7 @@ struct flash_device {
        .size_in_bytes = size   \
 }
 
        .size_in_bytes = size   \
 }
 
-extern struct flash_device flash_devices[];
+extern const struct flash_device flash_devices[];
 
 /* fields in SPI flash status register */
 #define SPIFLASH_BSY_BIT               0x00000001 /* WIP Bit of SPI SR on SMI SR */
 
 /* fields in SPI flash status register */
 #define SPIFLASH_BSY_BIT               0x00000001 /* WIP Bit of SPI SR on SMI SR */
index 71debdc7a81302583ad45d6d1647598f3e73e843..8886c195a8a9f1383180f425ecba8213576022ff 100644 (file)
@@ -125,7 +125,7 @@ struct stellaris_flash_bank {
 
 /* Autogenerated by contrib/gen-stellaris-part-header.pl */
 /* From Stellaris Firmware Development Package revision 9453 */
 
 /* Autogenerated by contrib/gen-stellaris-part-header.pl */
 /* From Stellaris Firmware Development Package revision 9453 */
-static struct {
+static const struct {
        uint8_t class;
        uint8_t partno;
        const char *partname;
        uint8_t class;
        uint8_t partno;
        const char *partname;
@@ -417,7 +417,7 @@ static struct {
        {0xFF, 0x00, "Unknown Part"}
 };
 
        {0xFF, 0x00, "Unknown Part"}
 };
 
-static char *StellarisClassname[7] = {
+static const char *StellarisClassname[7] = {
        "Sandstorm",
        "Fury",
        "Unknown",
        "Sandstorm",
        "Fury",
        "Unknown",
index 9a715ef947d3ee85876afe5da532f621f4492b36..eea1d9f48e650fae2ab20e6cbaaabfe8577cbebb 100644 (file)
@@ -120,7 +120,7 @@ struct stmsmi_flash_bank {
        int probed;
        uint32_t io_base;
        uint32_t bank_num;
        int probed;
        uint32_t io_base;
        uint32_t bank_num;
-       struct flash_device *dev;
+       const struct flash_device *dev;
 };
 
 struct stmsmi_target {
 };
 
 struct stmsmi_target {
@@ -130,7 +130,7 @@ struct stmsmi_target {
        uint32_t io_base;
 };
 
        uint32_t io_base;
 };
 
-static struct stmsmi_target target_devices[] = {
+static const struct stmsmi_target target_devices[] = {
        /* name,          tap_idcode, smi_base,   io_base */
        { "SPEAr3xx/6xx", 0x07926041, 0xf8000000, 0xfc000000 },
        { "STR75x",       0x4f1f0041, 0x80000000, 0x90000000 },
        /* name,          tap_idcode, smi_base,   io_base */
        { "SPEAr3xx/6xx", 0x07926041, 0xf8000000, 0xfc000000 },
        { "STR75x",       0x4f1f0041, 0x80000000, 0x90000000 },
@@ -529,7 +529,7 @@ static int stmsmi_probe(struct flash_bank *bank)
        uint32_t io_base;
        struct flash_sector *sectors;
        uint32_t id = 0; /* silence uninitialized warning */
        uint32_t io_base;
        struct flash_sector *sectors;
        uint32_t id = 0; /* silence uninitialized warning */
-       struct stmsmi_target *target_device;
+       const struct stmsmi_target *target_device;
        int retval;
 
        if (stmsmi_info->probed)
        int retval;
 
        if (stmsmi_info->probed)
@@ -575,7 +575,7 @@ static int stmsmi_probe(struct flash_bank *bank)
                return retval;
 
        stmsmi_info->dev = NULL;
                return retval;
 
        stmsmi_info->dev = NULL;
-       for (struct flash_device *p = flash_devices; p->name ; p++)
+       for (const struct flash_device *p = flash_devices; p->name ; p++)
                if (p->device_id == id) {
                        stmsmi_info->dev = p;
                        break;
                if (p->device_id == id) {
                        stmsmi_info->dev = p;
                        break;
index cbd8928e4c7224fdbf779b89df42adaa56214466..32c8ebd5e034880a5f9e7cca3cddd95834a2fe23 100644 (file)
@@ -113,7 +113,7 @@ enum str7x_status_codes {
        STR7X_BUSY = 11
 };
 
        STR7X_BUSY = 11
 };
 
-static struct str7x_mem_layout mem_layout_str7bank0[] = {
+static const struct str7x_mem_layout mem_layout_str7bank0[] = {
        {0x00000000, 0x02000, 0x01},
        {0x00002000, 0x02000, 0x02},
        {0x00004000, 0x02000, 0x04},
        {0x00000000, 0x02000, 0x01},
        {0x00002000, 0x02000, 0x02},
        {0x00004000, 0x02000, 0x04},
@@ -124,7 +124,7 @@ static struct str7x_mem_layout mem_layout_str7bank0[] = {
        {0x00030000, 0x10000, 0x80}
 };
 
        {0x00030000, 0x10000, 0x80}
 };
 
-static struct str7x_mem_layout mem_layout_str7bank1[] = {
+static const struct str7x_mem_layout mem_layout_str7bank1[] = {
        {0x00000000, 0x02000, 0x10000},
        {0x00002000, 0x02000, 0x20000}
 };
        {0x00000000, 0x02000, 0x10000},
        {0x00002000, 0x02000, 0x20000}
 };

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)