]> git.sur5r.net Git - openocd/commitdiff
flash/nor/stellaris: allow to recover a locked device that can't be examined
authorPaul Fertser <fercerpav@gmail.com>
Sat, 21 Feb 2015 07:55:41 +0000 (10:55 +0300)
committerPaul Fertser <fercerpav@gmail.com>
Mon, 9 Mar 2015 08:58:16 +0000 (08:58 +0000)
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>
doc/openocd.texi
src/flash/nor/stellaris.c

index 9a697e1d4713a62e8cbebd922a0ff316fe1000f7..40864373c1e10271065bb02cbb3c59731548861c 100644 (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.
index 664b6d03d24dd744d649c78b1ffc6eddd47212df..27b66325a363d48be00310d428cf6189b94adade 100644 (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