flash: use correct stm32f1x option read mask91/991/2
authorSpencer Oliver <spen@spen-soft.co.uk>
Tue, 20 Nov 2012 15:17:46 +0000 (20 15:17 +0000)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Mon, 31 Dec 2012 19:08:17 +0000 (31 19:08 +0000)
Make sure we do not mask out the BFB2 boot bank bit, as this is used on
the larger XL devices.

Change-Id: Iacfdf874140e409e0c4ca9b9aee8f5c2f90dc9be
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/991
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
src/flash/nor/stm32f1x.c

index 2d86e56..37335eb 100644 (file)
@@ -231,7 +231,7 @@ static int stm32x_read_options(struct flash_bank *bank)
        if (retval != ERROR_OK)
                return retval;
 
-       stm32x_info->option_bytes.user_options = (uint16_t)0xFFF8 | ((optiondata >> 2) & 0x07);
+       stm32x_info->option_bytes.user_options = (uint16_t)0xFFF0 | ((optiondata >> 2) & 0x0f);
        stm32x_info->option_bytes.user_data = (optiondata >> stm32x_info->user_data_offset) & 0xffff;
        stm32x_info->option_bytes.RDP = (optiondata & (1 << OPT_READOUT)) ? 0xFFFF : 0x5AA5;
 
@@ -1364,7 +1364,7 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
 {
        struct target *target = NULL;
        struct stm32x_flash_bank *stm32x_info = NULL;
-       uint16_t optionbyte = 0xF8;
+       uint32_t optionbyte = 0xF0;
 
        if (CMD_ARGC < 4)
                return ERROR_COMMAND_SYNTAX_ERROR;