* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+
#ifndef FLASH_NOR_CORE_H
#define FLASH_NOR_CORE_H
* within a flash bank. A single bank typically consists of multiple
* sectors, each of which can be erased and protected independently.
*/
-struct flash_sector
-{
- /// Bus offset from start of the flash chip (in bytes).
+struct flash_sector {
+ /** Bus offset from start of the flash chip (in bytes). */
uint32_t offset;
- /// Number of bytes in this flash sector.
+ /** Number of bytes in this flash sector. */
uint32_t size;
/**
* Indication of erasure status: 0 = not erased, 1 = erased,
* may use the @c driver_priv member to store additional data on a
* per-bank basis, if required.
*/
-struct flash_bank
-{
- char *name;
+struct flash_bank {
+ const char *name;
struct target *target; /**< Target to which this bank belongs. */
* some non-zero value during "probe()" or "auto_probe()".
*/
int num_sectors;
- /// Array of sectors, allocated and initilized by the flash driver
+ /** Array of sectors, allocated and initilized by the flash driver */
struct flash_sector *sectors;
struct flash_bank *next; /**< The next flash bank on this chip */
};
-/// Registers the 'flash' subsystem commands
+/** Registers the 'flash' subsystem commands */
int flash_register_commands(struct command_context *cmd_ctx);
/**
* This routine must be called when the system may modify the status.
*/
void flash_set_dirty(void);
-/// @returns The number of flash banks currently defined.
+/** @returns The number of flash banks currently defined. */
int flash_get_bank_count(void);
/**
* Provides default read implementation for flash memory.
* bank number: when two str9x banks are defined, then 'str9x.1' refers
* to the second.
*/
-struct flash_bank *get_flash_bank_by_name(const char *name);
+int get_flash_bank_by_name(const char *name, struct flash_bank **bank_result);
/**
* Returns the flash bank specified by @a name, which matches the
* driver name and a suffix (option) specify the driver-specific
* Returns the flash bank located at a specified address.
* @param target The target, presumed to contain one or more banks.
* @param addr An address that is within the range of the bank.
+ * @param check return ERROR_OK and result_bank NULL if the bank does not exist
* @returns The struct flash_bank located at @a addr, or NULL.
*/
-struct flash_bank *get_flash_bank_by_addr(struct target *target, uint32_t addr);
+int get_flash_bank_by_addr(struct target *target, uint32_t addr, bool check,
+ struct flash_bank **result_bank);
-#endif // FLASH_NOR_CORE_H
+#endif /* FLASH_NOR_CORE_H */