flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / src / flash / nor / imp.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net>             *
5  ***************************************************************************/
6
7 #ifndef OPENOCD_FLASH_NOR_IMP_H
8 #define OPENOCD_FLASH_NOR_IMP_H
9
10 #include <stdbool.h>
11
12 /* this is an internal header */
13 #include "core.h"
14 #include "driver.h"
15 /* almost all drivers will need this file */
16 #include <target/target.h>
17
18 /**
19  * Adds a new NOR bank to the global list of banks.
20  * @param bank The bank that should be added.
21  */
22 void flash_bank_add(struct flash_bank *bank);
23
24 /**
25  * @return The first bank in the global list.
26  */
27 struct flash_bank *flash_bank_list(void);
28
29 int flash_driver_erase(struct flash_bank *bank, unsigned int first,
30                 unsigned int last);
31 int flash_driver_protect(struct flash_bank *bank, int set, unsigned int first,
32                 unsigned int last);
33 int flash_driver_write(struct flash_bank *bank,
34                 const uint8_t *buffer, uint32_t offset, uint32_t count);
35 int flash_driver_read(struct flash_bank *bank,
36                 uint8_t *buffer, uint32_t offset, uint32_t count);
37 int flash_driver_verify(struct flash_bank *bank,
38                 const uint8_t *buffer, uint32_t offset, uint32_t count);
39
40 /* write (optional verify) an image to flash memory of the given target */
41 int flash_write_unlock_verify(struct target *target, struct image *image,
42                 uint32_t *written, bool erase, bool unlock, bool write, bool verify);
43
44 #endif /* OPENOCD_FLASH_NOR_IMP_H */