This is an automated email from Gerrit.

Andrey Smirnov ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/2093

-- gerrit

commit e1d59259fbe9368e4b0118975fd1e8a15ab8008a
Author: Andrey Smirnov <[email protected]>
Date:   Fri Apr 4 07:41:58 2014 -0700

    flash/nor/tcl.c: Do not double probe banks
    
    Previous to this version the code of handle_flash_probe_command would
    probe a bank twice: first time by auto-probe through a call to
    flash_command_get_bank and second time by calling the probe function
    directly. This change adds a flash_command_get_bank_maybe_probe wich
    is a more generic version of the flash_command_get_bank, that would
    allow commands to decide whether auto-probing should be performed or
    not.
    
    Change-Id: If150ca9c169ffe05e8c7eba36338d333360811e3
    Signed-off-by: Andrey Smirnov <[email protected]>

diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index 32a666c..d2020e2 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -31,11 +31,18 @@
  * Implements Tcl commands used to access NOR flash facilities.
  */
 
-COMMAND_HELPER(flash_command_get_bank, unsigned name_index,
-       struct flash_bank **bank)
+COMMAND_HELPER(flash_command_get_bank_maybe_probe, unsigned name_index,
+              struct flash_bank **bank, bool do_probe)
 {
        const char *name = CMD_ARGV[name_index];
-       int retval = get_flash_bank_by_name(name, bank);
+       int retval;
+       if (do_probe) {
+               retval = get_flash_bank_by_name(name, bank);
+       } else {
+               *bank  = get_flash_bank_by_name_noprobe(name);
+               retval = ERROR_OK;
+       }
+
        if (retval != ERROR_OK)
                return retval;
        if (*bank)
@@ -44,7 +51,20 @@ COMMAND_HELPER(flash_command_get_bank, unsigned name_index,
        unsigned bank_num;
        COMMAND_PARSE_NUMBER(uint, name, bank_num);
 
-       return get_flash_bank_by_num(bank_num, bank);
+       if (do_probe) {
+               return get_flash_bank_by_num(bank_num, bank);
+       } else {
+               *bank  = get_flash_bank_by_num_noprobe(bank_num);
+               retval = (bank) ? ERROR_OK : ERROR_FAIL;
+               return retval;
+       }
+}
+
+COMMAND_HELPER(flash_command_get_bank, unsigned name_index,
+       struct flash_bank **bank)
+{
+       return CALL_COMMAND_HANDLER(flash_command_get_bank_maybe_probe,
+                                   name_index, bank, true);
 }
 
 COMMAND_HANDLER(handle_flash_info_command)
@@ -121,7 +141,7 @@ COMMAND_HANDLER(handle_flash_probe_command)
        if (CMD_ARGC != 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &p);
+       retval = CALL_COMMAND_HANDLER(flash_command_get_bank_maybe_probe, 0, 
&p, false);
        if (retval != ERROR_OK)
                return retval;
 

-- 

------------------------------------------------------------------------------
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to