move nand drivers to src/flash/nand/
[fw/openocd] / src / flash / aduc702x.c
index 8011e9334c93ce2485fd4e04c24293071ee01b21..643705cae287c0df6cf1cc0ec31626c1ab99ca0b 100644 (file)
 #include "armv4_5.h"
 #include "binarybuffer.h"
 #include "time_support.h"
+#include "algorithm.h"
 
 
-static int aduc702x_build_sector_list(struct flash_bank_s *bank);
-static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms);
-static int aduc702x_set_write_enable(target_t *target, int enable);
+static int aduc702x_build_sector_list(struct flash_bank *bank);
+static int aduc702x_check_flash_completion(struct target* target, unsigned int timeout_ms);
+static int aduc702x_set_write_enable(struct target *target, int enable);
 
 #define ADUC702x_FLASH                         0xfffff800
 #define ADUC702x_FLASH_FEESTA          (0*4)
@@ -64,9 +65,9 @@ FLASH_BANK_COMMAND_HANDLER(aduc702x_flash_bank_command)
         return ERROR_OK;
 }
 
-static int aduc702x_build_sector_list(struct flash_bank_s *bank)
+static int aduc702x_build_sector_list(struct flash_bank *bank)
 {
-       //aduc7026_flash_bank_t *aduc7026_info = bank->driver_priv;
+       //aduc7026_struct flash_bank *aduc7026_info = bank->driver_priv;
 
         int i = 0;
         uint32_t offset = 0;
@@ -86,19 +87,19 @@ static int aduc702x_build_sector_list(struct flash_bank_s *bank)
        return ERROR_OK;
 }
 
-static int aduc702x_protect_check(struct flash_bank_s *bank)
+static int aduc702x_protect_check(struct flash_bank *bank)
 {
        printf("aduc702x_protect_check not implemented yet.\n");
        return ERROR_OK;
 }
 
-static int aduc702x_erase(struct flash_bank_s *bank, int first, int last)
+static int aduc702x_erase(struct flash_bank *bank, int first, int last)
 {
         //int res;
        int x;
        int count;
        //uint32_t v;
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
         aduc702x_set_write_enable(target, 1);
 
@@ -145,7 +146,7 @@ static int aduc702x_erase(struct flash_bank_s *bank, int first, int last)
        return ERROR_OK;
 }
 
-static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last)
+static int aduc702x_protect(struct flash_bank *bank, int set, int first, int last)
 {
        printf("aduc702x_protect not implemented yet.\n");
        return ERROR_FLASH_OPERATION_FAILED;
@@ -156,10 +157,10 @@ static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int l
  *
  * Caller should not check for other return values specifically
  */
-static int aduc702x_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int aduc702x_write_block(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
 {
        struct aduc702x_flash_bank *aduc702x_info = bank->driver_priv;
-       target_t *target = bank->target;
+       struct target *target = bank->target;
        uint32_t buffer_size = 7000;
        struct working_area *source;
        uint32_t address = bank->base + offset;
@@ -301,11 +302,11 @@ static int aduc702x_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint
 
 /* All-JTAG, single-access method.  Very slow.  Used only if there is no
  * working area available. */
-static int aduc702x_write_single(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int aduc702x_write_single(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
 {
        uint32_t x;
         uint8_t b;
-       target_t *target = bank->target;
+       struct target *target = bank->target;
 
         aduc702x_set_write_enable(target, 1);
 
@@ -342,7 +343,7 @@ static int aduc702x_write_single(struct flash_bank_s *bank, uint8_t *buffer, uin
        return ERROR_OK;
 }
 
-int aduc702x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+int aduc702x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
 {
        int retval;
 
@@ -366,12 +367,12 @@ int aduc702x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset,
         return retval;
 }
 
-static int aduc702x_probe(struct flash_bank_s *bank)
+static int aduc702x_probe(struct flash_bank *bank)
 {
        return ERROR_OK;
 }
 
-static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size)
+static int aduc702x_info(struct flash_bank *bank, char *buf, int buf_size)
 {
        snprintf(buf, buf_size, "aduc702x flash driver info");
        return ERROR_OK;
@@ -379,7 +380,7 @@ static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size)
 
 /* sets FEEMOD bit 3
  * enable = 1 enables writes & erases, 0 disables them */
-static int aduc702x_set_write_enable(target_t *target, int enable)
+static int aduc702x_set_write_enable(struct target *target, int enable)
 {
         // don't bother to preserve int enable bit here
         target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEMOD, enable ? 8 : 0);
@@ -392,7 +393,7 @@ static int aduc702x_set_write_enable(target_t *target, int enable)
  *
  * this function sleeps 1ms between checks (after the first one),
  * so in some cases may slow things down without a usleep after the first read */
-static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms)
+static int aduc702x_check_flash_completion(struct target* target, unsigned int timeout_ms)
 {
         uint8_t v = 4;