flash/stm32h7x: fix FLASH_WPSN_PRG mask used for protection
authorTarek BOCHKATI <tarek.bouchkati@gmail.com>
Thu, 24 Feb 2022 14:18:53 +0000 (15:18 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 12 Mar 2022 09:44:31 +0000 (09:44 +0000)
STM32H7Ax/7Bx devices have a different WPSN mask (0xFFFFFFFF),
(0xFF for STM32H74x/75x and STM32H72x/73x devices).

And when supporting STM32H7Ax/7Bx devices, stm32x_protect() was
not updated accordingly.

Change-Id: I081217af3e5ed815b67bfdfec7f4ebaa3152a865
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Fixes: 0b7eca17691a (flash/stm32h7x: add support of STM32H7Ax/H7Bx devices)
Reviewed-on: https://review.openocd.org/c/openocd/+/6858
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Tested-by: jenkins
src/flash/nor/stm32h7x.c

index 6d3149f9464dd1c9a813db3c19dc27d61d208e6b..d2914eb39d6435ee61e798fa802d5ce39da6d261 100644 (file)
@@ -531,6 +531,7 @@ static int stm32x_protect(struct flash_bank *bank, int set, unsigned int first,
                unsigned int last)
 {
        struct target *target = bank->target;
+       struct stm32h7x_flash_bank *stm32x_info = bank->driver_priv;
        uint32_t protection;
 
        if (target->state != TARGET_HALTED) {
@@ -553,7 +554,7 @@ static int stm32x_protect(struct flash_bank *bank, int set, unsigned int first,
        }
 
        /* apply WRPSN mask */
-       protection &= 0xff;
+       protection &= stm32x_info->part_info->wps_mask;
 
        LOG_DEBUG("stm32x_protect, option_bytes written WPSN 0x%" PRIx32, protection);