flash/nor/stm32lx: use 0 base to autodetect second bank location 03/2503/2
authorPaul Fertser <fercerpav@gmail.com>
Sat, 24 Jan 2015 10:57:58 +0000 (13:57 +0300)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 4 Feb 2015 22:02:45 +0000 (22:02 +0000)
Change-Id: I3c296b3e276fcd4d92e4180fc0d2133eebfcc240
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2503
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
doc/openocd.texi
src/flash/nor/stm32lx.c
tcl/target/stm32l1x_dual_bank.cfg

index a97ad85679034fa6f46cbf4cd179d763c4dbe214..18e18b98364c91e460c3208b89f76e44fd1f4b01 100644 (file)
@@ -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
 
 @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 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
 
 @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:
 @end example
 
 Some stm32lx-specific commands are defined:
index 6858d5afa2e7da83d224c3d07a3ed128be1b72ce..db3897ba6609cf987a3cb44f7606ad3c1152641b 100644 (file)
@@ -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;
                 */
                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;
                        /* 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 {
                        /* This is the first bank */
                        flash_size_in_kb = stm32lx_info->part_info->first_bank_size_kb;
                } else {
index 7420b315e0e270d1a3f58c7beb905efbcc02f2d2..a3f7413a0c6fa9f9bd931245dd0e196ae77a84a9 100644 (file)
@@ -5,4 +5,4 @@ source [find target/stm32l1.cfg]
 
 # Add the second flash bank.
 set _FLASHNAME $_CHIPNAME.flash1
 
 # 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

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)