Hi, any progress on #6546? I t looks like there are several small fixes 
required and then it would be ready for merge.


---

** [tickets:#317] STM32L5 wrong page size**

**Status:** accepted
**Milestone:** 0.11.0
**Labels:** stm32l5x flash 
**Created:** Wed Aug 25, 2021 02:33 PM UTC by Patrik Bachan
**Last Updated:** Mon Oct 04, 2021 07:00 PM UTC
**Owner:** nobody


Hi,
I have issue with OpenOCD and STM32L552 (256 kiB FLASH).
STM32L5x has 2 option bytes telling what dual-bank config is used: DBANK and 
DB256K.
Issues it, that page size depends only on DBANK, even for devices with 256kiB.
Tested with STM32CUbeProgrammer and STM32L552. Also tested with OpenOCD which 
erases only 2kiB, even though OpenOCD reports 4kiB pages.
In commit 
[092cfe16fb9cf6d6a308d62246fb648b0709ecd3](https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff;h=092cfe16fb9cf6d6a308d62246fb648b0709ecd3)
 introducing support of L5 devices, there seems to be the culprit of issue.

```
if ((use_dbank_bit && (options & BIT(22))) ||
                      (!use_dbank_bit && (options & BIT(21)))) {
```

STM32 flash driver code for these MCUs decides by DBANK for 512 kiB and by 
DB256K for 256 kiB and this is  not correct.

>From my understanding and observations:
for 512 kiB devices, DBANK affects page size and single-bank/dual-bank selection
for 256 kiB devices, DBANK affects page size and DB256K affects 
single-bank/dual-bank selection (probably, not tested)

This issue causes flash programming fail when there is already something in 
flash and page needs to be erased at first. I assume, that problem is wrong 
page erasure.

On which devices was this code tested?


---

Sent from sourceforge.net because openocd-devel@lists.sourceforge.net is 
subscribed to https://sourceforge.net/p/openocd/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/openocd/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.


Reply via email to