Commit cea4a194 authored by Eric Mechin's avatar Eric Mechin Committed by Anas Nashif
Browse files

drivers: flash: STM32WBA flash_stm32wba_fm.c: fix sector erase error



The STM32WBA Flash Manager driver is failing to erase a sector, instead of
erasing one sector, two sectors are erased.
Fix it by correctly calculating the number of sectors to erase

Signed-off-by: default avatarEric Mechin <eric.mechin@st.com>
(cherry picked from commit 62a1b8a3)
parent 6239b574
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ static int flash_stm32_erase(const struct device *dev, off_t offset,
			     size_t len)
{
	int rc;
	int sect_num = (len / FLASH_PAGE_SIZE) + 1;
	int sect_num;

	if (!flash_stm32_valid_range(dev, offset, len, true)) {
		LOG_ERR("Erase range invalid. Offset: %p, len: %zu",
@@ -116,6 +116,9 @@ static int flash_stm32_erase(const struct device *dev, off_t offset,
		return 0;
	}

	/* len is a multiple of FLASH_PAGE_SIZE */
	sect_num = len / FLASH_PAGE_SIZE;

	flash_stm32_sem_take(dev);

	LOG_DBG("Erase offset: %p, page: %ld, len: %zu, sect num: %d",