target: don't implicitly include "breakpoint.h"
[fw/openocd] / src / flash / lpc2900.c
index fd265bd7ddeb85fc41aa9a6127a22ab044dc4f77..556a1512474ec7801ee6c17ac82f500f68f3d18f 100644 (file)
@@ -24,8 +24,7 @@
 
 
 #include "image.h"
-
-#include "lpc2900.h"
+#include "flash.h"
 #include "binarybuffer.h"
 #include "armv4_5.h"
 
 /**
  * Private data for \c lpc2900 flash driver.
  */
-typedef struct lpc2900_flash_bank_s
+struct lpc2900_flash_bank
 {
        /**
         * Holds the value read from CHIPID register.
@@ -168,17 +167,17 @@ typedef struct lpc2900_flash_bank_s
         */
        uint32_t max_ram_block;
 
-} lpc2900_flash_bank_t;
+};
 
 
-static uint32_t lpc2900_wait_status(flash_bank_t *bank, uint32_t mask, int timeout);
-static void lpc2900_setup(struct flash_bank_s *bank);
-static uint32_t lpc2900_is_ready(struct flash_bank_s *bank);
-static uint32_t lpc2900_read_security_status(struct flash_bank_s *bank);
-static uint32_t lpc2900_run_bist128(struct flash_bank_s *bank,
+static uint32_t lpc2900_wait_status(struct flash_bank *bank, uint32_t mask, int timeout);
+static void lpc2900_setup(struct flash_bank *bank);
+static uint32_t lpc2900_is_ready(struct flash_bank *bank);
+static uint32_t lpc2900_read_security_status(struct flash_bank *bank);
+static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
                                     uint32_t addr_from, uint32_t addr_to,
                                     uint32_t (*signature)[4] );
-static uint32_t lpc2900_address2sector(struct flash_bank_s *bank, uint32_t offset);
+static uint32_t lpc2900_address2sector(struct flash_bank *bank, uint32_t offset);
 static uint32_t lpc2900_calc_tr( uint32_t clock, uint32_t time );
 
 
@@ -194,12 +193,12 @@ static uint32_t lpc2900_calc_tr( uint32_t clock, uint32_t time );
  * @param[in] mask Mask to be used for INT_STATUS
  * @param[in] timeout Timeout in ms
  */
-static uint32_t lpc2900_wait_status( flash_bank_t *bank,
+static uint32_t lpc2900_wait_status( struct flash_bank *bank,
                                      uint32_t mask,
                                      int timeout )
 {
        uint32_t int_status;
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
 
        do
@@ -228,10 +227,10 @@ static uint32_t lpc2900_wait_status( flash_bank_t *bank,
  *
  * @param bank Pointer to the flash bank descriptor
  */
-static void lpc2900_setup( struct flash_bank_s *bank )
+static void lpc2900_setup( struct flash_bank *bank )
 {
        uint32_t fcra;
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
 
        /* Power up the flash block */
@@ -251,9 +250,9 @@ static void lpc2900_setup( struct flash_bank_s *bank )
  * Must have been successfully probed.
  * Must be halted.
  */
-static uint32_t lpc2900_is_ready( struct flash_bank_s *bank )
+static uint32_t lpc2900_is_ready( struct flash_bank *bank )
 {
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
        if( lpc2900_info->chipid != EXPECTED_CHIPID )
        {
@@ -275,7 +274,7 @@ static uint32_t lpc2900_is_ready( struct flash_bank_s *bank )
  *
  * @param bank Pointer to the flash bank descriptor
  */
-static uint32_t lpc2900_read_security_status( struct flash_bank_s *bank )
+static uint32_t lpc2900_read_security_status( struct flash_bank *bank )
 {
        uint32_t status;
        if( (status = lpc2900_is_ready( bank )) != ERROR_OK )
@@ -283,7 +282,7 @@ static uint32_t lpc2900_read_security_status( struct flash_bank_s *bank )
                return status;
        }
 
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
        /* Enable ISS access */
        target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB | FCTR_FS_ISS);
@@ -356,12 +355,12 @@ static uint32_t lpc2900_read_security_status( struct flash_bank_s *bank )
  * @param addr_to
  * @param signature
  */
-static uint32_t lpc2900_run_bist128(struct flash_bank_s *bank,
+static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
                                     uint32_t addr_from,
                                     uint32_t addr_to,
                                     uint32_t (*signature)[4] )
 {
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
        /* Clear END_OF_MISR interrupt status */
        target_write_u32( target, INT_CLR_STATUS, INTSRC_END_OF_MISR );
@@ -393,7 +392,7 @@ static uint32_t lpc2900_run_bist128(struct flash_bank_s *bank,
  * @param bank Pointer to the flash bank descriptor
  * @param offset Offset address relative to bank start
  */
-static uint32_t lpc2900_address2sector( struct flash_bank_s *bank,
+static uint32_t lpc2900_address2sector( struct flash_bank *bank,
                                         uint32_t offset )
 {
        uint32_t address = bank->base + offset;
@@ -424,7 +423,7 @@ static uint32_t lpc2900_address2sector( struct flash_bank_s *bank,
  * @param pagenum Page number (0...7)
  * @param page Page array (FLASH_PAGE_SIZE bytes)
  */
-static int lpc2900_write_index_page( struct flash_bank_s *bank,
+static int lpc2900_write_index_page( struct flash_bank *bank,
                                      int pagenum,
                                      uint8_t (*page)[FLASH_PAGE_SIZE] )
 {
@@ -436,7 +435,7 @@ static int lpc2900_write_index_page( struct flash_bank_s *bank,
        }
 
        /* Get target, and check if it's halted */
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        if( target->state != TARGET_HALTED )
        {
                LOG_ERROR( "Target not halted" );
@@ -444,7 +443,7 @@ static int lpc2900_write_index_page( struct flash_bank_s *bank,
        }
 
        /* Private info */
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
        /* Enable flash block and set the correct CRA clock of 66 kHz */
        lpc2900_setup( bank );
@@ -543,7 +542,7 @@ COMMAND_HANDLER(lpc2900_handle_signature_command)
                return ERROR_FLASH_BANK_INVALID;
        }
 
-       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;
@@ -588,16 +587,16 @@ COMMAND_HANDLER(lpc2900_handle_read_custom_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       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;
 
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
        lpc2900_info->risky = 0;
 
        /* Get target, and check if it's halted */
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        if( target->state != TARGET_HALTED )
        {
                LOG_ERROR( "Target not halted" );
@@ -659,12 +658,12 @@ COMMAND_HANDLER(lpc2900_handle_password_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       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;
 
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
 #define ISS_PASSWORD "I_know_what_I_am_doing"
 
@@ -694,12 +693,12 @@ COMMAND_HANDLER(lpc2900_handle_write_custom_command)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       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;
 
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
        /* Check if command execution is allowed. */
        if( !lpc2900_info->risky )
@@ -710,7 +709,7 @@ COMMAND_HANDLER(lpc2900_handle_write_custom_command)
        lpc2900_info->risky = 0;
 
        /* Get target, and check if it's halted */
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        if (target->state != TARGET_HALTED)
        {
                LOG_ERROR("Target not halted");
@@ -718,7 +717,7 @@ COMMAND_HANDLER(lpc2900_handle_write_custom_command)
        }
 
        /* The image will always start at offset 0 */
-       image_t image;
+       struct image image;
        image.base_address_set = 1;
        image.base_address = 0;
        image.start_address_set = 0;
@@ -805,12 +804,12 @@ COMMAND_HANDLER(lpc2900_handle_secure_sector_command)
        }
 
        /* Get the bank descriptor */
-       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;
 
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
        /* Check if command execution is allowed. */
        if( !lpc2900_info->risky )
@@ -904,12 +903,12 @@ COMMAND_HANDLER(lpc2900_handle_secure_jtag_command)
        }
 
        /* Get the bank descriptor */
-       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;
 
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
        /* Check if command execution is allowed. */
        if( !lpc2900_info->risky )
@@ -952,9 +951,9 @@ COMMAND_HANDLER(lpc2900_handle_secure_jtag_command)
 /**
  * Register private command handlers.
  */
-static int lpc2900_register_commands(struct command_context_s *cmd_ctx)
+static int lpc2900_register_commands(struct command_context *cmd_ctx)
 {
-       command_t *lpc2900_cmd = register_command(cmd_ctx, NULL, "lpc2900",
+       struct command *lpc2900_cmd = register_command(cmd_ctx, NULL, "lpc2900",
                                                  NULL, COMMAND_ANY, NULL);
 
        register_command(
@@ -1018,7 +1017,7 @@ static int lpc2900_register_commands(struct command_context_s *cmd_ctx)
 /// Evaluate flash bank command.
 FLASH_BANK_COMMAND_HANDLER(lpc2900_flash_bank_command)
 {
-       lpc2900_flash_bank_t *lpc2900_info;
+       struct lpc2900_flash_bank *lpc2900_info;
 
        if (argc < 6)
        {
@@ -1026,7 +1025,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2900_flash_bank_command)
                return ERROR_FLASH_BANK_INVALID;
        }
 
-       lpc2900_info = malloc(sizeof(lpc2900_flash_bank_t));
+       lpc2900_info = malloc(sizeof(struct lpc2900_flash_bank));
        bank->driver_priv = lpc2900_info;
 
        /* Get flash clock.
@@ -1070,13 +1069,13 @@ FLASH_BANK_COMMAND_HANDLER(lpc2900_flash_bank_command)
  * @param first First sector to be erased
  * @param last Last sector (including) to be erased
  */
-static int lpc2900_erase(struct flash_bank_s *bank, int first, int last)
+static int lpc2900_erase(struct flash_bank *bank, int first, int last)
 {
        uint32_t status;
        int sector;
        int last_unsecured_sector;
-       target_t *target = bank->target;
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct target *target = bank->target;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
 
 
        status = lpc2900_is_ready(bank);
@@ -1177,7 +1176,7 @@ static int lpc2900_erase(struct flash_bank_s *bank, int first, int last)
 
 
 
-static int lpc2900_protect(struct flash_bank_s *bank, int set, int first, int last)
+static int lpc2900_protect(struct flash_bank *bank, int set, int first, int last)
 {
        /* This command is not supported.
      * "Protection" in LPC2900 terms is handled transparently. Sectors will
@@ -1199,14 +1198,14 @@ static int lpc2900_protect(struct flash_bank_s *bank, int set, int first, int la
  * @param offset Start address (relative to bank start)
  * @param count Number of bytes to be programmed
  */
-static int lpc2900_write(struct flash_bank_s *bank, uint8_t *buffer,
+static int lpc2900_write(struct flash_bank *bank, uint8_t *buffer,
                          uint32_t offset, uint32_t count)
 {
        uint8_t page[FLASH_PAGE_SIZE];
        uint32_t status;
        uint32_t num_bytes;
-       target_t *target = bank->target;
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+       struct target *target = bank->target;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
        int sector;
        int retval;
 
@@ -1294,7 +1293,7 @@ static int lpc2900_write(struct flash_bank_s *bank, uint8_t *buffer,
 
        /* Try working area allocation. Start with a large buffer, and try with
           reduced size if that fails. */
-       working_area_t *warea;
+       struct working_area *warea;
        uint32_t buffer_size = lpc2900_info->max_ram_block - 1 * KiB;
        while( (retval = target_alloc_working_area(target,
                                                   buffer_size + target_code_size,
@@ -1313,8 +1312,8 @@ static int lpc2900_write(struct flash_bank_s *bank, uint8_t *buffer,
 
        if( warea )
        {
-               reg_param_t reg_params[5];
-               armv4_5_algorithm_t armv4_5_info;
+               struct reg_param reg_params[5];
+               struct armv4_5_algorithm armv4_5_info;
 
                /* We can use target mode. Download the algorithm. */
                retval = target_write_buffer( target,
@@ -1548,10 +1547,10 @@ static int lpc2900_write(struct flash_bank_s *bank, uint8_t *buffer,
  *
  * @param bank Pointer to the flash bank descriptor
  */
-static int lpc2900_probe(struct flash_bank_s *bank)
+static int lpc2900_probe(struct flash_bank *bank)
 {
-       lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
+       struct target *target = bank->target;
        int i = 0;
        uint32_t offset;
 
@@ -1751,7 +1750,7 @@ static int lpc2900_probe(struct flash_bank_s *bank)
  *
  * @param bank Pointer to the flash bank descriptor
  */
-static int lpc2900_erase_check(struct flash_bank_s *bank)
+static int lpc2900_erase_check(struct flash_bank *bank)
 {
        uint32_t status = lpc2900_is_ready(bank);
        if (status != ERROR_OK)
@@ -1809,7 +1808,7 @@ static int lpc2900_erase_check(struct flash_bank_s *bank)
  *
  * @param bank Pointer to the flash bank descriptor
  */
-static int lpc2900_protect_check(struct flash_bank_s *bank)
+static int lpc2900_protect_check(struct flash_bank *bank)
 {
        return lpc2900_read_security_status(bank);
 }
@@ -1822,7 +1821,7 @@ static int lpc2900_protect_check(struct flash_bank_s *bank)
  * @param buf Buffer to take the string
  * @param buf_size Maximum number of characters that the buffer can take
  */
-static int lpc2900_info(struct flash_bank_s *bank, char *buf, int buf_size)
+static int lpc2900_info(struct flash_bank *bank, char *buf, int buf_size)
 {
        snprintf(buf, buf_size, "lpc2900 flash driver");
 
@@ -1830,7 +1829,7 @@ static int lpc2900_info(struct flash_bank_s *bank, char *buf, int buf_size)
 }
 
 
-flash_driver_t lpc2900_flash =
+struct flash_driver lpc2900_flash =
 {
        .name               = "lpc2900",
        .register_commands  = lpc2900_register_commands,