flash_bank_t -> struct flash_bank
[fw/openocd] / src / flash / stellaris.c
index 22d5bc462286259a5e72abb11398b2d199f97315..efda8590e20894cac648edb8405f01347c9bdf23 100644 (file)
 
 #define DID0_VER(did0) ((did0 >> 28)&0x07)
 
-static int stellaris_read_part_info(struct flash_bank_s *bank);
-static uint32_t stellaris_get_flash_status(flash_bank_t *bank);
-static void stellaris_set_flash_mode(flash_bank_t *bank,int mode);
-//static uint32_t stellaris_wait_status_busy(flash_bank_t *bank, uint32_t waitbits, int timeout);
+static int stellaris_read_part_info(struct flash_bank *bank);
+static uint32_t stellaris_get_flash_status(struct flash_bank *bank);
+static void stellaris_set_flash_mode(struct flash_bank *bank,int mode);
+//static uint32_t stellaris_wait_status_busy(struct flash_bank *bank, uint32_t waitbits, int timeout);
 
-static int stellaris_mass_erase(struct flash_bank_s *bank);
+static int stellaris_mass_erase(struct flash_bank *bank);
 
 static struct {
        uint32_t partno;
@@ -213,9 +213,9 @@ static char * StellarisClassname[5] =
 
 /* flash_bank stellaris <base> <size> 0 0 <target#>
  */
-static int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
+FLASH_BANK_COMMAND_HANDLER(stellaris_flash_bank_command)
 {
-       stellaris_flash_bank_t *stellaris_info;
+       struct stellaris_flash_bank *stellaris_info;
 
        if (argc < 6)
        {
@@ -223,7 +223,7 @@ static int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char
                return ERROR_FLASH_BANK_INVALID;
        }
 
-       stellaris_info = calloc(sizeof(stellaris_flash_bank_t), 1);
+       stellaris_info = calloc(sizeof(struct stellaris_flash_bank), 1);
        bank->base = 0x0;
        bank->driver_priv = stellaris_info;
 
@@ -239,10 +239,10 @@ static int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char
        return ERROR_OK;
 }
 
-static int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size)
+static int stellaris_info(struct flash_bank *bank, char *buf, int buf_size)
 {
        int printed, device_class;
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
 
        stellaris_read_part_info(bank);
 
@@ -316,9 +316,9 @@ static int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size)
 *      chip identification and status                                         *
 ***************************************************************************/
 
-static uint32_t stellaris_get_flash_status(flash_bank_t *bank)
+static uint32_t stellaris_get_flash_status(struct flash_bank *bank)
 {
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        uint32_t fmc;
 
        target_read_u32(target, FLASH_CONTROL_BASE | FLASH_FMC, &fmc);
@@ -361,10 +361,10 @@ static const unsigned rcc_xtal[32] = {
        [0x16] = 16384000,
 };
 
-static void stellaris_read_clock_info(flash_bank_t *bank)
+static void stellaris_read_clock_info(struct flash_bank *bank)
 {
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
        uint32_t rcc, rcc2, pllcfg, sysdiv, usesysdiv, bypass, oscsrc;
        unsigned xtal;
        unsigned long mainfreq;
@@ -448,10 +448,10 @@ static void stellaris_read_clock_info(flash_bank_t *bank)
 }
 
 /* Setup the timimg registers */
-static void stellaris_set_flash_mode(flash_bank_t *bank,int mode)
+static void stellaris_set_flash_mode(struct flash_bank *bank,int mode)
 {
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
 
        uint32_t usecrl = (stellaris_info->mck_freq/1000000ul-1);
        LOG_DEBUG("usecrl = %i",(int)(usecrl));
@@ -459,7 +459,7 @@ static void stellaris_set_flash_mode(flash_bank_t *bank,int mode)
 }
 
 #if 0
-static uint32_t stellaris_wait_status_busy(flash_bank_t *bank, uint32_t waitbits, int timeout)
+static uint32_t stellaris_wait_status_busy(struct flash_bank *bank, uint32_t waitbits, int timeout)
 {
        uint32_t status;
 
@@ -476,10 +476,10 @@ static uint32_t stellaris_wait_status_busy(flash_bank_t *bank, uint32_t waitbits
 }
 
 /* Send one command to the flash controller */
-static int stellaris_flash_command(struct flash_bank_s *bank,uint8_t cmd,uint16_t pagen)
+static int stellaris_flash_command(struct flash_bank *bank,uint8_t cmd,uint16_t pagen)
 {
        uint32_t fmc;
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
        fmc = FMC_WRKEY | cmd;
        target_write_u32(target, FLASH_CONTROL_BASE | FLASH_FMC, fmc);
@@ -495,10 +495,10 @@ static int stellaris_flash_command(struct flash_bank_s *bank,uint8_t cmd,uint16_
 #endif
 
 /* Read device id register, main clock frequency register and fill in driver info structure */
-static int stellaris_read_part_info(struct flash_bank_s *bank)
+static int stellaris_read_part_info(struct flash_bank *bank)
 {
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
        uint32_t did0, did1, ver, fam, status;
        int i;
 
@@ -592,7 +592,7 @@ static int stellaris_read_part_info(struct flash_bank_s *bank)
 
        /* provide this for the benefit of the higher flash driver layers */
        bank->num_sectors = stellaris_info->num_pages;
-       bank->sectors = malloc(sizeof(flash_sector_t) * bank->num_sectors);
+       bank->sectors = malloc(sizeof(struct flash_sector) * bank->num_sectors);
        for (i = 0; i < bank->num_sectors; i++)
        {
                bank->sectors[i].offset = i * stellaris_info->pagesize;
@@ -613,11 +613,11 @@ static int stellaris_read_part_info(struct flash_bank_s *bank)
 *      flash operations                                                       *
 ***************************************************************************/
 
-static int stellaris_protect_check(struct flash_bank_s *bank)
+static int stellaris_protect_check(struct flash_bank *bank)
 {
        uint32_t status;
 
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
 
        if (bank->target->state != TARGET_HALTED)
        {
@@ -642,12 +642,12 @@ static int stellaris_protect_check(struct flash_bank_s *bank)
        return ERROR_OK;
 }
 
-static int stellaris_erase(struct flash_bank_s *bank, int first, int last)
+static int stellaris_erase(struct flash_bank *bank, int first, int last)
 {
        int banknr;
        uint32_t flash_fmc, flash_cris;
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
 
        if (bank->target->state != TARGET_HALTED)
        {
@@ -712,13 +712,13 @@ static int stellaris_erase(struct flash_bank_s *bank, int first, int last)
        return ERROR_OK;
 }
 
-static int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last)
+static int stellaris_protect(struct flash_bank *bank, int set, int first, int last)
 {
        uint32_t fmppe, flash_fmc, flash_cris;
        int lockregion;
 
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
 
        if (bank->target->state != TARGET_HALTED)
        {
@@ -828,15 +828,15 @@ static uint8_t stellaris_write_code[] =
        0x01,0x00,0x42,0xA4     /* .word        0xA4420001 */
 };
 
-static int stellaris_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t wcount)
+static int stellaris_write_block(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t wcount)
 {
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        uint32_t buffer_size = 8192;
-       working_area_t *source;
-       working_area_t *write_algorithm;
+       struct working_area *source;
+       struct working_area *write_algorithm;
        uint32_t address = bank->base + offset;
-       reg_param_t reg_params[3];
-       armv7m_algorithm_t armv7m_info;
+       struct reg_param reg_params[3];
+       struct armv7m_algorithm armv7m_info;
        int retval = ERROR_OK;
 
        LOG_DEBUG("(bank=%p buffer=%p offset=%08" PRIx32 " wcount=%08" PRIx32 "",
@@ -908,10 +908,10 @@ static int stellaris_write_block(struct flash_bank_s *bank, uint8_t *buffer, uin
        return retval;
 }
 
-static int stellaris_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int stellaris_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
 {
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
+       struct target *target = bank->target;
        uint32_t address = offset;
        uint32_t flash_cris, flash_fmc;
        uint32_t words_remaining = (count / 4);
@@ -1043,7 +1043,7 @@ static int stellaris_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t
        return ERROR_OK;
 }
 
-static int stellaris_probe(struct flash_bank_s *bank)
+static int stellaris_probe(struct flash_bank *bank)
 {
        /* we can't probe on an stellaris
         * if this is an stellaris, it has the configured flash
@@ -1059,18 +1059,18 @@ static int stellaris_probe(struct flash_bank_s *bank)
        return stellaris_read_part_info(bank);
 }
 
-static int stellaris_auto_probe(struct flash_bank_s *bank)
+static int stellaris_auto_probe(struct flash_bank *bank)
 {
-       stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
+       struct stellaris_flash_bank *stellaris_info = bank->driver_priv;
        if (stellaris_info->did1)
                return ERROR_OK;
        return stellaris_probe(bank);
 }
 
-static int stellaris_mass_erase(struct flash_bank_s *bank)
+static int stellaris_mass_erase(struct flash_bank *bank)
 {
-       target_t *target = NULL;
-       stellaris_flash_bank_t *stellaris_info = NULL;
+       struct target *target = NULL;
+       struct stellaris_flash_bank *stellaris_info = NULL;
        uint32_t flash_fmc;
 
        stellaris_info = bank->driver_priv;
@@ -1137,7 +1137,7 @@ COMMAND_HANDLER(stellaris_handle_mass_erase_command)
                return ERROR_OK;
        }
 
-       flash_bank_t *bank;
+       struct flash_bank *bank;
        int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
        if (ERROR_OK != retval)
                return retval;
@@ -1172,7 +1172,7 @@ static int stellaris_register_commands(struct command_context_s *cmd_ctx)
 }
 
 
-flash_driver_t stellaris_flash = {
+struct flash_driver stellaris_flash = {
                .name = "stellaris",
                .register_commands = &stellaris_register_commands,
                .flash_bank_command = &stellaris_flash_bank_command,