diff options
author | Tarek BOCHKATI <tarek.bouchkati@gmail.com> | 2020-11-03 00:50:24 +0100 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2021-03-24 17:18:04 +0000 |
commit | 03e2bc0f3b12c45f9b537bece1fef0520c2298bd (patch) | |
tree | fd00d90e2d3b2021929c4cfaab9dcc4bb8478592 /doc | |
parent | b8fd9aecb12a5d930cf3e3e09cede4cd6787e847 (diff) | |
download | riscv-openocd-03e2bc0f3b12c45f9b537bece1fef0520c2298bd.zip riscv-openocd-03e2bc0f3b12c45f9b537bece1fef0520c2298bd.tar.gz riscv-openocd-03e2bc0f3b12c45f9b537bece1fef0520c2298bd.tar.bz2 |
flash/stm32l4x: enhance protect handler to use efficiently all WRP areas
stm32l4_protect: was using one WRP area per bank, without checking
if it is already protecting some sectors.
protection algo is more complicated than that, before using a WRP area
we should check if it is already used, then either reuse it for extension
(or reduction) or use a free area.
introduce a new command: stm32l4x wrp_info bank_num ['bank1'|'bank2']
this command lists the protected areas using WRP.
Note: for some devices like STM32L4R/S in single bank mode, all 4 WRP areas
are usable for that bank, to manage this case an attribute 'use_all_wrpxx'
was introduced into stm32l4_part_info and used later in protection handlers
example usage:
$ telnet localhost 4444
> flash probe 0
device idcode = 0x10036470 (STM32L4R/L4Sxx - Rev: Y)
flash size = 2048kbytes
flash mode : dual-bank
flash 'stm32l4x' found at 0x08000000
> stm32l4x wrp_info 0
no protected areas
> flash protect 0 0 4 on
set protection for sectors 0 through 4 on flash bank 0
> flash protect 0 8 9 on
set protection for sectors 8 through 9 on flash bank 0
> stm32l4x wrp_info 0
protected areas: [0,4][8,9]
> flash protect 0 6 6 on
the device WRPxy are not enough to set the requested protection
failed setting protection for blocks 6 to 6
> flash protect 0 3 5 on
set protection for sectors 3 through 5 on flash bank 0
> stm32l4x wrp_info 0
protected areas: [0,5][8,9]
> flash protect 0 6 7 on
set protection for sectors 6 through 7 on flash bank 0
> stm32l4x wrp_info 0
protected areas: [0,9]
> flash protect 0 5 6 off
cleared protection for sectors 5 through 6 on flash bank 0
> stm32l4x wrp_info 0
protected areas: [0,4][7,9]
Change-Id: I42bd84fa66edd93406e18c6d89310faa5267ffa7
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-on: http://openocd.zylin.com/6107
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/openocd.texi | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index 6cce952..45c9ffa 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -7249,6 +7249,20 @@ Area A for bank 1. The above example set WRP1AR_END=255, WRP1AR_START=0. This will effectively write protect all sectors in flash bank 1. @end deffn +@deffn Command {stm32l4x wrp_info} num [device_bank] +List the protected areas using WRP. +The @var{num} parameter is a value shown by @command{flash banks}. +@var{device_bank} parameter is optional, possible values 'bank1' or 'bank2', +if not specified, the command will display the whole flash protected areas. + +@b{Note:} @var{device_bank} is different from banks created using @code{flash bank}. +Devices supported in this flash driver, can have main flash memory organized +in single or dual-banks mode. +Thus the usage of @var{device_bank} is meaningful only in dual-bank mode, to get +write protected areas in a specific @var{device_bank} + +@end deffn + @deffn Command {stm32l4x option_load} num Forces a re-load of the option byte registers. Will cause a system reset of the device. The @var{num} parameter is a value shown by @command{flash banks}. |