]> git.sur5r.net Git - openocd/blobdiff - src/flash/flash.h
More robust handling of unknown target state for step/continue packet.
[openocd] / src / flash / flash.h
index b90b64ebe2654d5904171e2a8858d768ba3a797c..e2f788554f066e31cd5e9b46146adbbd86e7f066 100644 (file)
@@ -40,13 +40,21 @@ typedef struct flash_driver_s
        char *name;
        int (*register_commands)(struct command_context_s *cmd_ctx);
        int (*flash_bank_command)(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
+
+       /* use flash_driver_erase() wrapper to invoke */
        int (*erase)(struct flash_bank_s *bank, int first, int last);
+
+       /* use flash_driver_protect() wrapper to invoke */
        int (*protect)(struct flash_bank_s *bank, int set, int first, int last);
+
+       /* use the flash_driver_write() wrapper to invoke. */
        int (*write)(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
+
        int (*probe)(struct flash_bank_s *bank);
        int (*erase_check)(struct flash_bank_s *bank);
        int (*protect_check)(struct flash_bank_s *bank);
        int (*info)(struct flash_bank_s *bank, char *buf, int buf_size);
+       int (*auto_probe)(struct flash_bank_s *bank);
 } flash_driver_t;
 
 typedef struct flash_bank_s
@@ -63,20 +71,17 @@ typedef struct flash_bank_s
        struct flash_bank_s *next;
 } flash_bank_t;
 
-enum flash_image_op
-{
-       flash_image_op_write = 0,
-  flash_image_op_verify,
-  flash_image_op_erase
-};
-
 extern int flash_register_commands(struct command_context_s *cmd_ctx);
-extern int flash_init(struct command_context_s *cmd_ctx);
+extern int flash_init_drivers(struct command_context_s *cmd_ctx);
 
-extern int flash_erase(target_t *target, u32 addr, u32 length);
-extern int flash_image_operation(target_t *target, image_t *image, u32 *written, char **error_str, int *failed, enum flash_image_op op);
+extern int flash_erase_address_range(target_t *target, u32 addr, u32 length);
+extern int flash_write(target_t *target, image_t *image, u32 *written, int erase);
+extern void flash_set_dirty(void);
+extern int flash_get_bank_count();
+int default_flash_blank_check(struct flash_bank_s *bank);
 
 extern flash_bank_t *get_flash_bank_by_num(int num);
+extern flash_bank_t *get_flash_bank_by_num_noprobe(int num);
 extern flash_bank_t *get_flash_bank_by_addr(target_t *target, u32 addr);
 
 #define                ERROR_FLASH_BANK_INVALID                (-900)