From 45328ea12498e857262ae571710d01cb38302a9f Mon Sep 17 00:00:00 2001 From: Gareth McMullin Date: Thu, 26 Mar 2015 22:20:47 -0700 Subject: Add buffering support for flash drivers. Some devices can get a significant boost in performance by writing to flash memories one page at a time. Generic function to do this are provided at the target layer and may be used by flash drivers. --- src/include/target.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/include') diff --git a/src/include/target.h b/src/include/target.h index f49bc58..96b5506 100644 --- a/src/include/target.h +++ b/src/include/target.h @@ -133,6 +133,12 @@ struct target_flash { struct target_flash *next; int align; uint8_t erased; + + /* For buffered flash */ + size_t buf_size; + flash_write_func write_buf; + uint32_t buf_addr; + void *buf; }; struct target_s { @@ -215,6 +221,9 @@ void target_add_commands(target *t, const struct command_s *cmds, const char *na void target_add_ram(target *t, uint32_t start, uint32_t len); void target_add_flash(target *t, struct target_flash *f); const char *target_mem_map(target *t); +int target_flash_write_buffered(struct target_flash *f, + uint32_t dest, const void *src, size_t len); +int target_flash_done_buffered(struct target_flash *f); static inline uint32_t target_mem_read32(target *t, uint32_t addr) { -- cgit v1.2.3