flash: declare fixed arrays const
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";
 
-$struct_header = "static struct {
+$struct_header = "static const struct {
        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
 
-static int sp_ooblayout[] = {
+static const int sp_ooblayout[] = {
        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,
@@ -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);
-               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];
@@ -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 */
-       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]];
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 */
-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" },
@@ -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 */
-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 {
-       struct sam4l_chip_info *details;
+       const struct sam4l_chip_info *details;
 
        uint32_t flash_kb;
        uint32_t ram_kb;
@@ -230,7 +230,7 @@ FLASH_BANK_COMMAND_HANDLER(sam4l_flash_bank_command)
        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;
 
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 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"
 };
 
index 393798a9ff558dd4852d3268b22772a510bb9a01..e408282b5cbcd895ac67cbd628339142a9140308 100644 (file)
@@ -63,7 +63,7 @@ struct avrf_flash_bank {
        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
  */
@@ -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 avrf_type *avr_info = NULL;
+       const struct avrf_type *avr_info = NULL;
        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 avrf_type *avr_info = NULL;
+       const struct avrf_type *avr_info = NULL;
        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)  */
 
-       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]                   */
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;
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;
-       struct flash_device *dev;
+       const struct flash_device *dev;
 };
 
 struct lpcspifi_target {
@@ -63,7 +63,7 @@ struct lpcspifi_target {
        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 }
@@ -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 */
-       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. */
@@ -886,7 +886,7 @@ static int lpcspifi_probe(struct flash_bank *bank)
                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;
index da88134da7554326b97a9041a613ef82835e9d82..6ca858ec938080ee5628dfcfac34aa40d8872f79 100644 (file)
@@ -76,7 +76,7 @@
 #define LOCK 0x00
 
 /* part structs */
-static struct {
+static const struct {
        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. */
-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),
index e397a6be421fed748697a24ec4cb1503e2e88d5c..6e939b76910d47393a6f3d6cf6cd3c498caa6fb8 100644 (file)
@@ -43,7 +43,7 @@ struct flash_device {
        .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 */
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 */
-static struct {
+static const struct {
        uint8_t class;
        uint8_t partno;
        const char *partname;
@@ -417,7 +417,7 @@ static struct {
        {0xFF, 0x00, "Unknown Part"}
 };
 
-static char *StellarisClassname[7] = {
+static const char *StellarisClassname[7] = {
        "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;
-       struct flash_device *dev;
+       const struct flash_device *dev;
 };
 
 struct stmsmi_target {
@@ -130,7 +130,7 @@ struct stmsmi_target {
        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 },
@@ -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 */
-       struct stmsmi_target *target_device;
+       const struct stmsmi_target *target_device;
        int retval;
 
        if (stmsmi_info->probed)
@@ -575,7 +575,7 @@ static int stmsmi_probe(struct flash_bank *bank)
                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;
index cbd8928e4c7224fdbf779b89df42adaa56214466..32c8ebd5e034880a5f9e7cca3cddd95834a2fe23 100644 (file)
@@ -113,7 +113,7 @@ enum str7x_status_codes {
        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},
@@ -124,7 +124,7 @@ static struct str7x_mem_layout mem_layout_str7bank0[] = {
        {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}
 };