aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-17 14:04:25 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-19 13:39:41 -0800
commitfd654c8a3e3dbd5ab97eb6b3834ee462dd509a66 (patch)
treeca2db5f1ab73368f14ee93b19f64e297770c8bad
parentdd44ae18b49f6cb54a4c361e9fab70f4d0fafeec (diff)
add support for naming flash banks
Requires users to name their flash banks, allowing them to be used instead of bank numbers in script commands.
-rw-r--r--src/flash/flash.c10
-rw-r--r--src/flash/flash.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/src/flash/flash.c b/src/flash/flash.c
index e93aa636..ef6c6da0 100644
--- a/src/flash/flash.c
+++ b/src/flash/flash.c
@@ -189,6 +189,8 @@ struct flash_bank *get_flash_bank_by_name(const char *name)
struct flash_bank *bank;
for (bank = flash_banks; NULL != bank; bank = bank->next)
{
+ if (strcmp(bank->name, name) == 0)
+ return bank;
if (!flash_driver_name_matches(bank->driver->name, name))
continue;
if (++found < requested)
@@ -239,12 +241,15 @@ COMMAND_HELPER(flash_command_get_bank, unsigned name_index,
COMMAND_HANDLER(handle_flash_bank_command)
{
- if (CMD_ARGC < 6)
+ if (CMD_ARGC < 7)
{
- LOG_ERROR("usage: flash bank <driver> "
+ LOG_ERROR("usage: flash bank <name> <driver> "
"<base> <size> <chip_width> <bus_width>");
return ERROR_COMMAND_SYNTAX_ERROR;
}
+ // save bank name and advance arguments for compatibility
+ const char *bank_name = *CMD_ARGV++;
+ CMD_ARGC--;
struct target *target;
if ((target = get_target(CMD_ARGV[5])) == NULL)
@@ -269,6 +274,7 @@ COMMAND_HANDLER(handle_flash_bank_command)
}
c = malloc(sizeof(struct flash_bank));
+ c->name = strdup(bank_name);
c->target = target;
c->driver = flash_drivers[i];
c->driver_priv = NULL;
diff --git a/src/flash/flash.h b/src/flash/flash.h
index 1235a419..ac1600e4 100644
--- a/src/flash/flash.h
+++ b/src/flash/flash.h
@@ -240,6 +240,8 @@ struct flash_driver
*/
struct flash_bank
{
+ char *name;
+
struct target *target; /**< Target to which this bank belongs. */
struct flash_driver *driver; /**< Driver for this bank. */