Browse Source

flash: pre-check flash unlock for stm32f2x

add checking of the current flash lock status before performing the unlock sequence (which would fail in an unlocked state)

Change-Id: I693294c9cd2f59e69cb5bf3338120052fd680b1e
Signed-off-by: Bruno FLEURETTE <bruno.fleurette@gmail.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Reviewed-on: http://openocd.zylin.com/363
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Tested-by: jenkins
Reviewed-by: Mathias Küster <kesmtp@freenet.de>
tags/v0.6.0-rc1
Bruno FLEURETTE 12 years ago
committed by Spencer Oliver
parent
commit
32d3063cf5
1 changed files with 11 additions and 1 deletions
  1. +11
    -1
      src/flash/nor/stm32f2x.c

+ 11
- 1
src/flash/nor/stm32f2x.c View File

@@ -234,8 +234,18 @@ static int stm32x_unlock_reg(struct target *target)
{
uint32_t ctrl;

/* first check if not already unlocked
* otherwise writing on STM32_FLASH_KEYR will fail
*/
int retval = target_read_u32(target, STM32_FLASH_CR, &ctrl);
if (retval != ERROR_OK)
return retval;

if ((ctrl & FLASH_LOCK) == 0)
return ERROR_OK;

/* unlock flash registers */
int retval = target_write_u32(target, STM32_FLASH_KEYR, KEY1);
retval = target_write_u32(target, STM32_FLASH_KEYR, KEY1);
if (retval != ERROR_OK)
return retval;



Loading…
Cancel
Save