diff --git a/doc/openocd.texi b/doc/openocd.texi index 9a697e1d4..40864373c 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 664b6d03d..27b66325a 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