]> git.sur5r.net Git - openocd/blobdiff - src/flash/nor/avrf.c
NAND/MX3: remove private "target" copy
[openocd] / src / flash / nor / avrf.c
index 5b40ad73d80a78541e98360f898b3a34f584b747..5a2482e4ecedf2f1ad25275357d55ab286530cf9 100644 (file)
@@ -22,7 +22,6 @@
 #endif
 
 #include "imp.h"
-#include "avrf.h"
 #include <target/avrt.h>
 
 
 #define AVR_JTAG_REG_ProgrammingCommand_Len                    15
 #define AVR_JTAG_REG_FlashDataByte_Len                         16
 
-struct avrf_type avft_chips_info[] =
+struct avrf_type
+{
+       char name[15];
+       uint16_t chip_id;
+       int flash_page_size;
+       int flash_page_num;
+       int eeprom_page_size;
+       int eeprom_page_num;
+};
+
+struct avrf_flash_bank
+{
+       int ppage_size;
+       int probed;
+};
+
+static struct avrf_type avft_chips_info[] =
 {
 /*     name, chip_id,  flash_page_size, flash_page_num,
  *                     eeprom_page_size, eeprom_page_num
@@ -59,19 +74,6 @@ struct avrf_type avft_chips_info[] =
        {"at90can128",  0x9781, 256, 512, 8, 512},
 };
 
-int avr_jtag_sendinstr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out);
-int avr_jtag_senddat(struct jtag_tap *tap, uint32_t *dr_in, uint32_t dr_out, int len);
-
-int mcu_write_ir(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int ir_len, int rti);
-int mcu_write_dr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t *ir_out, int dr_len, int rti);
-int mcu_write_ir_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int ir_len, int rti);
-int mcu_write_dr_u8(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out, int dr_len, int rti);
-int mcu_write_ir_u16(struct jtag_tap *tap, uint16_t *ir_in, uint16_t ir_out, int ir_len, int rti);
-int mcu_write_dr_u16(struct jtag_tap *tap, uint16_t *ir_in, uint16_t ir_out, int dr_len, int rti);
-int mcu_write_ir_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int ir_len, int rti);
-int mcu_write_dr_u32(struct jtag_tap *tap, uint32_t *ir_in, uint32_t ir_out, int dr_len, int rti);
-int mcu_execute_queue(void);
-
 /* avr program functions */
 static int avr_jtag_reset(struct avr_common *avr, uint32_t reset)
 {
@@ -324,6 +326,12 @@ static int avrf_probe(struct flash_bank *bank)
 
        if (avr_info != NULL)
        {
+               if (bank->sectors)
+               {
+                       free(bank->sectors);
+                       bank->sectors = NULL;
+               }
+
                // chip found
                bank->base = 0x00000000;
                bank->size = (avr_info->flash_page_size * avr_info->flash_page_num);
@@ -497,6 +505,7 @@ struct flash_driver avr_flash = {
        .erase = avrf_erase,
        .protect = avrf_protect,
        .write = avrf_write,
+       .read = default_flash_read,
        .probe = avrf_probe,
        .auto_probe = avrf_auto_probe,
        .erase_check = default_flash_mem_blank_check,