flash/nor/stm32f2x: Support value line chips with trimmed flash
authorKeir Fraser <keir.xen@gmail.com>
Tue, 3 Dec 2019 08:17:56 +0000 (08:17 +0000)
committerTomas Vanek <vanekt@fbl.cz>
Fri, 3 Jan 2020 10:28:45 +0000 (10:28 +0000)
commit9f1529da4fcc7d1e508ab9ea4dc915800d68e730
tree5a485b7484b6d50b18dddf34ef4609f50db7f21a
parentbe2d25efcc0132e02c76c304487a8759ca587b0c
flash/nor/stm32f2x: Support value line chips with trimmed flash

The current code assumes an STM32's flash bank is laid-out in either of
two configurations:
- 4 x 16kB + 1 x 64kB + n x 128kB
- 4 x 32kB + 1 x 128kB + n x 256kB

This is quite ad-hoc but works fine in practice, as long as there are at
least 5 sectors (if n=0). Unfortunately, some newer STM32s are shipping
with only 64 kB of flash (4 x 16kB sectors).

This patch still assumes the same sector layout, but only keeps adding
sectors to the bank if the bank's capacity has not been reached. This
prevents openocd from crashing on some newer STM32s.

Change-Id: If00e5d7a328d11b399babc0bb2111e3ad8a3217e
Signed-off-by: Romain Goyet <romain.goyet@numworks.com>
Signed-off-by: Keir Fraser <keir.xen@gmail.com>
Reviewed-on: http://openocd.zylin.com/4926
Tested-by: jenkins
Reviewed-by: Andreas Bolsch <hyphen0break@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/flash/nor/stm32f2x.c