This is an automated email from Gerrit. Marek Vasut (marek.va...@gmail.com) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/5147
-- gerrit commit acfb66c2af514b060b8478a355e8c9797f485e1a Author: Marek Vasut <marek.va...@gmail.com> Date: Sat Apr 13 22:44:45 2019 +0200 flash/nor: Allow CFI memory read/write functions be overriden Add possibility to supply custom CFI memory accessors via cfi_info and override the default memory-mapped ones. Change-Id: I1b6bc1db69fc33e8cdef96c41742c40e6d8917e9 Signed-off-by: Marek Vasut <marek.va...@gmail.com> diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c index 3e265dd..5806af1 100644 --- a/src/flash/nor/cfi.c +++ b/src/flash/nor/cfi.c @@ -131,18 +131,25 @@ static inline uint32_t flash_address(struct flash_bank *bank, int sector, uint32 } } -static int cfi_target_write_memory(struct flash_bank *bank, target_addr_t addr, - uint32_t size, uint32_t count, - const uint8_t *buffer) +int cfi_target_write_memory(struct flash_bank *bank, target_addr_t addr, + uint32_t size, uint32_t count, + const uint8_t *buffer) { - return target_write_memory(bank->target, addr, size, count, buffer); + struct cfi_flash_bank *cfi_info = bank->driver_priv; + if (cfi_info->write_mem) + return cfi_info->write_mem(bank, addr, size, count, buffer); + else + return target_write_memory(bank->target, addr, size, count, buffer); } -static int cfi_target_read_memory(struct flash_bank *bank, target_addr_t addr, - uint32_t size, uint32_t count, - uint8_t *buffer) +int cfi_target_read_memory(struct flash_bank *bank, target_addr_t addr, + uint32_t size, uint32_t count, uint8_t *buffer) { - return target_read_memory(bank->target, addr, size, count, buffer); + struct cfi_flash_bank *cfi_info = bank->driver_priv; + if (cfi_info->read_mem) + return cfi_info->read_mem(bank, addr, size, count, buffer); + else + return target_read_memory(bank->target, addr, size, count, buffer); } static void cfi_command(struct flash_bank *bank, uint8_t cmd, uint8_t *cmd_buf) diff --git a/src/flash/nor/cfi.h b/src/flash/nor/cfi.h index ed858a9..e0fece0 100644 --- a/src/flash/nor/cfi.h +++ b/src/flash/nor/cfi.h @@ -73,6 +73,13 @@ struct cfi_flash_bank { unsigned buf_write_timeout; unsigned block_erase_timeout; unsigned chip_erase_timeout; + + /* memory accessors */ + int (*write_mem)(struct flash_bank *bank, target_addr_t addr, + uint32_t size, uint32_t count, + const uint8_t *buffer); + int (*read_mem)(struct flash_bank *bank, target_addr_t addr, + uint32_t size, uint32_t count, uint8_t *buffer); }; /* Intel primary extended query table -- _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel