aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2011-12-28 13:10:52 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2012-01-04 17:15:03 +0000
commitae7ab8b09d1c69559284ad9d9e3c17345d2496dd (patch)
treef6c3ad3fcf3f6dcda3d87c52e956807794484277 /src
parent4668bd264cfe64c3e3ddd0f75cb5bf2e5e85f717 (diff)
flash: introduce .usage field for nand and nor flash driver structure
Change-Id: I47e7ec8fa8c70d2addc3aa52d7c97e9e1e7bb662 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/301 Tested-by: jenkins Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/flash/nand/driver.h3
-rw-r--r--src/flash/nand/tcl.c13
-rw-r--r--src/flash/nor/driver.h5
3 files changed, 15 insertions, 6 deletions
diff --git a/src/flash/nand/driver.h b/src/flash/nand/driver.h
index 4edce9fa..04ec64fc 100644
--- a/src/flash/nand/driver.h
+++ b/src/flash/nand/driver.h
@@ -37,6 +37,9 @@ struct nand_flash_controller
/** Driver name that is used to select it from configuration files. */
const char *name;
+ /** Usage of flash command registration. */
+ const char *usage;
+
const struct command_registration *commands;
/** NAND device command called when driver is instantiated during configuration. */
diff --git a/src/flash/nand/tcl.c b/src/flash/nand/tcl.c
index 5fba1bcc..c6ea3f3b 100644
--- a/src/flash/nand/tcl.c
+++ b/src/flash/nand/tcl.c
@@ -544,8 +544,7 @@ static COMMAND_HELPER(create_nand_device, const char *bank_name,
if (CMD_ARGC < 2)
{
- LOG_ERROR("missing target");
- return ERROR_COMMAND_ARGUMENT_INVALID;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
target = get_target(CMD_ARGV[1]);
if (!target) {
@@ -582,9 +581,12 @@ static COMMAND_HELPER(create_nand_device, const char *bank_name,
retval = CALL_COMMAND_HANDLER(controller->nand_device_command, c);
if (ERROR_OK != retval)
{
- LOG_ERROR("'%s' driver rejected nand flash", controller->name);
+ assert(controller->usage != NULL);
+ LOG_ERROR("'%s' driver rejected nand flash. Usage: %s",
+ controller->name,
+ controller->usage);
free(c);
- return ERROR_OK;
+ return retval;
}
nand_device_add(c);
@@ -596,8 +598,7 @@ COMMAND_HANDLER(handle_nand_device_command)
{
if (CMD_ARGC < 2)
{
- LOG_ERROR("incomplete nand device configuration");
- return ERROR_FLASH_BANK_INVALID;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
// save name and increment (for compatibility) with drivers
diff --git a/src/flash/nor/driver.h b/src/flash/nor/driver.h
index afd05285..3b8e31a0 100644
--- a/src/flash/nor/driver.h
+++ b/src/flash/nor/driver.h
@@ -57,6 +57,11 @@ struct flash_driver
const char *name;
/**
+ * Gives a human-readable description of arguments.
+ */
+ const char *usage;
+
+ /**
* An array of driver-specific commands to register. When called
* during the "flash bank" command, the driver can register addition
* commands to support new flash chip functions.