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>
This commit is contained in:
Paul Fertser 2015-02-21 10:55:41 +03:00
parent 5aa08f7851
commit 571db89aa1
2 changed files with 11 additions and 11 deletions

View File

@ -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.

View File

@ -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