Transform 'u16' to 'uint16_t'
[fw/openocd] / src / flash / stm32x.h
index ad189ac495f212753de36455994e6fe94baded70..ef35d856e811619a8de5fdfa94277c32970db348 100644 (file)
@@ -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     *
 #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,23 +53,30 @@ 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_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_PGERR            (1<<2)
 #define FLASH_WRPRTERR (1<<4)
 #define FLASH_EOP              (1<<5)
 
@@ -81,4 +99,3 @@ typedef struct stm32x_mem_layout_s {
 } stm32x_mem_layout_t;
 
 #endif /* STM32X_H */
-