This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Main OpenOCD repository".
The branch, master has been updated
via 30a6e683b85291b8248a2f6189aa292fdf43162d (commit)
from 2bc4dee7e64662c7ca24b83cfa566bcca68cb3b4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 30a6e683b85291b8248a2f6189aa292fdf43162d
Author: Zachary T Welch <zw...@su...>
Date: Sun Dec 6 21:30:21 2009 -0800
add 'flash list', rewrite 'flash banks'
Rename the existing 'flash banks' implementation as 'flash list', and
replace the broken 'flash_banks' TCL wrapper with a new command handler.
Adds documentation for the new 'flash list' command in the user guide.
diff --git a/doc/openocd.texi b/doc/openocd.texi
index b6be87e..3651779 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -3638,12 +3638,18 @@ Use it in board specific configuration files, not interactively.
@comment the REAL name for this command is "ocd_flash_banks"
@comment less confusing would be: "flash list" (like "nand list")
@deffn Command {flash banks}
-Prints a one-line summary of each device declared
-using @command{flash bank}, numbered from zero.
+Prints a one-line summary of each device that was
+declared using @command{flash bank}, numbered from zero.
Note that this is the @emph{plural} form;
the @emph{singular} form is a very different command.
@end deffn
+@deffn Command {flash list}
+Retrieves a list of associative arrays for each device that was
+declared using @command{flash bank}, numbered from zero.
+This returned list can be manipulated easily from within scripts.
+@end deffn
+
@deffn Command {flash probe} num
Identify the flash, or validate the parameters of the configured flash. Operation
depends on the flash type.
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index d417ca0..5ba941b 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -816,14 +816,30 @@ COMMAND_HANDLER(handle_flash_bank_command)
flash_bank_add(c);
return ERROR_OK;
-
}
+COMMAND_HANDLER(handle_flash_banks_command)
+{
+ if (CMD_ARGC != 0)
+ return ERROR_INVALID_ARGUMENTS;
-static int jim_flash_banks(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+ unsigned n = 0;
+ for (struct flash_bank *p = flash_bank_list(); p; p = p->next, n++)
+ {
+ LOG_USER("#%u: %s at 0x%8.8" PRIx32 ", size 0x%8.8" PRIx32 ", "
+ "buswidth %u, chipwidth %u", n,
+ p->driver->name, p->base, p->size,
+ p->bus_width, p->chip_width);
+ }
+ return ERROR_OK;
+}
+
+static int jim_flash_list(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
- if (argc != 1) {
- Jim_WrongNumArgs(interp, 1, argv, "no arguments to flash_banks command");
+ if (argc != 1)
+ {
+ Jim_WrongNumArgs(interp, 1, argv,
+ "no arguments to 'flash list' command");
return JIM_ERR;
}
@@ -890,8 +906,14 @@ static const struct command_registration flash_config_command_handlers[] = {
{
.name = "banks",
.mode = COMMAND_ANY,
- .jim_handler = &jim_flash_banks,
- .help = "return information about the flash banks",
+ .handler = &handle_flash_banks_command,
+ .help = "return readable information about the flash banks",
+ },
+ {
+ .name = "list",
+ .mode = COMMAND_ANY,
+ .jim_handler = &jim_flash_list,
+ .help = "returns a list of details about the flash banks",
},
COMMAND_REGISTRATION_DONE
};
diff --git a/src/flash/startup.tcl b/src/flash/startup.tcl
index 2c335d9..6cb7d8e 100644
--- a/src/flash/startup.tcl
+++ b/src/flash/startup.tcl
@@ -1,16 +1,2 @@
# Defines basic Tcl procs for OpenOCD flash module
-# Show flash in human readable form
-# This is an example of a human readable form of a low level fn
-proc flash_banks {} {
- set i 0
- set result ""
- foreach {a} [ocd_flash banks] {
- if {$i > 0} {
- set result "$result\n"
- }
- set result [format "$result#%d: %s at 0x%08x, size 0x%08x, buswidth %d, chipwidth %d" $i $a(name) $a(base) $a(size) $a(bus_width) $a(chip_width)]
- set i [expr $i+1]
- }
- return $result
-}
-----------------------------------------------------------------------
Summary of changes:
doc/openocd.texi | 10 ++++++++--
src/flash/nor/tcl.c | 34 ++++++++++++++++++++++++++++------
src/flash/startup.tcl | 14 --------------
3 files changed, 36 insertions(+), 22 deletions(-)
hooks/post-receive
--
Main OpenOCD repository
|