This is an automated email from Gerrit.

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

-- gerrit

commit 20c1eae07c6181c3f59804e875b11ac57a60ccf9
Author: Paul Fertser <[email protected]>
Date:   Sat Jan 24 13:57:58 2015 +0300

    flash/nor/stm32lx: use 0 base to autodetect second bank location
    
    Change-Id: I3c296b3e276fcd4d92e4180fc0d2133eebfcc240
    Signed-off-by: Paul Fertser <[email protected]>

diff --git a/doc/openocd.texi b/doc/openocd.texi
index a97ad85..18e18b9 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -5551,16 +5551,18 @@ The @var{num} parameter is a value shown by 
@command{flash banks}.
 
 @deffn {Flash Driver} stm32lx
 All members of the STM32L microcontroller families from ST Microelectronics
-include internal flash and use ARM Cortex-M3 cores.
+include internal flash and use ARM Cortex-M3 and Cortex-M0+ cores.
 The driver automatically recognizes a number of these chips using
 the chip identification register, and autoconfigures itself.
 
 Note that some devices have been found that have a flash size register that 
contains
 an invalid value, to workaround this issue you can override the probed value 
used by
-the flash driver.
+the flash driver. If you use 0 as the bank base address, it tells the
+driver to autodetect the bank location assuming you're configuring the
+second bank.
 
 @example
-flash bank $_FLASHNAME stm32lx 0 0x20000 0 0 $_TARGETNAME
+flash bank $_FLASHNAME stm32lx 0x08000000 0x20000 0 0 $_TARGETNAME
 @end example
 
 Some stm32lx-specific commands are defined:
diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c
index 6858d5a..db3897b 100644
--- a/src/flash/nor/stm32lx.c
+++ b/src/flash/nor/stm32lx.c
@@ -715,12 +715,12 @@ static int stm32lx_probe(struct flash_bank *bank)
                 */
                second_bank_base = base_address +
                        stm32lx_info->part_info->first_bank_size_kb * 1024;
-               if (bank->base == second_bank_base) {
+               if (bank->base == second_bank_base || !bank->base) {
                        /* This is the second bank  */
                        base_address = second_bank_base;
                        flash_size_in_kb = flash_size_in_kb -
                                stm32lx_info->part_info->first_bank_size_kb;
-               } else if (bank->base == 0 || bank->base == base_address) {
+               } else if (bank->base == base_address) {
                        /* This is the first bank */
                        flash_size_in_kb = 
stm32lx_info->part_info->first_bank_size_kb;
                } else {
diff --git a/tcl/target/stm32l1x_dual_bank.cfg 
b/tcl/target/stm32l1x_dual_bank.cfg
index 7420b31..a3f7413 100644
--- a/tcl/target/stm32l1x_dual_bank.cfg
+++ b/tcl/target/stm32l1x_dual_bank.cfg
@@ -5,4 +5,4 @@ source [find target/stm32l1.cfg]
 
 # Add the second flash bank.
 set _FLASHNAME $_CHIPNAME.flash1
-flash bank $_FLASHNAME stm32lx 0x8030000 0 0 0 $_TARGETNAME
+flash bank $_FLASHNAME stm32lx 0 0 0 0 $_TARGETNAME

-- 

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to