X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fflash%2Fstm32x.h;h=511146678ce2f8f703dbc736a726509eb086a037;hb=ff61e6a37ce79f00957fc5aeb304291e5fa06323;hp=ad189ac495f212753de36455994e6fe94baded70;hpb=8c290412d28f9eef568dac0cfc20ccd4a9eca4d5;p=openocd diff --git a/src/flash/stm32x.h b/src/flash/stm32x.h index ad189ac4..51114667 100644 --- a/src/flash/stm32x.h +++ b/src/flash/stm32x.h @@ -2,6 +2,9 @@ * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * + * Copyright (C) 2008 by Spencer Oliver * + * spen@spen-soft.co.uk * + * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * @@ -21,12 +24,20 @@ #define STM32X_H #include "flash.h" -#include "target.h" + +typedef struct stm32x_options_s +{ + uint16_t RDP; + uint16_t user_options; + uint16_t protection[4]; +} stm32x_options_t; typedef struct stm32x_flash_bank_s { - struct target_s *target; + stm32x_options_t option_bytes; working_area_t *write_algorithm; + int ppage_size; + int probed; } stm32x_flash_bank_t; /* stm32x register locations */ @@ -42,25 +53,32 @@ typedef struct stm32x_flash_bank_s /* option byte location */ -#define STM32_OB_ADR 0x1FFFF800 +#define STM32_OB_RDP 0x1FFFF800 +#define STM32_OB_USER 0x1FFFF802 +#define STM32_OB_DATA0 0x1FFFF804 +#define STM32_OB_DATA1 0x1FFFF806 +#define STM32_OB_WRP0 0x1FFFF808 +#define STM32_OB_WRP1 0x1FFFF80A +#define STM32_OB_WRP2 0x1FFFF80C +#define STM32_OB_WRP3 0x1FFFF80E /* FLASH_CR register bits */ -#define FLASH_PG (1<<0) -#define FLASH_PER (1<<1) -#define FLASH_MER (1<<2) -#define FLASH_OPTPG (1<<4) -#define FLASH_OPTER (1<<5) -#define FLASH_STRT (1<<6) -#define FLASH_LOCK (1<<7) -#define FLASH_OPTWRE (1<<9) +#define FLASH_PG (1 << 0) +#define FLASH_PER (1 << 1) +#define FLASH_MER (1 << 2) +#define FLASH_OPTPG (1 << 4) +#define FLASH_OPTER (1 << 5) +#define FLASH_STRT (1 << 6) +#define FLASH_LOCK (1 << 7) +#define FLASH_OPTWRE (1 << 9) -/* FLASH_SR regsiter bits */ +/* FLASH_SR register bits */ -#define FLASH_BSY (1<<0) -#define FLASH_PGERR (1<<2) -#define FLASH_WRPRTERR (1<<4) -#define FLASH_EOP (1<<5) +#define FLASH_BSY (1 << 0) +#define FLASH_PGERR (1 << 2) +#define FLASH_WRPRTERR (1 << 4) +#define FLASH_EOP (1 << 5) /* STM32_FLASH_OBR bit definitions (reading) */ @@ -76,9 +94,8 @@ typedef struct stm32x_flash_bank_s #define KEY2 0xCDEF89AB typedef struct stm32x_mem_layout_s { - u32 sector_start; - u32 sector_size; + uint32_t sector_start; + uint32_t sector_size; } stm32x_mem_layout_t; #endif /* STM32X_H */ -