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>
__archive__
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 flash bank $_FLASHNAME stellaris 0 0 0 0 $_TARGETNAME
@end example @end example
@deffn Command {stellaris recover bank_id} @deffn Command {stellaris recover}
Performs the @emph{Recovering a "Locked" Device} procedure to Performs the @emph{Recovering a "Locked" Device} procedure to restore
restore the flash specified by @var{bank_id} and its associated the flash and its associated nonvolatile registers to their factory
nonvolatile registers to their factory default values (erased). default values (erased). This is the only way to remove flash
This is the only way to remove flash protection or re-enable protection or re-enable debugging if that capability has been
debugging if that capability has been disabled. disabled.
Note that the final "power cycle the chip" step in this procedure Note that the final "power cycle the chip" step in this procedure
must be performed by hand, since OpenOCD can't do it. 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; struct flash_bank *bank;
int retval; int retval;
if (CMD_ARGC < 1) if (CMD_ARGC != 0)
return ERROR_COMMAND_SYNTAX_ERROR; return ERROR_COMMAND_SYNTAX_ERROR;
retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank); bank = get_flash_bank_by_num_noprobe(0);
if (retval != ERROR_OK) if (!bank)
return retval; return ERROR_FAIL;
/* REVISIT ... it may be worth sanity checking that the AP is /* REVISIT ... it may be worth sanity checking that the AP is
* inactive before we start. ARM documents that switching a DP's * 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", .name = "recover",
.handler = stellaris_handle_recover_command, .handler = stellaris_handle_recover_command,
.mode = COMMAND_EXEC, .mode = COMMAND_EXEC,
.usage = "bank_id", .usage = "",
.help = "recover (and erase) locked device", .help = "recover (and erase) locked device",
}, },
COMMAND_REGISTRATION_DONE COMMAND_REGISTRATION_DONE