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
