flash/nor/stm32lx: use 0 base to autodetect second bank location
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>__archive__
parent
97c96ac13f
commit
873774992d
|
@ -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:
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue