diff options
author | Paul Fertser <fercerpav@gmail.com> | 2015-02-21 10:55:41 +0300 |
---|---|---|
committer | Paul Fertser <fercerpav@gmail.com> | 2015-03-09 08:58:16 +0000 |
commit | 571db89aa13554d5c5e38e88233927d3149edc3a (patch) | |
tree | 76b5961b8367ca52ed4384ed4b5987f34c21764c | |
parent | 5aa08f785101b0eb72eabf61fac537fb0e91379f (diff) |
flash/nor/stellaris: allow to recover a locked device that can't be examined
Change-Id: I28536184053e2d1ba906620e728f7fad6ba39f0a
Reported-by: Ed Beroset <beroset@mindspring.com>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2552
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-by: Ed Beroset <beroset@ieee.org>
-rw-r--r-- | doc/openocd.texi | 12 | ||||
-rw-r--r-- | src/flash/nor/stellaris.c | 10 |
2 files changed, 11 insertions, 11 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index 9a697e1d..40864373 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -5480,12 +5480,12 @@ standard @command{flash erase_address} command.} flash bank $_FLASHNAME stellaris 0 0 0 0 $_TARGETNAME @end example -@deffn Command {stellaris recover bank_id} -Performs the @emph{Recovering a "Locked" Device} procedure to -restore the flash specified by @var{bank_id} and its associated -nonvolatile registers to their factory default values (erased). -This is the only way to remove flash protection or re-enable -debugging if that capability has been disabled. +@deffn Command {stellaris recover} +Performs the @emph{Recovering a "Locked" Device} procedure to restore +the flash and its associated nonvolatile registers to their factory +default values (erased). This is the only way to remove flash +protection or re-enable debugging if that capability has been +disabled. Note that the final "power cycle the chip" step in this procedure must be performed by hand, since OpenOCD can't do it. diff --git a/src/flash/nor/stellaris.c b/src/flash/nor/stellaris.c index 664b6d03..27b66325 100644 --- a/src/flash/nor/stellaris.c +++ b/src/flash/nor/stellaris.c @@ -1359,12 +1359,12 @@ COMMAND_HANDLER(stellaris_handle_recover_command) struct flash_bank *bank; int retval; - if (CMD_ARGC < 1) + if (CMD_ARGC != 0) return ERROR_COMMAND_SYNTAX_ERROR; - retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank); - if (retval != ERROR_OK) - return retval; + bank = get_flash_bank_by_num_noprobe(0); + if (!bank) + return ERROR_FAIL; /* REVISIT ... it may be worth sanity checking that the AP is * inactive before we start. ARM documents that switching a DP's @@ -1425,7 +1425,7 @@ static const struct command_registration stellaris_exec_command_handlers[] = { .name = "recover", .handler = stellaris_handle_recover_command, .mode = COMMAND_EXEC, - .usage = "bank_id", + .usage = "", .help = "recover (and erase) locked device", }, COMMAND_REGISTRATION_DONE |