X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fflash%2Fflash.h;h=05c4b2c48f70b81c2b4d862e0b3982c348131dd8;hb=2689f58f2a0afa296a29ab301a4c1665b914caab;hp=c957d03e2b2f113356e20d663ae62579d5985983;hpb=6d1d58a1fc3dfd60e9cac89460b5a6e438d11efa;p=openocd
diff --git a/src/flash/flash.h b/src/flash/flash.h
index c957d03e..05c4b2c4 100644
--- a/src/flash/flash.h
+++ b/src/flash/flash.h
@@ -2,7 +2,7 @@
* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
- * Copyright (C) 2007,2008 Øyvind Harboe *
+ * Copyright (C) 2007,2008 Ãyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* Copyright (C) 2008 by Spencer Oliver *
@@ -76,18 +76,18 @@ struct flash_bank_s;
* that matches @c DRIVERNAME.
*
* The flash subsystem calls some of the other drivers routines a using
- * corresponding static flash_driver_ < i>callback ()
+ * corresponding static flash_driver_callback()
* routine in flash.c.
*/
typedef struct flash_driver_s
{
- /**
+ /**
* Gives a human-readable name of this flash driver,
* This field is used to select and initialize the driver.
*/
char *name;
- /**
+ /**
* Registers driver-specific commands. When called (during the
* "flash bank" command), the driver may register addition
* commands to support new flash chip functions.
@@ -96,12 +96,12 @@ typedef struct flash_driver_s
*/
int (*register_commands)(struct command_context_s *cmd_ctx);
- /**
+ /**
* Finish the "flash bank" command for @a bank. The
* @a bank parameter will have been filled in by the core flash
* layer when this routine is called, and the driver can store
* additional information in its flash_bank_t::driver_priv field.
- *
+ *
* @param cmd_ctx - the command context
* @param cmd - the command, in this case 'flash'
* @param args - parameters, see below
@@ -112,7 +112,7 @@ typedef struct flash_driver_s
* @code
* args[0] = bank
* args[1] = drivername {name above}
- * args[2] = baseaddress
+ * args[2] = baseaddress
* args[3] = lengthbytes
* args[4] = chip_width_in bytes
* args[5] = bus_width_bytes
@@ -129,7 +129,7 @@ typedef struct flash_driver_s
*/
int (*flash_bank_command)(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
- /**
+ /**
* Bank/sector erase routine (target-specific). When
* called, the flash driver should erase the specified sectors
* using whatever means are at its disposal.
@@ -141,7 +141,7 @@ typedef struct flash_driver_s
*/
int (*erase)(struct flash_bank_s *bank, int first, int last);
- /**
+ /**
* Bank/sector protection routine (target-specific).
* When called, the driver should disable 'flash write' bits (or
* enable 'erase protection' bits) for the given @a bank and @a
@@ -155,7 +155,7 @@ typedef struct flash_driver_s
*/
int (*protect)(struct flash_bank_s *bank, int set, int first, int last);
- /**
+ /**
* Program data into the flash. Note CPU address will be
* "bank->base + offset", while the physical address is
* dependent upon current target MMU mappings.
@@ -168,7 +168,7 @@ typedef struct flash_driver_s
*/
int (*write)(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count);
- /**
+ /**
* Probe to determine what kind of flash is present.
* This is invoked by the "probe" script command.
*
@@ -176,8 +176,8 @@ typedef struct flash_driver_s
* @returns ERROR_OK if successful; otherwise, an error code.
*/
int (*probe)(struct flash_bank_s *bank);
-
- /**
+
+ /**
* Check the erasure status of a flash bank.
* When called, the driver routine must perform the required
* checks and then set the @c flash_sector_s::is_erased field
@@ -209,7 +209,7 @@ typedef struct flash_driver_s
* @param char - where to put the text for the human to read
* @param buf_size - the size of the human buffer.
* @returns ERROR_OK if successful; otherwise, an error code.
- */
+ */
int (*info)(struct flash_bank_s *bank, char *buf, int buf_size);
/**
@@ -228,7 +228,7 @@ typedef struct flash_driver_s
int (*auto_probe)(struct flash_bank_s *bank);
} flash_driver_t;
-/**
+/**
* Provides details of a flash bank, available either on-chip or through
* a major interface.
*
@@ -276,7 +276,7 @@ extern int flash_init_drivers(struct command_context_s *cmd_ctx);
extern int flash_erase_address_range(struct target_s *target, uint32_t addr, uint32_t length);
/**
* Writes @a image into the @a target flash. The @a written parameter
- * will contain the
+ * will contain the
* @param target The target with the flash to be programmed.
* @param image The image that will be programmed to flash.
* @param written On return, contains the number of bytes written.
@@ -313,6 +313,16 @@ extern int default_flash_mem_blank_check(struct flash_bank_s *bank);
* @returns A flash_bank_t for flash bank @a num, or NULL
*/
extern flash_bank_t *get_flash_bank_by_num(int num);
+/**
+ * Retreives @a bank from a command argument, reporting errors parsing
+ * the bank identifier or retreiving the specified bank.
+ * @param cmd_ctx The command context for reporting errors.
+ * @param str The string containing the bank identifier.
+ * @param bank On output, contians a pointer to the bank or NULL.
+ * @returns ERROR_OK on success, or an error indicating the problem.
+ */
+int flash_command_get_bank_by_num(
+ struct command_context_s *cmd_ctx, char *str, flash_bank_t **bank);
/**
* Returns the flash bank like get_flash_bank_by_num(), without probing.
* @param num The flash bank number.