]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_SmartFusion2_M2S050_SoftConsole/RTOSDemo_Hardware_Platform/CMSIS/m2sxxx.h
Add missing +TCP code.
[freertos] / FreeRTOS / Demo / CORTEX_SmartFusion2_M2S050_SoftConsole / RTOSDemo_Hardware_Platform / CMSIS / m2sxxx.h
1 /*******************************************************************************\r
2  * (c) Copyright 2010-2013 Microsemi SoC Products Group. All rights reserved.\r
3  *\r
4  *  Microsemi SmartFusion2 Cortex Microcontroller Software Interface - Peripheral\r
5  *  Access Layer.\r
6  *\r
7  *  This file describes the interrupt assignment and peripheral registers for\r
8  *  the SmartFusion2 familly of devices.\r
9  *\r
10  * SVN $Revision: 5267 $\r
11  * SVN $Date: 2013-03-21 20:45:39 +0000 (Thu, 21 Mar 2013) $\r
12  */\r
13 #ifndef __SMARTFUSION2_CMSIS_PAL_H__\r
14 #define __SMARTFUSION2_CMSIS_PAL_H__\r
15 \r
16 #ifdef __cplusplus\r
17 extern "C" {\r
18 #endif\r
19 \r
20 /*\r
21  * ==========================================================================\r
22  * ---------- Interrupt Number Definition -----------------------------------\r
23  * ==========================================================================\r
24  */\r
25 \r
26 typedef enum IRQn\r
27 {\r
28 /******  Cortex-M3 Processor Exceptions Numbers *********************************************************/\r
29   NonMaskableInt_IRQn             = -14,      /*!< 2 Non Maskable Interrupt - Watchdog timeout interrupt*/\r
30   HardFault_IRQn                  = -13,      /*!< 2 Hard Fault Interrupt                               */\r
31   MemoryManagement_IRQn           = -12,      /*!< 4 Cortex-M3 Memory Management Interrupt              */\r
32   BusFault_IRQn                   = -11,      /*!< 5 Cortex-M3 Bus Fault Interrupt                      */\r
33   UsageFault_IRQn                 = -10,      /*!< 6 Cortex-M3 Usage Fault Interrupt                    */\r
34   SVCall_IRQn                     = -5,       /*!< 11 Cortex-M3 SV Call Interrupt                       */\r
35   DebugMonitor_IRQn               = -4,       /*!< 12 Cortex-M3 Debug Monitor Interrupt                 */\r
36   PendSV_IRQn                     = -2,       /*!< 14 Cortex-M3 Pend SV Interrupt                       */\r
37   SysTick_IRQn                    = -1,       /*!< 15 Cortex-M3 System Tick Interrupt                   */\r
38 \r
39 /******  SmartFusion2 specific Interrupt Numbers *********************************************************/\r
40   WdogWakeup_IRQn                 = 0,        /*!< WatchDog wakeup interrupt                            */\r
41   RTC_Wakeup_IRQn                 = 1,        /*!< RTC wakeup interrupt                                 */\r
42   SPI0_IRQn                       = 2,        /*!< SPI0 interrupt                                       */\r
43   SPI1_IRQn                       = 3,        /*!< SPI1 interrupt                                       */\r
44   I2C0_IRQn                       = 4,        /*!< I2C0 interrupt                                       */\r
45   I2C0_SMBAlert_IRQn              = 5,        /*!< I2C0 SMBus Alert interrupt                           */\r
46   I2C0_SMBus_IRQn                 = 6,        /*!< I2C0 SMBus Suspend interrupt                         */\r
47   I2C1_IRQn                       = 7,        /*!< I2C1 interrupt                                       */\r
48   I2C1_SMBAlert_IRQn              = 8,        /*!< I2C1 SMBus Alert interrupt                           */\r
49   I2C1_SMBus_IRQn                 = 9,        /*!< I2C1 SMBus Suspend interrupt                         */\r
50   UART0_IRQn                      = 10,       /*!< UART0 interrupt                                      */\r
51   UART1_IRQn                      = 11,       /*!< UART1 interrupt                                      */\r
52   EthernetMAC_IRQn                = 12,       /*!< Ethernet MAC interrupt                               */\r
53   DMA_IRQn                        = 13,       /*!< Peripheral DMA interrupt                             */\r
54   Timer1_IRQn                     = 14,       /*!< Timer1 interrupt                                     */\r
55   Timer2_IRQn                     = 15,       /*!< Timer2 interrupt                                     */\r
56   CAN_IRQn                        = 16,       /*!< CAN controller interrupt                             */\r
57   ENVM0_IRQn                      = 17,       /*!< eNVM0 operation completion interrupt                 */\r
58   ENVM1_IRQn                      = 18,       /*!< eNVM1 operation completion interrupt                 */\r
59   ComBlk_IRQn                     = 19,       /*!< COM block interrupt                                  */\r
60   USB_IRQn                        = 20,       /*!< USB interrupt                                        */\r
61   USB_DMA_IRQn                    = 21,       /*!< USB DMA interrupt                                    */\r
62   PLL_Lock_IRQn                   = 22,       /*!< PLL lock interrupt                                   */\r
63   PLL_LockLost_IRQn               = 23,       /*!< PLL loss of lock interrupt                           */\r
64   CommSwitchError_IR              = 24,       /*!< Communications Switch error interrupt                */\r
65   CacheError_IRQn                 = 25,       /*!< Cache error interrupt                                */\r
66   DDR_IRQn                        = 26,       /*!< DDR controller interrupt                             */\r
67   HPDMA_Complete_IRQn             = 27,       /*!< High speed DMA transfer complete interrupt           */\r
68   HPDMA_Error_IRQn                = 28,       /*!< High speed DMA transfer error interrupt              */\r
69   ECC_Error_IRQn                  = 29,       /*!< ECC error detected                                   */\r
70   MDDR_IOCalib_IRQn               = 30,       /*!< MDDR Calibration finished interrupt                  */\r
71   FAB_PLL_Lock_IRQn               = 31,       /*!< MSSDDR Fabric PLL lock interrupt                   */\r
72   FAB_PLL_LockLost_IRQn           = 32,       /*!< MSSDDR Fabric PLL lock lost interrupt              */\r
73   FIC64_IRQn                      = 33,       /*!< FIC64 interrupt                                      */\r
74   FabricIrq0_IRQn                 = 34,       /*!< FPGA fabric interrupt 0                              */\r
75   FabricIrq1_IRQn                 = 35,       /*!< FPGA fabric interrupt 1                              */\r
76   FabricIrq2_IRQn                 = 36,       /*!< FPGA fabric interrupt 2                              */\r
77   FabricIrq3_IRQn                 = 37,       /*!< FPGA fabric interrupt 3                              */\r
78   FabricIrq4_IRQn                 = 38,       /*!< FPGA fabric interrupt 4                              */\r
79   FabricIrq5_IRQn                 = 39,       /*!< FPGA fabric interrupt 5                              */\r
80   FabricIrq6_IRQn                 = 40,       /*!< FPGA fabric interrupt 6                              */\r
81   FabricIrq7_IRQn                 = 41,       /*!< FPGA fabric interrupt 7                              */\r
82   FabricIrq8_IRQn                 = 42,       /*!< FPGA fabric interrupt 8                              */\r
83   FabricIrq9_IRQn                 = 43,       /*!< FPGA fabric interrupt 9                              */\r
84   FabricIrq10_IRQn                = 44,       /*!< FPGA fabric interrupt 10                             */\r
85   FabricIrq11_IRQn                = 45,       /*!< FPGA fabric interrupt 11                             */\r
86   FabricIrq12_IRQn                = 46,       /*!< FPGA fabric interrupt 12                             */\r
87   FabricIrq13_IRQn                = 47,       /*!< FPGA fabric interrupt 13                             */\r
88   FabricIrq14_IRQn                = 48,       /*!< FPGA fabric interrupt 14                             */\r
89   FabricIrq15_IRQn                = 49,       /*!< FPGA fabric interrupt 15                             */  \r
90   GPIO0_IRQn                      = 50,       /*!< GPIO 0 interrupt                                     */\r
91   GPIO1_IRQn                      = 51,       /*!< GPIO 1 interrupt                                     */\r
92   GPIO2_IRQn                      = 52,       /*!< GPIO 2 interrupt                                     */\r
93   GPIO3_IRQn                      = 53,       /*!< GPIO 3 interrupt                                     */\r
94   GPIO4_IRQn                      = 54,       /*!< GPIO 4 interrupt                                     */\r
95   GPIO5_IRQn                      = 55,       /*!< GPIO 5 interrupt                                     */\r
96   GPIO6_IRQn                      = 56,       /*!< GPIO 6 interrupt                                     */\r
97   GPIO7_IRQn                      = 57,       /*!< GPIO 7 interrupt                                     */\r
98   GPIO8_IRQn                      = 58,       /*!< GPIO 8 interrupt                                     */\r
99   GPIO9_IRQn                      = 59,       /*!< GPIO 9 interrupt                                     */\r
100   GPIO10_IRQn                     = 60,       /*!< GPIO 10 interrupt                                    */\r
101   GPIO11_IRQn                     = 61,       /*!< GPIO 11 interrupt                                    */\r
102   GPIO12_IRQn                     = 62,       /*!< GPIO 12 interrupt                                    */\r
103   GPIO13_IRQn                     = 63,       /*!< GPIO 13 interrupt                                    */\r
104   GPIO14_IRQn                     = 64,       /*!< GPIO 14 interrupt                                    */\r
105   GPIO15_IRQn                     = 65,       /*!< GPIO 15 interrupt                                    */\r
106   GPIO16_IRQn                     = 66,       /*!< GPIO 16 interrupt                                    */\r
107   GPIO17_IRQn                     = 67,       /*!< GPIO 17 interrupt                                    */\r
108   GPIO18_IRQn                     = 68,       /*!< GPIO 18 interrupt                                    */\r
109   GPIO19_IRQn                     = 69,       /*!< GPIO 19 interrupt                                    */\r
110   GPIO20_IRQn                     = 70,       /*!< GPIO 20 interrupt                                    */\r
111   GPIO21_IRQn                     = 71,       /*!< GPIO 21 interrupt                                    */\r
112   GPIO22_IRQn                     = 72,       /*!< GPIO 22 interrupt                                    */\r
113   GPIO23_IRQn                     = 73,       /*!< GPIO 23 interrupt                                    */\r
114   GPIO24_IRQn                     = 74,       /*!< GPIO 24 interrupt                                    */\r
115   GPIO25_IRQn                     = 75,       /*!< GPIO 25 interrupt                                    */ \r
116   GPIO26_IRQn                     = 76,       /*!< GPIO 26 interrupt                                    */\r
117   GPIO27_IRQn                     = 77,       /*!< GPIO 27 interrupt                                    */\r
118   GPIO28_IRQn                     = 78,       /*!< GPIO 28 interrupt                                    */\r
119   GPIO29_IRQn                     = 79,       /*!< GPIO 29 interrupt                                    */\r
120   GPIO30_IRQn                     = 80,       /*!< GPIO 30 interrupt                                    */\r
121   GPIO31_IRQn                     = 81        /*!< GPIO 31 interrupt                                    */\r
122 } IRQn_Type;\r
123 \r
124 /*\r
125  * ==========================================================================\r
126  * ----------- Processor and Core Peripheral Section ------------------------\r
127  * ==========================================================================\r
128  */\r
129 #define __CM3_REV                 0x0201    /*!< Core revision r2p1                              */\r
130 #define __MPU_PRESENT             1         /*!< MPU present or not                              */\r
131 #define __NVIC_PRIO_BITS          4         /*!< Number of Bits used for Priority Levels         */\r
132 #define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used    */\r
133 \r
134 #include <core_cm3.h>   /* Cortex-M3 processor and core peripherals           */\r
135 \r
136 /******************************************************************************/\r
137 /*                Device Specific Peripheral registers structures             */\r
138 /******************************************************************************/\r
139 #if defined   ( __CC_ARM   )\r
140   /* Enable anonymous unions when building using Keil-MDK */\r
141   #pragma anon_unions\r
142 #endif\r
143 \r
144 /*----------------------------------------------------------------------------*/\r
145 /*----------------------------------- UART -----------------------------------*/\r
146 /*----------------------------------------------------------------------------*/\r
147 typedef struct\r
148 {\r
149     union\r
150     {\r
151         __I  uint8_t    RBR;\r
152         __O  uint8_t    THR;\r
153         __IO uint8_t    DLR;\r
154              uint32_t   RESERVED0;\r
155     };\r
156 \r
157     union\r
158     {\r
159         __IO uint8_t  DMR;\r
160         __IO uint8_t  IER;\r
161              uint32_t RESERVED1;\r
162     };\r
163 \r
164     union\r
165     {\r
166         __IO uint8_t  IIR;\r
167         __IO uint8_t  FCR;\r
168              uint32_t RESERVED2;\r
169     };\r
170 \r
171     __IO uint8_t  LCR;\r
172          uint8_t  RESERVED3[3];\r
173 \r
174     __IO uint8_t  MCR;\r
175          uint8_t  RESERVED4[3];\r
176 \r
177     __I  uint8_t  LSR;\r
178          uint8_t  RESERVED5[3];\r
179 \r
180     __I  uint8_t  MSR;\r
181          uint8_t  RESERVED6[3];\r
182 \r
183     __IO uint8_t  SR;\r
184          uint8_t  RESERVED7[7];\r
185 \r
186     __IO uint8_t  IEM;\r
187          uint8_t  RESERVED8[3];\r
188 \r
189     __IO uint8_t  IIM;\r
190          uint8_t  RESERVED9[7];\r
191 \r
192     __IO uint8_t  MM0;\r
193          uint8_t  RESERVED10[3];\r
194 \r
195     __IO uint8_t  MM1;\r
196          uint8_t  RESERVED11[3];\r
197 \r
198     __IO uint8_t  MM2;\r
199          uint8_t  RESERVED12[3];\r
200 \r
201     __IO uint8_t  DFR;\r
202          uint8_t  RESERVED13[7];\r
203 \r
204      __IO uint8_t GFR;\r
205          uint8_t  RESERVED14[3];\r
206 \r
207      __IO uint8_t TTG;\r
208          uint8_t  RESERVED15[3];\r
209 \r
210      __IO uint8_t RTO;\r
211          uint8_t  RESERVED16[3];\r
212 \r
213      __IO uint8_t ADR;\r
214          uint8_t  RESERVED17[3];\r
215 \r
216 } UART_TypeDef;\r
217 \r
218 /*----------------------------------------------------------------------------*/\r
219 /*----------------------------------- I2C ------------------------------------*/\r
220 /*----------------------------------------------------------------------------*/\r
221 typedef struct\r
222 {\r
223     __IO uint8_t  CTRL;\r
224          uint8_t  RESERVED0;\r
225          uint16_t RESERVED1;\r
226          uint8_t  STATUS;\r
227          uint8_t  RESERVED2;\r
228          uint16_t RESERVED3;\r
229     __IO uint8_t  DATA;\r
230          uint8_t  RESERVED4;\r
231          uint16_t RESERVED5;\r
232     __IO uint8_t  ADDR;\r
233          uint8_t  RESERVED6;\r
234          uint16_t RESERVED7;\r
235     __IO uint8_t  SMBUS;\r
236          uint8_t  RESERVED8;\r
237          uint16_t RESERVED9;\r
238     __IO uint8_t  FREQ;\r
239          uint8_t  RESERVED10;\r
240          uint16_t RESERVED11;\r
241     __IO uint8_t  GLITCHREG;\r
242          uint8_t  RESERVED12;\r
243          uint16_t RESERVED13;\r
244     __IO uint8_t  SLAVE1_ADDR;\r
245          uint8_t  RESERVED14;\r
246          uint16_t RESERVED15;\r
247 } I2C_TypeDef;\r
248 \r
249 /*------------------------------------------------------------------------------\r
250  * I2C bit band\r
251  */\r
252 typedef struct\r
253 {\r
254     __IO uint32_t CTRL_CR0;\r
255     __IO uint32_t CTRL_CR1;\r
256     __IO uint32_t CTRL_AA;\r
257     __IO uint32_t CTRL_SI;\r
258     __IO uint32_t CTRL_STO;\r
259     __IO uint32_t CTRL_STA;\r
260     __IO uint32_t CTRL_ENS1;\r
261     __IO uint32_t CTRL_CR2;\r
262          uint32_t RESERVED0[56];\r
263     __IO uint32_t DATA_DIR;\r
264          uint32_t RESERVED1[31];\r
265     __IO uint32_t ADDR_GC;\r
266 } I2C_BitBand_TypeDef;\r
267 \r
268 /*----------------------------------------------------------------------------*/\r
269 /*----------------------------------- SPI ------------------------------------*/\r
270 /*----------------------------------------------------------------------------*/\r
271 typedef struct\r
272 {\r
273     __IO uint32_t CONTROL;\r
274     __IO uint32_t TXRXDF_SIZE;\r
275     __I  uint32_t STATUS;\r
276     __O  uint32_t INT_CLEAR;\r
277     __I  uint32_t RX_DATA;\r
278     __O  uint32_t TX_DATA;\r
279     __IO uint32_t CLK_GEN;\r
280     __IO uint32_t SLAVE_SELECT;\r
281     __I  uint32_t MIS;\r
282     __I  uint32_t RIS;\r
283     __IO uint32_t CONTROL2;\r
284     __IO uint32_t COMMAND;\r
285     __IO uint32_t PKTSIZE;\r
286     __IO uint32_t CMDSIZE;\r
287     __IO uint32_t HWSTATUS;\r
288     __IO uint32_t STAT8;\r
289     __IO uint32_t CTRL0;\r
290     __IO uint32_t CTRL1;\r
291     __IO uint32_t CTRL2;\r
292     __IO uint32_t CTRL3;\r
293 } SPI_TypeDef;\r
294 \r
295 /*----------------------------------------------------------------------------*/\r
296 /*----------------------------------- GPIO -----------------------------------*/\r
297 /*----------------------------------------------------------------------------*/\r
298 typedef struct\r
299 {\r
300     __IO uint32_t GPIO_0_CFG;\r
301     __IO uint32_t GPIO_1_CFG;\r
302     __IO uint32_t GPIO_2_CFG;\r
303     __IO uint32_t GPIO_3_CFG;\r
304     __IO uint32_t GPIO_4_CFG;\r
305     __IO uint32_t GPIO_5_CFG;\r
306     __IO uint32_t GPIO_6_CFG;\r
307     __IO uint32_t GPIO_7_CFG;\r
308     __IO uint32_t GPIO_8_CFG;\r
309     __IO uint32_t GPIO_9_CFG;\r
310     __IO uint32_t GPIO_10_CFG;\r
311     __IO uint32_t GPIO_11_CFG;\r
312     __IO uint32_t GPIO_12_CFG;\r
313     __IO uint32_t GPIO_13_CFG;\r
314     __IO uint32_t GPIO_14_CFG;\r
315     __IO uint32_t GPIO_15_CFG;\r
316     __IO uint32_t GPIO_16_CFG;\r
317     __IO uint32_t GPIO_17_CFG;\r
318     __IO uint32_t GPIO_18_CFG;\r
319     __IO uint32_t GPIO_19_CFG;\r
320     __IO uint32_t GPIO_20_CFG;\r
321     __IO uint32_t GPIO_21_CFG;\r
322     __IO uint32_t GPIO_22_CFG;\r
323     __IO uint32_t GPIO_23_CFG;\r
324     __IO uint32_t GPIO_24_CFG;\r
325     __IO uint32_t GPIO_25_CFG;\r
326     __IO uint32_t GPIO_26_CFG;\r
327     __IO uint32_t GPIO_27_CFG;\r
328     __IO uint32_t GPIO_28_CFG;\r
329     __IO uint32_t GPIO_29_CFG;\r
330     __IO uint32_t GPIO_30_CFG;\r
331     __IO uint32_t GPIO_31_CFG;\r
332     __IO uint32_t GPIO_IRQ;\r
333     __I  uint32_t GPIO_IN;\r
334     __IO uint32_t GPIO_OUT;\r
335 } GPIO_TypeDef;\r
336 \r
337 /*------------------------------------------------------------------------------\r
338  * GPIO bit band\r
339  */\r
340 typedef struct\r
341 {\r
342     __IO uint32_t GPIO_0_CFG[32];\r
343     __IO uint32_t GPIO_1_CFG[32];\r
344     __IO uint32_t GPIO_2_CFG[32];\r
345     __IO uint32_t GPIO_3_CFG[32];\r
346     __IO uint32_t GPIO_4_CFG[32];\r
347     __IO uint32_t GPIO_5_CFG[32];\r
348     __IO uint32_t GPIO_6_CFG[32];\r
349     __IO uint32_t GPIO_7_CFG[32];\r
350     __IO uint32_t GPIO_8_CFG[32];\r
351     __IO uint32_t GPIO_9_CFG[32];\r
352     __IO uint32_t GPIO_10_CFG[32];\r
353     __IO uint32_t GPIO_11_CFG[32];\r
354     __IO uint32_t GPIO_12_CFG[32];\r
355     __IO uint32_t GPIO_13_CFG[32];\r
356     __IO uint32_t GPIO_14_CFG[32];\r
357     __IO uint32_t GPIO_15_CFG[32];\r
358     __IO uint32_t GPIO_16_CFG[32];\r
359     __IO uint32_t GPIO_17_CFG[32];\r
360     __IO uint32_t GPIO_18_CFG[32];\r
361     __IO uint32_t GPIO_19_CFG[32];\r
362     __IO uint32_t GPIO_20_CFG[32];\r
363     __IO uint32_t GPIO_21_CFG[32];\r
364     __IO uint32_t GPIO_22_CFG[32];\r
365     __IO uint32_t GPIO_23_CFG[32];\r
366     __IO uint32_t GPIO_24_CFG[32];\r
367     __IO uint32_t GPIO_25_CFG[32];\r
368     __IO uint32_t GPIO_26_CFG[32];\r
369     __IO uint32_t GPIO_27_CFG[32];\r
370     __IO uint32_t GPIO_28_CFG[32];\r
371     __IO uint32_t GPIO_29_CFG[32];\r
372     __IO uint32_t GPIO_30_CFG[32];\r
373     __IO uint32_t GPIO_31_CFG[32];\r
374     __IO uint32_t GPIO_IRQ[32];\r
375     __I  uint32_t GPIO_IN[32];\r
376     __IO uint32_t GPIO_OUT[32];\r
377 } GPIO_BitBand_TypeDef;\r
378 \r
379 \r
380 /*----------------------------------------------------------------------------*/\r
381 /*--------------------------------- HPDMA ------------------------------------*/\r
382 /*----------------------------------------------------------------------------*/\r
383 \r
384 typedef struct\r
385 {\r
386     __IO uint32_t HPDMASAR_REG              ;\r
387     __IO uint32_t HPDMADAR_REG              ;\r
388     __IO uint32_t HPDMACR_REG               ;\r
389     __I  uint32_t HPDMASR_REG               ;\r
390     __I  uint32_t HPDMAPTR_REG              ;\r
391 }HPDMA_Descriptor_TypeDef;\r
392 \r
393 typedef struct\r
394 {\r
395     __I  uint32_t HPDMAEDR_REG              ;\r
396     HPDMA_Descriptor_TypeDef  Descriptor[4] ;\r
397     __O  uint32_t HPDMAICR_REG              ;\r
398     __I  uint32_t HPDMADR_REG               ;\r
399 } HPDMA_TypeDef;\r
400 \r
401 typedef struct\r
402 {\r
403          uint32_t RESERVED0[64];\r
404     __IO uint32_t HPDMACR_XFR_SIZE[16]     ;\r
405     __IO uint32_t HPDMACR_DCP_VALID        ;\r
406     __IO uint32_t HPDMACR_DCP_XFR_DIR      ;\r
407     __IO uint32_t HPDMACR_DCP_CLR          ;\r
408     __IO uint32_t HPDMACR_DCP_PAUSE        ;\r
409     __IO uint32_t HPDMACR_XFR_CMP_INT      ;\r
410     __IO uint32_t HPDMACR_XFR_ERR_INT      ;\r
411     __IO uint32_t HPDMACR_NON_WORD_INT     ;\r
412          uint32_t RESERVED1[9];\r
413 \r
414     __I  uint32_t HPDMASR_DCP_ACTIVE       ;\r
415     __I  uint32_t HPDMASR_DCP_CMPLET       ;\r
416     __I  uint32_t HPDMASR_DCP_SERR         ;\r
417     __I  uint32_t HPDMASR_DCP_DERR         ;\r
418          uint32_t RESERVED2[60]            ;\r
419 }HPDMA_Descriptor_BitBand_TypeDef;\r
420 \r
421 /*------------------------------------------------------------------------------\r
422  * HPDMA bit band\r
423  */\r
424 typedef struct\r
425 {\r
426     __I  uint32_t HPDMAEDR_DCP_EMPTY[4]           ;\r
427     __I  uint32_t HPDMAEDR_DCP_CMPLET[4]          ;\r
428     __I  uint32_t HPDMAEDR_DCP_ERR[4]             ;\r
429     __I  uint32_t HPDMAEDR_DCP_NON_WORD_ERR[4]    ;\r
430          uint32_t RESERVED0[16]                   ;\r
431 \r
432     HPDMA_Descriptor_BitBand_TypeDef Descriptor[4];\r
433 \r
434     __O  uint32_t HPDMAICR_CLR_XFR_INT[4]         ;\r
435     __O  uint32_t HPDMAICR_NON_WORD_INT[4]        ;\r
436          uint32_t RESERVED1[16]                   ;\r
437 \r
438     __I  uint32_t HPDMADR_BFR_EMPTY               ;\r
439     __I  uint32_t HPDMADR_BFR_FULL                ;\r
440     __I  uint32_t HPDMADR_BFR_RD_PNTR[3]          ;\r
441     __I  uint32_t HPDMADR_BFR_WR_PNTR [3]         ;\r
442     __I  uint32_t HPDMADR_AHM1_CST_DBG[4]         ;\r
443     __I  uint32_t HPDMADR_AHM2_CST_DBG[4]         ;\r
444     __I  uint32_t HPDMADR_WBC_CST_DBG[3]          ;\r
445     __I  uint32_t HPDMADR_RBC_CST_DBG[3]          ;\r
446     __I  uint32_t HPDMADR_RRBN_CST_DBG[4]         ;\r
447     __I  uint32_t HPDMADR_DMA_CST_DBG[4]          ;\r
448 \r
449          uint32_t RESERVED2[4]                    ;\r
450 }HPDMA_BitBand_TypeDef;\r
451 \r
452 /*----------------------------------------------------------------------------*/\r
453 /*----------------------------------- RTC ------------------------------------*/\r
454 /*----------------------------------------------------------------------------*/\r
455 typedef struct\r
456 {\r
457     __IO uint32_t CONTROL_REG             ;\r
458     __IO uint32_t MODE_REG                ;\r
459     __IO uint32_t PRESCALER_REG           ;\r
460     __IO uint32_t ALARM_LOWER_REG         ;\r
461     __IO uint32_t ALARM_UPPER_REG         ;\r
462     __IO uint32_t COMPARE_LOWER_REG       ;\r
463     __IO uint32_t COMPARE_UPPER_REG       ;\r
464          uint32_t RESERVED0               ;\r
465     __IO uint32_t DATE_TIME_LOWER_REG     ;\r
466     __IO uint32_t DATE_TIME_UPPER_REG     ;\r
467 \r
468          uint32_t RESERVED1[2]            ;\r
469     __IO uint32_t SECONDS_REG             ;\r
470     __IO uint32_t MINUTES_REG             ;\r
471     __IO uint32_t HOURS_REG               ;\r
472     __IO uint32_t DAY_REG                 ;\r
473     __IO uint32_t MONTH_REG               ;\r
474     __IO uint32_t YEAR_REG                ;\r
475     __IO uint32_t WEEKDAY_REG             ;\r
476     __IO uint32_t WEEK_REG                ;\r
477 \r
478     __IO uint32_t SECONDS_CNT_REG         ;\r
479     __IO uint32_t MINUTES_CNT_REG         ;\r
480     __IO uint32_t HOURS_CNT_REG           ;\r
481     __IO uint32_t DAY_CNT_REG             ;\r
482     __IO uint32_t MONTH_CNT_REG           ;\r
483     __IO uint32_t YEAR_CNT_REG            ;\r
484     __IO uint32_t WEEKDAY_CNT_REG         ;\r
485     __IO uint32_t WEEK_CNT_REG            ;\r
486 } RTC_TypeDef;\r
487 \r
488 /*----------------------------------------------------------------------------*/\r
489 /*---------------------------------- Timer -----------------------------------*/\r
490 /*----------------------------------------------------------------------------*/\r
491 typedef struct\r
492 {\r
493     __I  uint32_t TIM1_VAL;\r
494     __IO uint32_t TIM1_LOADVAL;\r
495     __IO uint32_t TIM1_BGLOADVAL;\r
496     __IO uint32_t TIM1_CTRL;\r
497     __IO uint32_t TIM1_RIS;\r
498     __I  uint32_t TIM1_MIS;\r
499 \r
500     __I  uint32_t TIM2_VAL;\r
501     __IO uint32_t TIM2_LOADVAL;\r
502     __IO uint32_t TIM2_BGLOADVAL;\r
503     __IO uint32_t TIM2_CTRL;\r
504     __IO uint32_t TIM2_RIS;\r
505     __I  uint32_t TIM2_MIS;\r
506 \r
507     __I  uint32_t TIM64_VAL_U;\r
508     __I  uint32_t TIM64_VAL_L;\r
509     __IO uint32_t TIM64_LOADVAL_U;\r
510     __IO uint32_t TIM64_LOADVAL_L;\r
511     __IO uint32_t TIM64_BGLOADVAL_U;\r
512     __IO uint32_t TIM64_BGLOADVAL_L;\r
513     __IO uint32_t TIM64_CTRL;\r
514     __IO uint32_t TIM64_RIS;\r
515     __I  uint32_t TIM64_MIS;\r
516     __IO uint32_t TIM64_MODE;\r
517 } TIMER_TypeDef;\r
518 \r
519 /*------------------------------------------------------------------------------\r
520  * Timer bit band\r
521  */\r
522 typedef struct\r
523 {\r
524     __I  uint32_t TIM1_VALUE_BIT[32];\r
525     __IO uint32_t TIM1_LOADVAL[32];\r
526     __IO uint32_t TIM1_BGLOADVAL[32];\r
527 \r
528     __IO uint32_t TIM1ENABLE;\r
529     __IO uint32_t TIM1MODE;\r
530     __IO uint32_t TIM1INTEN;\r
531     __IO uint32_t TIM1_CTRL_RESERVED[29];\r
532     __IO uint32_t TIM1_RIS[32];\r
533     __I  uint32_t TIM1_MIS[32];\r
534 \r
535     __I  uint32_t TIM2_VALUE[32];\r
536     __IO uint32_t TIM2_LOADVAL[32];\r
537     __IO uint32_t TIM2_BGLOADVAL[32];\r
538 \r
539     __IO uint32_t TIM2ENABLE;\r
540     __IO uint32_t TIM2MODE;\r
541     __IO uint32_t TIM2INTEN;\r
542     __IO uint32_t TIM2_CTRL[29];\r
543     __IO uint32_t TIM2_RIS[32];\r
544     __I  uint32_t TIM2_MIS[32];\r
545 \r
546     __I  uint32_t TIM64VALUEU[32];\r
547     __I  uint32_t TIM64VALUEL[32];\r
548     __IO uint32_t TIM64LOADVALUEU[32];\r
549     __IO uint32_t TIM64LOADVALUEL[32];\r
550     __IO uint32_t TIM64BGLOADVALUEU[32];\r
551     __IO uint32_t TIM64BGLOADVALUEL[32];\r
552     __IO uint32_t TIM64ENABLE;\r
553     __IO uint32_t TIM64MODE;\r
554     __IO uint32_t TIM64INTEN;\r
555     __IO uint32_t TIM64_CTRL[29];\r
556     __IO uint32_t TIM64_RIS[32];\r
557     __I  uint32_t TIM64_MIS[32];\r
558     __IO uint32_t TIM64_MODE[32];\r
559 } TIMER_BitBand_TypeDef;\r
560 \r
561 /*----------------------------------------------------------------------------*/\r
562 /*--------------------------------- Watchdog ---------------------------------*/\r
563 /*----------------------------------------------------------------------------*/\r
564 typedef struct\r
565 {\r
566     __I  uint32_t WDOGVALUE;\r
567     __I  uint32_t WDOGLOAD;\r
568     __I  uint32_t WDOGMVRP;\r
569     __O  uint32_t WDOGREFRESH;\r
570     __I  uint32_t WDOGENABLE;\r
571     __IO uint32_t WDOGCONTROL;\r
572     __I  uint32_t WDOGSTATUS;\r
573     __IO uint32_t WDOGRIS;\r
574     __I  uint32_t WDOGMIS;\r
575 } WATCHDOG_TypeDef;\r
576 \r
577 /*----------------------------------------------------------------------------*/\r
578 /*----------------------------- Real Time Clock ------------------------------*/\r
579 /*----------------------------------------------------------------------------*/\r
580 \r
581 /*----------------------------------------------------------------------------*/\r
582 /*----------------------------- Peripherals DMA ------------------------------*/\r
583 /*----------------------------------------------------------------------------*/\r
584 typedef struct\r
585 {\r
586     __IO uint32_t CRTL;\r
587     __IO uint32_t STATUS;\r
588     __IO uint32_t BUFFER_A_SRC_ADDR;\r
589     __IO uint32_t BUFFER_A_DEST_ADDR;\r
590     __IO uint32_t BUFFER_A_TRANSFER_COUNT;\r
591     __IO uint32_t BUFFER_B_SRC_ADDR;\r
592     __IO uint32_t BUFFER_B_DEST_ADDR;\r
593     __IO uint32_t BUFFER_B_TRANSFER_COUNT;\r
594 } PDMA_Channel_TypeDef;\r
595 \r
596 typedef struct\r
597 {\r
598     __IO uint32_t RATIO_HIGH_LOW;\r
599     __IO uint32_t BUFFER_STATUS;\r
600          uint32_t RESERVED[6];\r
601     PDMA_Channel_TypeDef CHANNEL[8];\r
602 } PDMA_TypeDef;\r
603 \r
604 /*----------------------------------------------------------------------------*/\r
605 /*------------------------------ Ethernet MAC --------------------------------*/\r
606 /*----------------------------------------------------------------------------*/\r
607 typedef struct\r
608 {\r
609         /* \r
610      * MAC registers (MCXMAC)\r
611      */\r
612     __IO uint32_t CFG1;\r
613     __IO uint32_t CFG2;\r
614     __IO uint32_t IFG;\r
615     __IO uint32_t HALF_DUPLEX;\r
616     __IO uint32_t MAX_FRAME_LENGTH;\r
617          uint32_t RESERVED0[2];\r
618     __IO uint32_t TEST;\r
619     __IO uint32_t MII_CONFIG;\r
620     __IO uint32_t MII_COMMAND;\r
621     __IO uint32_t MII_ADDRESS;\r
622     __O  uint32_t MII_CTRL;\r
623     __I  uint32_t MII_STATUS;\r
624     __I  uint32_t MII_INDICATORS;\r
625     __IO uint32_t INTERFACE_CTRL;\r
626     __I  uint32_t INTERFACE_STATUS;\r
627     __IO uint32_t STATION_ADDRESS1;\r
628     __IO uint32_t STATION_ADDRESS2;\r
629     /* \r
630      * FIFO Configuration / Access registers (MCXFIF)\r
631      */\r
632     __IO uint32_t FIFO_CFG0;\r
633     __IO uint32_t FIFO_CFG1;\r
634     __IO uint32_t FIFO_CFG2;\r
635     __IO uint32_t FIFO_CFG3;\r
636     __IO uint32_t FIFO_CFG4;\r
637     __IO uint32_t FIFO_CFG5;\r
638     __IO uint32_t FIFO_RAM_ACCESS0;\r
639     __IO uint32_t FIFO_RAM_ACCESS1;\r
640     __IO uint32_t FIFO_RAM_ACCESS2;\r
641     __I  uint32_t FIFO_RAM_ACCESS3;\r
642     __IO uint32_t FIFO_RAM_ACCESS4;\r
643     __IO uint32_t FIFO_RAM_ACCESS5;\r
644     __IO uint32_t FIFO_RAM_ACCESS6;\r
645     __I  uint32_t FIFO_RAM_ACCESS7;\r
646     /*\r
647      * Statistics registers (MSTAT)\r
648      */\r
649     __IO uint32_t TR64;\r
650     __IO uint32_t TR127;\r
651     __IO uint32_t TR255;\r
652     __IO uint32_t TR511;\r
653     __IO uint32_t TR1K;\r
654     __IO uint32_t TRMAX;\r
655     __IO uint32_t TRMGV;\r
656     __IO uint32_t RBYT;\r
657     __IO uint32_t PPKT;\r
658     __IO uint32_t RFCS;\r
659     __IO uint32_t RMCA;\r
660     __IO uint32_t RBCA;\r
661     __IO uint32_t RXCF;\r
662     __IO uint32_t RXPF;\r
663     __IO uint32_t RXUO;\r
664     __IO uint32_t RALN;\r
665     __IO uint32_t RFLR;\r
666     __IO uint32_t RCDE;\r
667     __IO uint32_t RCSE;\r
668     __IO uint32_t RUND;\r
669     __IO uint32_t ROVR;\r
670     __IO uint32_t RFRG;\r
671     __IO uint32_t RJBR;\r
672     __IO uint32_t RDRP;\r
673     __IO uint32_t TBYT;\r
674     __IO uint32_t TPKT;\r
675     __IO uint32_t TMCA;\r
676     __IO uint32_t TBCA;\r
677     __IO uint32_t TXPF;\r
678     __IO uint32_t TDFR;\r
679     __IO uint32_t TEDF;\r
680     __IO uint32_t TSCL;\r
681     __IO uint32_t TMCL;\r
682     __IO uint32_t TLCL;\r
683     __IO uint32_t TXCL;\r
684     __IO uint32_t TNCL;\r
685     __IO uint32_t TPFH;\r
686     __IO uint32_t TDRP;\r
687     __IO uint32_t TJBR;\r
688     __IO uint32_t TFCS;\r
689     __IO uint32_t TXCF;\r
690     __IO uint32_t TOVR;\r
691     __IO uint32_t TUND;\r
692     __IO uint32_t TFRG;\r
693     __I  uint32_t CAR1;\r
694     __I  uint32_t CAR2;\r
695     __IO uint32_t CAM1;\r
696     __IO uint32_t CAM2;\r
697      uint32_t RESERVED1[16];\r
698     /*\r
699      * DMA registers (MAHBE)\r
700      */\r
701     __IO uint32_t DMA_TX_CTRL;\r
702     __IO uint32_t DMA_TX_DESC;\r
703     __IO uint32_t DMA_TX_STATUS;\r
704     __IO uint32_t DMA_RX_CTRL;\r
705     __IO uint32_t DMA_RX_DESC;\r
706     __IO uint32_t DMA_RX_STATUS;\r
707     __IO uint32_t DMA_IRQ_MASK;\r
708     __I  uint32_t DMA_IRQ;\r
709 } MAC_TypeDef;\r
710 \r
711 /*----------------------------------------------------------------------------*/\r
712 /*------------------------------ USB --------------------------------*/\r
713 /*----------------------------------------------------------------------------*/\r
714 typedef struct\r
715 {\r
716     __IO uint16_t   TX_MAX_P;\r
717     __IO uint16_t   TX_CSR;  \r
718     __IO uint16_t   RX_MAX_P;\r
719     __IO uint16_t   RX_CSR;  \r
720     __IO uint16_t   RX_COUNT;\r
721     __IO uint8_t    TX_TYPE; \r
722     __IO uint8_t    TX_INTERVAL;\r
723     __IO uint8_t    RX_TYPE;    \r
724     __IO uint8_t    RX_INTERVAL;\r
725     __IO uint8_t    RESERVED;\r
726     __IO uint8_t    FIFO_SIZE;  \r
727 } USB_endpoint_regs_t;\r
728 \r
729 typedef struct\r
730 {\r
731     __IO uint8_t    TX_FUNC_ADDR;\r
732     __IO uint8_t    UNUSED0;\r
733     __IO uint8_t    TX_HUB_ADDR;\r
734     __IO uint8_t    TX_HUB_PORT;\r
735     __IO uint8_t    RX_FUNC_ADDR;\r
736     __IO uint8_t    UNUSED1;\r
737     __IO uint8_t    RX_HUB_ADDR;\r
738     __IO uint8_t    RX_HUB_PORT;\r
739 } USB_tar_t;\r
740 \r
741 typedef union\r
742 {\r
743     struct\r
744     {\r
745         __IO uint32_t   VALUE;\r
746     } WORD;\r
747 \r
748     struct\r
749     {\r
750         __IO uint8_t    VALUE;\r
751         __IO uint8_t    RESERVED1;\r
752         __IO uint8_t    RESERVED2;\r
753         __IO uint8_t    RESERVED3;\r
754     } BYTE;\r
755 \r
756     struct\r
757     {\r
758         __IO uint16_t   VALUE;\r
759         __IO uint16_t   RESERVED;\r
760     } HALFWORD;\r
761 } USB_fifo_t;\r
762 \r
763 typedef union\r
764 {\r
765     struct                          \r
766     {\r
767         __IO uint16_t   TX_MAX_P;   \r
768         __IO uint16_t   CSR0;       \r
769         __IO uint16_t   RX_MAX_P;   \r
770         __IO uint16_t   RX_CSR;     \r
771         __IO uint16_t   COUNT0;     \r
772         __IO uint8_t    RESERVED0;\r
773         __IO uint8_t    RESERVED1;\r
774         __IO uint8_t    RESERVED2;\r
775         __IO uint8_t    RESERVED3;\r
776         __IO uint8_t    RESERVED4;\r
777         __IO uint8_t    CONFIG_DATA;  \r
778     } DEVICE_EP0;\r
779 \r
780     struct                            \r
781     {\r
782         __IO uint16_t   TX_MAX_P;\r
783         __IO uint16_t   TX_CSR;\r
784         __IO uint16_t   RX_MAX_P;\r
785         __IO uint16_t   RX_CSR;\r
786         __IO uint16_t   RX_COUNT;\r
787         __IO uint8_t    RESERVED0;\r
788         __IO uint8_t    RESERVED1;\r
789         __IO uint8_t    RESERVED2;\r
790         __IO uint8_t    RESERVED3;\r
791         __IO uint8_t    RESERVED4;\r
792         __IO uint8_t    FIFO_SIZE;\r
793     } DEVICE_EPN;\r
794 \r
795     struct                          \r
796     {\r
797         __IO uint16_t   TX_MAX_P;\r
798         __IO uint16_t   CSR0;\r
799         __IO uint16_t   RX_MAX_P;\r
800         __IO uint16_t   RX_CSR;\r
801         __IO uint16_t   COUNT0;\r
802         __IO uint8_t    TYPE0;\r
803         __IO uint8_t    NAK_LIMIT0;\r
804         __IO uint8_t    RX_TYPE;\r
805         __IO uint8_t    RX_INTERVAL;\r
806         __IO uint8_t    RESERVED0;\r
807         __IO uint8_t    CONFIG_DATA;\r
808     } HOST_EP0;\r
809 \r
810     struct                          \r
811     {\r
812         __IO uint16_t   TX_MAX_P;\r
813         __IO uint16_t   TX_CSR;\r
814         __IO uint16_t   RX_MAX_P;\r
815         __IO uint16_t   RX_CSR;\r
816         __IO uint16_t   RX_COUNT;\r
817         __IO uint8_t    TX_TYPE;\r
818         __IO uint8_t    TX_INTERVAL;\r
819         __IO uint8_t    RX_TYPE;\r
820         __IO uint8_t    RX_INTERVAL;\r
821         __IO uint8_t    RESERVED0;\r
822         __IO uint8_t    FIFO_SIZE;\r
823     } HOST_EPN;\r
824 \r
825 } USB_indexed_csr_t;\r
826 \r
827 typedef struct {\r
828     __IO uint32_t   IRQ;    \r
829     __IO uint32_t   CNTL;\r
830     __IO uint32_t   ADDR;\r
831     __IO uint32_t   COUNT;\r
832 } USB_DMA_channel;\r
833 \r
834 typedef struct\r
835 {\r
836     /* \r
837     * Common USB Registers \r
838     */\r
839     __IO uint8_t    FADDR;            \r
840     __IO uint8_t    POWER;            \r
841     __IO uint16_t   TX_IRQ;           \r
842     __IO uint16_t   RX_IRQ;           \r
843     __IO uint16_t   TX_IRQ_ENABLE;    \r
844     __IO uint16_t   RX_IRQ_ENABLE;    \r
845     __IO uint8_t    USB_IRQ;          \r
846     __IO uint8_t    USB_ENABLE;       \r
847     __IO uint16_t   FRAME;            \r
848     __IO uint8_t    INDEX;            \r
849     __IO uint8_t    TEST_MODE;        \r
850 \r
851     /*\r
852     * Indexed CSR\r
853     */\r
854     USB_indexed_csr_t   INDEXED_CSR;\r
855 \r
856     /*\r
857     * Endpoint FIFOs \r
858     */\r
859     USB_fifo_t      FIFO[16];         \r
860 \r
861     /*\r
862     * OTG, dynamic FIFO and version \r
863     */\r
864     __IO uint8_t    DEV_CTRL;         \r
865     __IO uint8_t    MISC;             \r
866     __IO uint8_t    TX_FIFO_SIZE;     \r
867     __IO uint8_t    RX_FIFO_SIZE;     \r
868     __IO uint16_t   TX_FIFO_ADDR;     \r
869     __IO uint16_t   RX_FIFO_ADDR;     \r
870     __IO uint32_t   VBUS_CSR;         \r
871     __IO uint16_t   HW_VERSION;       \r
872     __IO uint16_t   RESERVED;         \r
873 \r
874     /* \r
875     * ULPI and configuration registers \r
876     */\r
877     __IO uint8_t    ULPI_VBUS_CTRL;   \r
878     __IO uint8_t    ULPI_CARKIT_CTRL; \r
879     __IO uint8_t    ULPI_IRQ_MASK;    \r
880     __IO uint8_t    ULPI_IRQ_SRC;     \r
881     __IO uint8_t    ULPI_DATA_REG;    \r
882     __IO uint8_t    ULPI_ADDR_REG;    \r
883     __IO uint8_t    ULPI_CTRL_REG;    \r
884     __IO uint8_t    ULPI_RAW_DATA;    \r
885     __IO uint8_t    EP_INFO;          \r
886     __IO uint8_t    RAM_INFO;         \r
887     __IO uint8_t    LINK_INFO;        \r
888     __IO uint8_t    VP_LEN;           \r
889     __IO uint8_t    HS_EOF1;          \r
890     __IO uint8_t    FS_EOF1;          \r
891     __IO uint8_t    LS_EOF1;          \r
892     __IO uint8_t    SOFT_RST;         \r
893 \r
894     /* \r
895     * Target Address registers \r
896     */\r
897     USB_tar_t       TAR[16];          \r
898 \r
899     /* \r
900     * Endpoints CSR \r
901     */\r
902     USB_endpoint_regs_t ENDPOINT[16]; \r
903 \r
904     /* \r
905     * DMA \r
906     */\r
907     USB_DMA_channel DMA_CHANNEL[8];\r
908         \r
909     __IO uint32_t   RESERVED_EXT[32];\r
910     __IO uint32_t   RQ_PKT_CNT[16];   \r
911     __IO uint16_t   RX_DPBUF_DIS;\r
912     __IO uint16_t   TX_DPBUF_DIS;\r
913     __IO uint16_t   C_T_UCH;\r
914     __IO uint16_t   C_T_HHSRTN;\r
915     __IO uint16_t   C_T_HSBT;\r
916 \r
917 } MSS_USB_TypeDef;\r
918 \r
919 /*----------------------------------------------------------------------------*/\r
920 /*---------------------- eNVM Special Function Registers ---------------------*/\r
921 /*----------------------------------------------------------------------------*/\r
922 typedef struct\r
923 {\r
924     __I  uint8_t  AB[128];\r
925     __IO uint8_t  WD[128];\r
926     __I  uint8_t  RESERVED0[32];\r
927     __I  uint32_t STATUS;\r
928     __IO uint32_t RESERVED1;\r
929     __IO uint32_t NV_PAGE_STATUS;\r
930     __I  uint32_t NV_FREQRNG;\r
931     __I  uint32_t NV_DPD;\r
932     __IO uint32_t NV_CE;\r
933          uint32_t RESERVED2;\r
934     __IO uint32_t RESERVED3;\r
935     __IO uint32_t PAGE_LOCK;\r
936     __IO uint32_t DWSIZE;\r
937     __IO uint32_t CMD;\r
938     __IO uint32_t RESERVED4;\r
939     __I  uint32_t RESERVED5;\r
940     __IO uint32_t INTEN;\r
941     __IO uint32_t CLRHINT;\r
942          uint32_t RESERVED6[40];\r
943     __IO uint32_t REQ_ACCESS;\r
944 } NVM_TypeDef;\r
945 \r
946 typedef struct\r
947 {\r
948     __I  uint32_t AB[32];\r
949     __IO uint32_t WD[32];\r
950     __I  uint32_t RESERVED0[8];\r
951     __I  uint32_t STATUS;\r
952     __IO uint32_t RESERVED1;\r
953     __IO uint32_t NV_PAGE_STATUS;\r
954     __I  uint32_t NV_FREQRNG;\r
955     __I  uint32_t NV_DPD;\r
956     __IO uint32_t NV_CE;\r
957          uint32_t RESERVED2;\r
958     __IO uint32_t RESERVED3;\r
959     __IO uint32_t PAGE_LOCK;\r
960     __IO uint32_t DWSIZE;\r
961     __IO uint32_t CMD;\r
962     __IO uint32_t RESERVED4;\r
963     __I  uint32_t RESERVED5;\r
964     __IO uint32_t INTEN;\r
965     __IO uint32_t CLRHINT;\r
966          uint32_t RESERVED6[40];\r
967     __IO uint32_t REQ_ACCESS;\r
968 } NVM32_TypeDef;\r
969 \r
970 /*----------------------------------------------------------------------------*/\r
971 /*---------------------------------- COMBLK ----------------------------------*/\r
972 /*----------------------------------------------------------------------------*/\r
973 typedef struct\r
974 {\r
975     __IO uint32_t CONTROL;\r
976     __IO uint32_t STATUS;\r
977     __IO uint32_t INT_ENABLE;\r
978     __IO uint32_t RESERVED;\r
979     __IO uint32_t DATA8;\r
980     __IO uint32_t DATA32;\r
981     __IO uint32_t FRAME_START8;\r
982     __IO uint32_t FRAME_START32;\r
983 } COMBLK_TypeDef;\r
984 \r
985 /*----------------------------------------------------------------------------*/\r
986 /*--------------------- FPGA Fabric Interrupt Controller ---------------------*/\r
987 /*----------------------------------------------------------------------------*/\r
988 /*\r
989  * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a\r
990  * description of the following registers.\r
991  * The registers defined below can be accessed using INTERRUPT_CTRL as follows:\r
992  *      uint32_t reason0;\r
993  *      INTERRUPT_CTRL->INTERRUPT_MODE = 0;\r
994  *      reason0 = INTERRUPT_CTRL->INTERRUPT_REASON0;\r
995  */\r
996 typedef struct\r
997 {\r
998     __IO uint32_t INTERRUPT_ENABLE0;\r
999     __IO uint32_t INTERRUPT_ENABLE1;\r
1000     __IO uint32_t INTERRUPT_REASON0;\r
1001     __IO uint32_t INTERRUPT_REASON1;\r
1002     __IO uint32_t INTERRUPT_MODE;\r
1003 } INTERRUPT_CTRL_TypeDef;\r
1004 \r
1005 /*\r
1006  * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a\r
1007  * description of the following register bits.\r
1008  * The register bits defined below can be accessed using INTERRUPT_CTRL_BITBAND\r
1009  * as follows:\r
1010  *  setting/clearing a bit:\r
1011  *      INTERRUPT_CTRL_BITBAND->MAC_INT_ENBL = 1;\r
1012  *      INTERRUPT_CTRL_BITBAND->PDMAINTERRUPT_ENBL = 0;\r
1013  *  reading a bit value:\r
1014  *      uint32_t timer1_interrupt;\r
1015  *      timer1_interrupt = INTERRUPT_CTRL_BITBAND->TIMER1_INTR_STATUS;\r
1016  */\r
1017 typedef struct\r
1018 {\r
1019     /*\r
1020      * INTERRUPT_ENABLE0 register bitband definitions.\r
1021      */\r
1022     __IO uint32_t SPIINT0_ENBL;\r
1023     __IO uint32_t SPIINT1_ENBL;\r
1024     __IO uint32_t I2C_INT0_ENBL;\r
1025     __IO uint32_t I2C_INT1_ENBL;\r
1026     __IO uint32_t MMUART0_INTR_ENBL;\r
1027     __IO uint32_t MMUART1_INTR_ENBL;\r
1028     __IO uint32_t MAC_INT_ENBL;\r
1029     __IO uint32_t USB_MC_INT_ENBL;\r
1030     __IO uint32_t PDMAINTERRUPT_ENBL;\r
1031     __IO uint32_t HPD_XFR_CMP_INT_ENBL;\r
1032     __IO uint32_t TIMER1_INTR_ENBL;\r
1033     __IO uint32_t TIMER2_INTR_ENBL;\r
1034     __IO uint32_t CAN_INTR_ENBL;\r
1035     __IO uint32_t RTC_WAKEUP_INTR_ENBL;\r
1036     __IO uint32_t WDOGWAKEUPINT_ENBL;\r
1037     __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_ENBL;\r
1038     __IO uint32_t ENVM_INT0_ENBL;\r
1039     __IO uint32_t ENVM_INT1_ENBL;\r
1040     __IO uint32_t I2C_SMBALERT0_ENBL;\r
1041     __IO uint32_t I2C_SMBSUS0_ENBL;\r
1042     __IO uint32_t I2C_SMBALERT1_ENBL;\r
1043     __IO uint32_t I2C_SMBSUS1_ENBL;\r
1044     __IO uint32_t HPD_XFR_ERR_INT_ENBL;\r
1045     __IO uint32_t MSSDDR_PLL_LOCK_INT_ENBL;\r
1046     __IO uint32_t SW_ERRORINTERRUPT_ENBL;\r
1047     __IO uint32_t DDRB_INTR_ENBL;\r
1048     __IO uint32_t ECCINTR_ENBL;\r
1049     __IO uint32_t CACHE_ERRINTR_ENBL;\r
1050     __IO uint32_t SOFTINTERRUPT_ENBL;\r
1051     __IO uint32_t COMBLK_INTR_ENBL;\r
1052     __IO uint32_t USB_DMA_INT_ENBL;\r
1053     __IO uint32_t RESERVED0;\r
1054     \r
1055     /*\r
1056      * INTERRUPT_ENABLE1 register bitband definitions.\r
1057      */\r
1058     __IO uint32_t RESERVED1[3];\r
1059     __IO uint32_t MDDR_IO_CALIB_INT_ENBL;\r
1060     __IO uint32_t RESERVED2;\r
1061     __IO uint32_t FAB_PLL_LOCK_INT_ENBL;\r
1062     __IO uint32_t FAB_PLL_LOCKLOST_INT_ENBL;\r
1063     __IO uint32_t FIC64_INT_ENBL;\r
1064     __IO uint32_t RESERVED3[24];\r
1065     \r
1066     /*\r
1067      * INTERRUPT_REASON0 register bitband definitions.\r
1068      */\r
1069     __IO uint32_t SPIINT0_STATUS;\r
1070     __IO uint32_t SPIINT1_STATUS;\r
1071     __IO uint32_t I2C_INT0_STATUS;\r
1072     __IO uint32_t I2C_INT1_STATUS;\r
1073     __IO uint32_t MMUART0_INTR_STATUS;\r
1074     __IO uint32_t MMUART1_INTR_STATUS;\r
1075     __IO uint32_t MAC_INT_STATUS;\r
1076     __IO uint32_t USB_MC_INT_STATUS;\r
1077     __IO uint32_t PDMAINTERRUPT_STATUS;\r
1078     __IO uint32_t HPD_XFR_CMP_INT_STATUS;\r
1079     __IO uint32_t TIMER1_INTR_STATUS;\r
1080     __IO uint32_t TIMER2_INTR_STATUS;\r
1081     __IO uint32_t CAN_INTR_STATUS;\r
1082     __IO uint32_t RTC_WAKEUP_INTR_STATUS;\r
1083     __IO uint32_t WDOGWAKEUPINT_STATUS;\r
1084     __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_STATUS;\r
1085     __IO uint32_t ENVM_INT0_STATUS;\r
1086     __IO uint32_t ENVM_INT1_STATUS;\r
1087     __IO uint32_t I2C_SMBALERT0_STATUS;\r
1088     __IO uint32_t I2C_SMBSUS0_STATUS;\r
1089     __IO uint32_t I2C_SMBALERT1_STATUS;\r
1090     __IO uint32_t I2C_SMBSUS1_STATUS;\r
1091     __IO uint32_t HPD_XFR_ERR_INT_STATUS;\r
1092     __IO uint32_t MSSDDR_PLL_LOCK_INT_STATUS;\r
1093     __IO uint32_t SW_ERRORINTERRUPT_STATUS;\r
1094     __IO uint32_t DDRB_INTR_STATUS;\r
1095     __IO uint32_t ECCINTR_STATUS;\r
1096     __IO uint32_t CACHE_ERRINTR_STATUS;\r
1097     __IO uint32_t SOFTINTERRUPT_STATUS;\r
1098     __IO uint32_t COMBLK_INTR_STATUS;\r
1099     __IO uint32_t USB_DMA_INT_STATUS;\r
1100     __IO uint32_t RESERVED4;\r
1101     \r
1102     /*\r
1103      * INTERRUPT_REASON1 register bitband definitions.\r
1104      */\r
1105     __IO uint32_t RESERVED5[3];\r
1106     __IO uint32_t MDDR_IO_CALIB_INT_STATUS;\r
1107     __IO uint32_t RESERVED6;\r
1108     __IO uint32_t FAB_PLL_LOCK_INT_STATUS;\r
1109     __IO uint32_t FAB_PLL_LOCKLOST_INT_STATUS;\r
1110     __IO uint32_t FIC64_INT_STATUS;\r
1111     __IO uint32_t RESERVED7[24];\r
1112     \r
1113     /*\r
1114      * INTERRUPT_MODE register bitband definitions.\r
1115      */\r
1116     __IO uint32_t SELECT_MODE;\r
1117     __IO uint32_t RESERVED8[31];\r
1118     \r
1119 } INTERRUPT_CTRL_BitBand_TypeDef;\r
1120 \r
1121 /*----------------------------------------------------------------------------*/\r
1122 /*------------------------ DDR Controller APB Registers ----------------------*/\r
1123 /*----------------------------------------------------------------------------*/\r
1124 typedef struct\r
1125 {\r
1126     /*--------------------------------------------------------------------------\r
1127      * DDR Controller registers.\r
1128      * All registers are 16-bit wide unless mentioned beside the definition.\r
1129      */\r
1130     struct\r
1131     {\r
1132         __IO uint32_t DYN_SOFT_RESET_CR;\r
1133         __IO uint32_t RESERVED0;\r
1134         __IO uint32_t DYN_REFRESH_1_CR;\r
1135         __IO uint32_t DYN_REFRESH_2_CR;\r
1136         __IO uint32_t DYN_POWERDOWN_CR;\r
1137         __IO uint32_t DYN_DEBUG_CR;\r
1138         __IO uint32_t MODE_CR;\r
1139         __IO uint32_t ADDR_MAP_BANK_CR;\r
1140         __IO uint32_t ECC_DATA_MASK_CR;\r
1141         __IO uint32_t ADDR_MAP_COL_1_CR;\r
1142         __IO uint32_t ADDR_MAP_COL_2_CR;\r
1143         __IO uint32_t ADDR_MAP_ROW_1_CR;\r
1144         __IO uint32_t ADDR_MAP_ROW_2_CR;\r
1145         __IO uint32_t INIT_1_CR;\r
1146         __IO uint32_t CKE_RSTN_CYCLES_CR[2];     /* 0:27 bits are valid */\r
1147         __IO uint32_t INIT_MR_CR;\r
1148         __IO uint32_t INIT_EMR_CR;\r
1149         __IO uint32_t INIT_EMR2_CR;\r
1150         __IO uint32_t INIT_EMR3_CR;\r
1151         __IO uint32_t DRAM_BANK_TIMING_PARAM_CR;\r
1152         __IO uint32_t DRAM_RD_WR_LATENCY_CR;\r
1153         __IO uint32_t DRAM_RD_WR_PRE_CR;\r
1154         __IO uint32_t DRAM_MR_TIMING_PARAM_CR;\r
1155         __IO uint32_t DRAM_RAS_TIMING_CR;\r
1156         __IO uint32_t DRAM_RD_WR_TRNARND_TIME_CR;\r
1157         __IO uint32_t DRAM_T_PD_CR;\r
1158         __IO uint32_t DRAM_BANK_ACT_TIMING_CR;\r
1159         __IO uint32_t ODT_PARAM_1_CR;\r
1160         __IO uint32_t ODT_PARAM_2_CR;\r
1161         __IO uint32_t ADDR_MAP_COL_3_CR;\r
1162         __IO uint32_t MODE_REG_RD_WR_CR;\r
1163         __IO uint32_t MODE_REG_DATA_CR;\r
1164         __IO uint32_t PWR_SAVE_1_CR;\r
1165         __IO uint32_t PWR_SAVE_2_CR;\r
1166         __IO uint32_t ZQ_LONG_TIME_CR;\r
1167         __IO uint32_t ZQ_SHORT_TIME_CR;\r
1168         __IO uint32_t ZQ_SHORT_INT_REFRESH_MARGIN_CR[2];\r
1169         __IO uint32_t PERF_PARAM_1_CR;\r
1170         __IO uint32_t HPR_QUEUE_PARAM_CR[2];\r
1171         __IO uint32_t LPR_QUEUE_PARAM_CR[2];\r
1172         __IO uint32_t WR_QUEUE_PARAM_CR;\r
1173         __IO uint32_t PERF_PARAM_2_CR;\r
1174         __IO uint32_t PERF_PARAM_3_CR;\r
1175         __IO uint32_t DFI_RDDATA_EN_CR;\r
1176         __IO uint32_t DFI_MIN_CTRLUPD_TIMING_CR;\r
1177         __IO uint32_t DFI_MAX_CTRLUPD_TIMING_CR;\r
1178         __IO uint32_t DFI_WR_LVL_CONTROL_CR[2];\r
1179         __IO uint32_t DFI_RD_LVL_CONTROL_CR[2];\r
1180         __IO uint32_t DFI_CTRLUPD_TIME_INTERVAL_CR;\r
1181         __IO uint32_t DYN_SOFT_RESET_CR2;\r
1182         __IO uint32_t AXI_FABRIC_PRI_ID_CR;\r
1183         __I  uint32_t DDRC_SR;\r
1184         __I  uint32_t SINGLE_ERR_CNT_SR;\r
1185         __I  uint32_t DOUBLE_ERR_CNT_SR;\r
1186         __I  uint32_t LUE_SYNDROME_SR[5];       /* LUE : Last Uncorrected Error */\r
1187         __I  uint32_t LUE_ADDRESS_SR[2];        \r
1188         __I  uint32_t LCE_SYNDROME_SR[5];       /* LCE : Last Corrected Error */\r
1189         __I  uint32_t LCE_ADDRESS_SR[2];\r
1190         __I  uint32_t LCB_NUMBER_SR;            /* LCB : Last Corrected Bit */\r
1191         __I  uint32_t LCB_MASK_SR[4];          \r
1192         __I  uint32_t ECC_INT_SR;\r
1193         __O  uint32_t ECC_INT_CLR_REG;\r
1194         __I  uint32_t ECC_OUTPUT_DATA_SR;\r
1195         __IO uint32_t RESERVED1[46];\r
1196     } ddrc;\r
1197     \r
1198     /*--------------------------------------------------------------------------\r
1199      * DDR PHY configuration registers\r
1200      */\r
1201     struct \r
1202     {\r
1203         __IO uint32_t DYN_BIST_TEST_CR;\r
1204         __IO uint32_t DYN_BIST_TEST_ERRCLR_CR[3];\r
1205         __IO uint32_t BIST_TEST_SHIFT_PATTERN_CR[3];\r
1206         __IO uint32_t LOOPBACK_TEST_CR;\r
1207         __IO uint32_t BOARD_LOOPBACK_CR;\r
1208         __IO uint32_t CTRL_SLAVE_RATIO_CR;\r
1209         __IO uint32_t CTRL_SLAVE_FORCE_CR;\r
1210         __IO uint32_t CTRL_SLAVE_DELAY_CR;\r
1211         __IO uint32_t DATA_SLICE_IN_USE_CR;\r
1212         __IO uint32_t LVL_NUM_OF_DQ0_CR;\r
1213         __IO uint32_t DQ_OFFSET_CR[3];\r
1214         __IO uint32_t DIS_CALIB_RST_CR;\r
1215         __IO uint32_t DLL_LOCK_DIFF_CR;\r
1216         __IO uint32_t FIFO_WE_IN_DELAY_CR[3];\r
1217         __IO uint32_t FIFO_WE_IN_FORCE_CR;\r
1218         __IO uint32_t FIFO_WE_SLAVE_RATIO_CR[4];\r
1219         __IO uint32_t GATELVL_INIT_MODE_CR;\r
1220         __IO uint32_t GATELVL_INIT_RATIO_CR[4];\r
1221         __IO uint32_t LOCAL_ODT_CR;\r
1222         __IO uint32_t INVERT_CLKOUT_CR;\r
1223         __IO uint32_t RD_DQS_SLAVE_DELAY_CR[3];\r
1224         __IO uint32_t RD_DQS_SLAVE_FORCE_CR;\r
1225         __IO uint32_t RD_DQS_SLAVE_RATIO_CR[4];\r
1226         __IO uint32_t WR_DQS_SLAVE_DELAY_CR[3];\r
1227         __IO uint32_t WR_DQS_SLAVE_FORCE_CR;\r
1228         __IO uint32_t WR_DQS_SLAVE_RATIO_CR[4];\r
1229         __IO uint32_t WR_DATA_SLAVE_DELAY_CR[3];\r
1230         __IO uint32_t WR_DATA_SLAVE_FORCE_CR;\r
1231         __IO uint32_t WR_DATA_SLAVE_RATIO_CR[4];\r
1232         __IO uint32_t WRLVL_INIT_MODE_CR;\r
1233         __IO uint32_t WRLVL_INIT_RATIO_CR[4];\r
1234         __IO uint32_t WR_RD_RL_CR;\r
1235         __IO uint32_t RDC_FIFO_RST_ERRCNTCLR_CR;\r
1236         __IO uint32_t RDC_WE_TO_RE_DELAY_CR;\r
1237         __IO uint32_t USE_FIXED_RE_CR;\r
1238         __IO uint32_t USE_RANK0_DELAYS_CR;\r
1239         __IO uint32_t USE_LVL_TRNG_LEVEL_CR;\r
1240         __IO uint32_t CONFIG_CR;\r
1241         __IO uint32_t RD_WR_GATE_LVL_CR;\r
1242         __IO uint32_t DYN_RESET_CR;\r
1243 \r
1244         /*----------------------------------------------------------------------\r
1245          * DDR PHY status registers\r
1246          */    \r
1247         __I  uint32_t LEVELLING_FAILURE_SR;\r
1248         __I  uint32_t BIST_ERROR_SR[3];\r
1249         __I  uint32_t WRLVL_DQS_RATIO_SR[4];\r
1250         __I  uint32_t WRLVL_DQ_RATIO_SR[4];\r
1251         __I  uint32_t RDLVL_DQS_RATIO_SR[4];\r
1252         __I  uint32_t FIFO_SR[4];\r
1253         __I  uint32_t MASTER_DLL_SR;\r
1254         __I  uint32_t DLL_SLAVE_VALUE_SR[2];\r
1255         __I  uint32_t STATUS_OF_IN_DELAY_VAL_SR[2];\r
1256         __I  uint32_t STATUS_OF_OUT_DELAY_VAL_SR[2];\r
1257         __I  uint32_t DLL_LOCK_AND_SLAVE_VAL_SR;\r
1258         __I  uint32_t CTRL_OUTPUT_FILTER_SR;\r
1259         __I  uint32_t CTRL_OF_OUTPUT_DELAY_SR;\r
1260         __I  uint32_t RD_DQS_SLAVE_DLL_VAL_SR[3];\r
1261         __I  uint32_t WR_DATA_SLAVE_DLL_VAL_SR[3];\r
1262         __I  uint32_t FIFO_WE_SLAVE_DLL_VAL_SR[3];\r
1263         __I  uint32_t WR_DQS_SLAVE_DLL_VAL_SR[3];\r
1264         __I  uint32_t CTRL_SLAVE_DLL_VAL_SR; \r
1265         __IO uint32_t RESERVED2[13];\r
1266     } phy;\r
1267     \r
1268     /*--------------------------------------------------------------------------\r
1269      * FIC-64 registers\r
1270      * These registers are 16-bit wide and 32-bit aligned.\r
1271      */\r
1272     struct \r
1273     {\r
1274         __IO uint32_t NB_ADDR_CR;\r
1275         __IO uint32_t NBRWB_SIZE_CR;\r
1276         __IO uint32_t WB_TIMEOUT_CR;\r
1277         __IO uint32_t HPD_SW_RW_EN_CR;\r
1278         __IO uint32_t HPD_SW_RW_INVAL_CR;\r
1279         __IO uint32_t SW_WR_ERCLR_CR;\r
1280         __IO uint32_t ERR_INT_ENABLE_CR;\r
1281         __IO uint32_t NUM_AHB_MASTERS_CR;\r
1282         __I  uint32_t HPB_ERR_ADDR_SR[2];\r
1283         __I  uint32_t SW_ERR_ADDR_SR[2];\r
1284         __I  uint32_t HPD_SW_WRB_EMPTY_SR;\r
1285         __I  uint32_t SW_HPB_LOCKOUT_SR;\r
1286         __I  uint32_t SW_HPD_WERR_SR;\r
1287              uint32_t RESERVED0;\r
1288         __IO uint32_t LOCK_TIMEOUTVAL_CR[2];\r
1289         __IO uint32_t LOCK_TIMEOUT_EN_CR;\r
1290              uint32_t RESERVED1[5];\r
1291         __IO uint32_t RDWR_ERR_SR;\r
1292     } fic;\r
1293 } DDRCore_TypeDef;\r
1294 \r
1295 /*----------------------------------------------------------------------------*/\r
1296 /*--------------------- MDDR APB Configuration Registers ---------------------*/\r
1297 /*----------------------------------------------------------------------------*/\r
1298 typedef struct\r
1299 {\r
1300     /*--------------------------------------------------------------------------\r
1301      * MDDR core configuration registers.\r
1302      * These registers are to be accessed as:\r
1303      * MDDR->core.fic.<regname> = <value>;\r
1304      * MDDR->core.phy.<regname> = <value>;\r
1305      * MDDR->core.ddrc.<regname> = <value>;\r
1306      */\r
1307     DDRCore_TypeDef core;\r
1308     \r
1309 } MDDR_TypeDef;\r
1310 \r
1311 \r
1312 /*----------------------------------------------------------------------------*/\r
1313 /*--------------------- FDDR APB Configuration Registers ---------------------*/\r
1314 /*----------------------------------------------------------------------------*/\r
1315 typedef struct \r
1316 {\r
1317     /*--------------------------------------------------------------------------\r
1318      * FDDR core configuration registers. These are same as corresponding \r
1319      * MDDR registers. \r
1320      * These registers are to be accessed as:\r
1321      * FDDR->core.fic.<regname> = <value>;\r
1322      * FDDR->core.phy.<regname> = <value>;\r
1323      * FDDR->core.ddrc.<regname> = <value>;\r
1324      */\r
1325     DDRCore_TypeDef core;\r
1326     __IO uint32_t RESERVED[39];\r
1327     \r
1328     /*--------------------------------------------------------------------------\r
1329      * FDDR system registers\r
1330      * These registers are to be accessed as:\r
1331      * FDDR->sysreg.PLL_CONFIG_LOW_2 = 0x04u;\r
1332      */\r
1333     struct \r
1334     {\r
1335         __IO uint32_t PLL_CONFIG_LOW_1;\r
1336         __IO uint32_t PLL_CONFIG_LOW_2;\r
1337         __IO uint32_t PLL_CONFIG_HIGH;\r
1338         __IO uint32_t FACC_CLK_EN;\r
1339         __IO uint32_t FACC_MUX_CONFIG;\r
1340         __IO uint32_t FACC_DIVISOR_RATIO;\r
1341         __IO uint32_t PLL_DELAY_LINE_SEL;\r
1342         __IO uint32_t SOFT_RESET; \r
1343         __IO uint32_t IO_CALIB;\r
1344         __IO uint32_t INTERRUPT_ENABLE;\r
1345         __IO uint32_t AXI_AHB_MODE_SEL;\r
1346         __IO uint32_t PHY_SELF_REF_EN;\r
1347         __IO uint32_t FAB_PLL_CLK_SR;\r
1348         __IO uint32_t FPLL_CLK_SR;\r
1349         __IO uint32_t CLK_CALIB_STATUS;\r
1350         __IO uint32_t INTERRUPT_SR;\r
1351         __IO uint32_t CLK_CALIB_CONFIG;\r
1352         __IO uint32_t IO_CALIB_SR;\r
1353         __IO uint32_t FATC_RESET;\r
1354     } sysreg;\r
1355 } FDDR_TypeDef;\r
1356 \r
1357 /*----------------------------------------------------------------------------*/\r
1358 /*------------------------------ SERDES Interface ----------------------------*/\r
1359 /*----------------------------------------------------------------------------*/\r
1360 \r
1361 /*------------------------------------------------------------------------------\r
1362   AXI window\r
1363  */\r
1364 typedef struct\r
1365 {\r
1366     __IO    uint32_t    base;\r
1367     __IO    uint32_t    size;\r
1368     __IO    uint32_t    window_lsb;\r
1369     __IO    uint32_t    window_msb;\r
1370 } axi_window_TypeDef;\r
1371 \r
1372 /*------------------------------------------------------------------------------\r
1373   PCI Express Bridge Core registers.\r
1374   \r
1375   This data structure is used to access to the registers of the PCI Express\r
1376   Bridge Core.\r
1377  */\r
1378 typedef struct\r
1379 {\r
1380     /*======================= Information registers ======================*/\r
1381     /**\r
1382       Information register: vendor_id & device_id\r
1383       bits [15:0]   vendor_id\r
1384       bits [31:16]  device_id\r
1385      */\r
1386     /* 0x000 */\r
1387     __IO    uint32_t    VID_DEVID;\r
1388 \r
1389     /**\r
1390       PCI Express Control & Status Register: cfg_prmscr\r
1391      */\r
1392     /* 0x004 */\r
1393     __IO    uint32_t    CFG_PRMSCR;\r
1394     \r
1395     /**\r
1396       Information register: class_code\r
1397      */\r
1398     /* 0x008 */\r
1399     __IO    uint32_t    CLASS_CODE;\r
1400     \r
1401     __IO    uint32_t    RESERVED0;\r
1402     \r
1403     /**\r
1404       Bridge Configuration Register: bar0\r
1405      */\r
1406     /* 0x010 */\r
1407     __IO    uint32_t    BAR0;\r
1408     \r
1409     /**\r
1410       Bridge Configuration Register: bar1\r
1411      */\r
1412     /* 0x014 */\r
1413     __IO    uint32_t    BAR1;\r
1414     \r
1415     /**\r
1416       Bridge Configuration Register: bar2\r
1417      */\r
1418     /* 0x018 */\r
1419     __IO    uint32_t    BAR2;\r
1420     \r
1421     /**\r
1422       Bridge Configuration Register: bar3\r
1423      */\r
1424     /* 0x01C */\r
1425     __IO    uint32_t    BAR3;\r
1426     \r
1427     /**\r
1428       Bridge Configuration Register: bar4\r
1429      */\r
1430     /* 0x020 */\r
1431     __IO    uint32_t    BAR4;\r
1432     \r
1433     /**\r
1434       Bridge Configuration Register: bar5\r
1435      */\r
1436     /* 0x024 */\r
1437     __IO    uint32_t    BAR5;\r
1438     \r
1439     __IO    uint32_t    RESERVED1;\r
1440     \r
1441     /**\r
1442       Information register: subsystem_id\r
1443      */\r
1444     /* 0x02C */\r
1445     __IO    uint32_t    SUBSYSTEM_ID;\r
1446     \r
1447     /**\r
1448       PCI Express Control & Status Register: pcie_devscr\r
1449      */\r
1450     /* 0x030 */\r
1451     __IO    uint32_t    PCIE_DEVSCR;\r
1452     \r
1453     /**\r
1454       PCI Express Control & Status Register: pcie_linkscr\r
1455      */\r
1456     /* 0x034 */\r
1457     __IO    uint32_t    PCIE_LINKSCR;\r
1458     \r
1459     /**\r
1460       Bridge Configuration Register: tc_vc_mapping\r
1461      */\r
1462     /* 0x038 */\r
1463     __IO    uint32_t    TC_VC_MAPPING;\r
1464     \r
1465     /**\r
1466       Information register: captured_bus_device_nb\r
1467      */\r
1468     /* 0x03C */\r
1469     __IO    uint32_t    CAPTURED_BUS_DEVICE_NB;\r
1470     \r
1471     /**\r
1472       Endpoint Interrupt register: msi_ctrl_status\r
1473      */\r
1474     /* 0x040 */\r
1475     __IO    uint32_t    MSI_CTRL_STATUS;\r
1476     \r
1477     /**\r
1478       Power Management register: ltssm\r
1479      */\r
1480     /* 0x044 */\r
1481     __IO    uint32_t    LTSSM;\r
1482     \r
1483     /**\r
1484       Power Management register: power_mgt_capability\r
1485      */\r
1486     /* 0x048 */\r
1487     __IO    uint32_t    POWER_MGT_CAPABILITY;\r
1488     \r
1489     /**\r
1490       PCI Express Control & Status Register: cfg_pmscr\r
1491      */\r
1492     /* 0x04C */\r
1493     __IO    uint32_t    CFG_PMSCR;\r
1494     \r
1495     /**\r
1496       Bridge Configuration Register: aer_ecrc_capability\r
1497      */\r
1498     /* 0x050 */\r
1499     __IO    uint32_t    AER_ECRC_CAPABILITY;\r
1500     \r
1501     /**\r
1502       Bridge Configuration Register: vc1_capability\r
1503      */\r
1504     /* 0x054 */\r
1505     __IO    uint32_t    VC1_CAPABILITY;\r
1506     \r
1507     /**\r
1508       Bridge Configuration Register: max_payload_size\r
1509      */\r
1510     /* 0x058 */\r
1511     __IO    uint32_t    MAX_PAYLOAD_SIZE;\r
1512     \r
1513     /**\r
1514       Bridge Configuration Register: clkreq\r
1515      */\r
1516     /* 0x05C */\r
1517     __IO    uint32_t    CLKREQ;\r
1518     \r
1519     /**\r
1520       Power Management register: aspm_l0s_capability\r
1521      */\r
1522     /* 0x060 */\r
1523     __IO    uint32_t    ASPM_L0S_CAPABILITY;\r
1524     \r
1525     /**\r
1526       Power Management register: aspm_l1_capability\r
1527      */\r
1528     /* 0x064 */\r
1529     __IO    uint32_t    ASPM_L1_CAPABILITY;\r
1530     \r
1531     /**\r
1532       Power Management register: timeout_completion\r
1533      */\r
1534     /* 0x068 */\r
1535     __IO    uint32_t    TIMEOUT_COMPLETION;\r
1536 \r
1537     __IO    uint32_t    RESERVED2;\r
1538     \r
1539     /**\r
1540       Power Management register: pm_data_scale\r
1541      */\r
1542     /* 0x070 */\r
1543     __IO    uint32_t    PM_DATA_SCALE[4];\r
1544     \r
1545     /**\r
1546       Endpoint Interrupt register: msi\r
1547      */\r
1548     /* 0x080 */\r
1549     __IO    uint32_t    MSI[8];\r
1550     \r
1551     /**\r
1552       Bridge Configuration Register: error_counter\r
1553      */\r
1554     /* 0x0A0 */\r
1555     __IO    uint32_t    ERROR_COUNTER[4];\r
1556     \r
1557     /**\r
1558       Bridge Configuration Register: credit_allocation\r
1559      */\r
1560     /* 0x0B0 */\r
1561     __IO    uint32_t    CREDIT_ALLOCATION[4];\r
1562     \r
1563     /**\r
1564       Address Mapping register: axi_slave_window\r
1565      */\r
1566     /* 0x0C0 */\r
1567     axi_window_TypeDef      AXI_SLAVE_WINDOW[4];\r
1568     \r
1569     /**\r
1570       Address Mapping register: axi_master_window\r
1571      */\r
1572     /* 0x100 */\r
1573     axi_window_TypeDef      AXI_MASTER_WINDOW[4];\r
1574     \r
1575     /**\r
1576       Rootport Interrupt register: imask\r
1577      */\r
1578     /* 0x140 */\r
1579     __IO    uint32_t    IMASK;\r
1580     \r
1581     /**\r
1582       Rootport Interrupt register: istatus\r
1583      */\r
1584     /* 0x144 */\r
1585     __IO    uint32_t    ISTATUS;\r
1586     \r
1587     /**\r
1588       Rootport Interrupt register: icmd\r
1589      */\r
1590     /* 0x148 */\r
1591     __IO    uint32_t    ICMD;\r
1592     \r
1593     /**\r
1594       Rootport Interrupt register: irstatus\r
1595      */\r
1596     /* 0x14C */\r
1597     __IO    uint32_t    IRSTATUS;\r
1598     \r
1599     /**\r
1600       Rootport Interrupt register: imsiaddr\r
1601      */\r
1602     /* 0x150 */\r
1603     __IO    uint32_t    IMSIADDR;\r
1604     \r
1605     /**\r
1606       PCI Express Control & Status Register: slotcap\r
1607      */\r
1608     /* 0x154 */\r
1609     __IO    uint32_t    SLOTCAP;\r
1610     \r
1611     /**\r
1612       PCI Express Control & Status Register: slotcsr\r
1613      */\r
1614     /* 0x158 */\r
1615     __IO    uint32_t    SLOTCSR;\r
1616     \r
1617     /**\r
1618       PCI Express Control & Status Register: rootcsr\r
1619      */\r
1620     /* 0x15C */\r
1621     __IO    uint32_t    ROOTCSR;\r
1622     \r
1623     /**\r
1624       Configuration Register: cfg_control\r
1625      */\r
1626     /* 0x160 */\r
1627     __IO    uint32_t    CFG_CONTROL;\r
1628     \r
1629     /**\r
1630       Configuration Register: cfg_write_data\r
1631      */\r
1632     /* 0x164 */\r
1633     __IO    uint32_t    CFG_WRITE_DATA;\r
1634     \r
1635     /**\r
1636       Configuration Register: cfg_read_data\r
1637      */\r
1638     /* 0x168 */\r
1639     __IO    uint32_t    CFG_READ_DATA;\r
1640     \r
1641     /**\r
1642       Information register: info\r
1643      */\r
1644     /* 0x16C */\r
1645     __IO    uint32_t    INFO;\r
1646     \r
1647     /**\r
1648       Input/Output Control Register: io_control\r
1649      */\r
1650     /* 0x170 */\r
1651     __IO    uint32_t    IO_CONTROL;\r
1652     \r
1653     /**\r
1654       Input/Output Control Register: io_addr\r
1655      */\r
1656     /* 0x174 */\r
1657     __IO    uint32_t    IO_ADDR;\r
1658     \r
1659     /**\r
1660       Input/Output Control Register: io_write_data\r
1661      */\r
1662     /* 0x178 */\r
1663     __IO    uint32_t    IO_WRITE_DATA;\r
1664     \r
1665     /**\r
1666       Input/Output Control Register: io_read_data\r
1667      */\r
1668     /* 0x17C */\r
1669     __IO    uint32_t    IO_READ_DATA;\r
1670     \r
1671     /**\r
1672       Configuration Register: cfg_fbe\r
1673      */\r
1674     /* 0x180 */\r
1675     __IO    uint32_t    CFG_FBE;\r
1676     \r
1677     /**\r
1678       Address Mapping register: prefetch_io_window\r
1679      */\r
1680     /* 0x184 */\r
1681     __IO    uint32_t    PREFETCH_IO_WINDOW;\r
1682     \r
1683     __IO    uint32_t    RESERVED4[31];\r
1684     \r
1685     /**\r
1686       Bridge Configuration Register: pcie_config\r
1687      */\r
1688     /* 0x204 */\r
1689     __IO    uint32_t    PCIE_CONFIG;\r
1690     \r
1691     __IO    uint32_t    RESERVED5[10];\r
1692     \r
1693     /**\r
1694       PCI Express Control & Status Register: pcie_dev2scr\r
1695      */\r
1696     /* 0x230 */\r
1697     __IO    uint32_t    PCIE_DEV2SCR;\r
1698     \r
1699     /**\r
1700       PCI Express Control & Status Register: pcie_link2scr\r
1701      */\r
1702     /* 0x234 */\r
1703     __IO    uint32_t    PCIE_LINK2SCR;\r
1704     \r
1705     __IO    uint32_t    RESERVED6[10];\r
1706     \r
1707     /**\r
1708       Power Management register: aspm_l0s_gen2 capability\r
1709      */\r
1710     /* 0x260 */\r
1711     __IO    uint32_t    ASPM_L0S_GEN2;\r
1712     \r
1713     __IO    uint32_t    RESERVED7[39];\r
1714     \r
1715     /**\r
1716       Bridge Configuration Register: k_cnt_config\r
1717      */\r
1718     /* 0x300 */\r
1719     __IO    uint32_t    K_CNT_CONFIG[6];\r
1720     \r
1721     __IO    uint32_t    RESERVED8[826];\r
1722     \r
1723 } PCIE_TypeDef;\r
1724  \r
1725 /*------------------------------------------------------------------------------\r
1726   SERDESIF System Registers.\r
1727  */\r
1728 typedef struct\r
1729 {\r
1730     __IO    uint32_t    SER_PLL_CONFIG_LOW;\r
1731     __IO    uint32_t    SER_PLL_CONFIG_HIGH;\r
1732     __IO    uint32_t    SERDESIF_SOFT_RESET;\r
1733     __IO    uint32_t    SER_INTERRUPT_ENABLE;\r
1734     __IO    uint32_t    CONFIG_AXI_AHB_BRIDGE;\r
1735     __IO    uint32_t    CONFIG_ECC_INTR_ENABLE;\r
1736     __IO    uint32_t    CONFIG_TEST_IN;\r
1737     __IO    uint32_t    TEST_OUT_READ_ADDR;\r
1738     __IO    uint32_t    CONFIG_PCIE_PM;\r
1739     __IO    uint32_t    CONFIG_PHY_MODE_0;\r
1740     __IO    uint32_t    CONFIG_PHY_MODE_1;\r
1741     __IO    uint32_t    CONFIG_PHY_MODE_2;\r
1742     __IO    uint32_t    CONFIG_PCIE_0;\r
1743     __IO    uint32_t    CONFIG_PCIE_1;\r
1744     __IO    uint32_t    CONFIG_PCIE_2;\r
1745     __IO    uint32_t    CONFIG_PCIE_3;\r
1746     __IO    uint32_t    CONFIG_BAR_SIZE_0_1;\r
1747     __IO    uint32_t    CONFIG_BAR_SIZE_2_3;\r
1748     __IO    uint32_t    CONFIG_BAR_SIZE_3_4;\r
1749     __IO    uint32_t    SER_CLK_STATUS;\r
1750     __IO    uint32_t    SER_CLK_CALIB_STATUS;\r
1751     __IO    uint32_t    TEST_OUT_READ_DATA;\r
1752     __IO    uint32_t    SER_INTERRUPT;\r
1753     __IO    uint32_t    SERDESIF_INTR_STATUS;\r
1754     __IO    uint32_t    SER_CLK_CALIB_CONFIG;\r
1755     __IO    uint32_t    REFCLK_SEL;\r
1756     __IO    uint32_t    PCLK_SEL;\r
1757     __IO    uint32_t    EPCS_RSTN_SEL;\r
1758     __IO    uint32_t    CHIP_ENABLES;\r
1759     __IO    uint32_t    SERDES_TEST_OUT;\r
1760     __IO    uint32_t    SERDES_FATC_RESET;\r
1761     __IO    uint32_t    RC_OSC_SPLL_REFCLK_SEL;\r
1762     __IO    uint32_t    SPREAD_SPECTRUM_CLK;\r
1763     __IO    uint32_t    CONF_AXI_MSTR_WNDW_0;\r
1764     __IO    uint32_t    CONF_AXI_MSTR_WNDW_1;\r
1765     __IO    uint32_t    CONF_AXI_MSTR_WNDW_2;\r
1766     __IO    uint32_t    CONF_AXI_MSTR_WNDW_3;\r
1767     __IO    uint32_t    CONF_AXI_SLV_WNDW_0;\r
1768     __IO    uint32_t    CONF_AXI_SLV_WNDW_1;\r
1769     __IO    uint32_t    CONF_AXI_SLV_WNDW_2;\r
1770     __IO    uint32_t    CONF_AXI_SLV_WNDW_3;\r
1771     __IO    uint32_t    DESKEW_CONFIG;\r
1772     __IO    uint32_t    DEBUG_MODE_KEY;\r
1773     __IO    uint32_t    RESERVED0;\r
1774     __IO    uint32_t    EXTRA_BITS;\r
1775 } SERDES_INTF_SYSREG_TypeDef;\r
1776 \r
1777 /*------------------------------------------------------------------------------\r
1778   SERDES PHY registers\r
1779  */\r
1780 typedef struct\r
1781 {\r
1782     /**\r
1783       Control register 0\r
1784      */\r
1785     __IO    uint32_t    CR0;\r
1786     \r
1787     /**\r
1788       Clock count for error counter decrement\r
1789      */\r
1790     __IO    uint32_t    ERRCNT_DEC;\r
1791     \r
1792     /**\r
1793       Error counter threshold - Rx idle detect max latency\r
1794      */\r
1795     __IO    uint32_t    RXIDLE_MAX_ERRCNT_THR;\r
1796     \r
1797     /**\r
1798       Tx Impedance ratio\r
1799      */\r
1800     __IO    uint32_t    IMPED_RATIO;\r
1801     \r
1802     /**\r
1803       PLL F settings and PCLK ratio\r
1804      */\r
1805     __IO    uint32_t    PLL_F_PCLK_RATIO;\r
1806     \r
1807     /**\r
1808       PLL M & N settings\r
1809      */\r
1810     __IO    uint32_t    PLL_M_N;\r
1811     \r
1812     /**\r
1813       250ns timer base count\r
1814      */\r
1815     __IO    uint32_t    CNT250NS_MAX;\r
1816     \r
1817     /**\r
1818       Rx Equalization amplitude ratio\r
1819      */\r
1820     __IO    uint32_t    RE_AMP_RATIO;\r
1821     \r
1822     /**\r
1823       Rx Equalization Cut frequency\r
1824      */\r
1825     __IO    uint32_t    RE_CUT_RATIO;\r
1826     \r
1827     /**\r
1828       Tx Amplitude ratio\r
1829      */\r
1830     __IO    uint32_t    TX_AMP_RATIO;\r
1831     \r
1832     /**\r
1833       Tx Post-Cursor ratio\r
1834      */\r
1835     __IO    uint32_t    TX_PST_RATIO;\r
1836     \r
1837     /**\r
1838       Tx Pre-Cursor ratio\r
1839      */\r
1840     __IO    uint32_t    TX_PRE_RATIO;\r
1841     \r
1842     /**\r
1843       End of calibration counter\r
1844      */\r
1845     __IO    uint32_t    ENDCALIB_MAX;\r
1846     \r
1847     /**\r
1848       Calibration stability counter\r
1849      */\r
1850     __IO    uint32_t    CALIB_STABILITY_COUNT;\r
1851     \r
1852     /**\r
1853       Power down feature\r
1854      */\r
1855     __IO    uint32_t    POWER_DOWN;\r
1856     \r
1857     /**\r
1858       Rx offset counter\r
1859      */\r
1860     __IO    uint32_t    RX_OFFSET_COUNT;\r
1861     \r
1862     /**\r
1863       PLL F settings and PCLK ratio (in PCIe 5 Gbps speed)\r
1864      */\r
1865     __IO    uint32_t    PLL_F_PCLK_RATIO_5GBPS;\r
1866     \r
1867     /**\r
1868       PLL M & N sttings (in PCIe 5 Gbps spped)\r
1869      */\r
1870     __IO    uint32_t    PLL_M_N_5GBPS;\r
1871     \r
1872     /**\r
1873       250ns timer base count (in PCIe 5 Gbps speed)\r
1874      */\r
1875     __IO    uint32_t    CNT250NS_MAX_5GBPS;\r
1876     \r
1877     /**\r
1878       reserved\r
1879      */\r
1880     __IO    uint32_t    RESERVED;\r
1881     \r
1882     /**\r
1883       Tx Post-Cursor ratio with TxDeemp=0, Full swing\r
1884      */\r
1885     __IO    uint32_t    TX_PST_RATIO_DEEMP0_FULL;\r
1886     \r
1887     /**\r
1888       Tx Pre-Cursor ratio TxDeemp=0, full swing\r
1889      */\r
1890     __IO    uint32_t    TX_PRE_RATIO_DEEMP0_FULL;\r
1891     \r
1892     /**\r
1893       Tx Post-Cursor ratio with TxDeemp=1, Full swing\r
1894      */\r
1895     __IO    uint32_t    TX_PST_RATIO_DEEMP1_FULL;\r
1896     \r
1897     /**\r
1898       Tx Pre-Cursor ratio TxDeemp=1, full swing\r
1899      */\r
1900     __IO    uint32_t    TX_PRE_RATIO_DEEMP1_FULL;\r
1901     \r
1902     /**\r
1903       Tx Amplitude ratio TxMargin=0, full swing\r
1904      */\r
1905     __IO    uint32_t    TX_AMP_RATIO_MARGIN0_FULL;\r
1906     \r
1907     /**\r
1908       Tx Amplitude ratio TxMargin=1, full swing\r
1909      */\r
1910     __IO    uint32_t    TX_AMP_RATIO_MARGIN1_FULL;\r
1911     \r
1912     /**\r
1913       Tx Amplitude ratio TxMargin=2, full swing\r
1914      */\r
1915     __IO    uint32_t    TX_AMP_RATIO_MARGIN2_FULL;\r
1916     \r
1917     /**\r
1918       Tx Amplitude ratio TxMargin=3, full swing\r
1919      */\r
1920     __IO    uint32_t    TX_AMP_RATIO_MARGIN3_FULL;\r
1921     \r
1922     /**\r
1923       Tx Amplitude ratio TxMargin=4, full swing\r
1924      */\r
1925     __IO    uint32_t    TX_AMP_RATIO_MARGIN4_FULL;\r
1926     \r
1927     /**\r
1928       Tx Amplitude ratio TxMargin=5, full swing\r
1929      */\r
1930     __IO    uint32_t    TX_AMP_RATIO_MARGIN5_FULL;\r
1931     \r
1932     /**\r
1933       Tx Amplitude ratio TxMargin=6, full swing\r
1934      */\r
1935     __IO    uint32_t    TX_AMP_RATIO_MARGIN6_FULL;\r
1936     \r
1937     /**\r
1938       Tx Amplitude ratio TxMargin=7, full swing\r
1939      */\r
1940     __IO    uint32_t    TX_AMP_RATIO_MARGIN7_FULL;\r
1941     \r
1942     /**\r
1943       Rx Equalization amplitude ratio TxDeemp=0\r
1944      */\r
1945     __IO    uint32_t    RE_AMP_RATIO_DEEMP0;\r
1946     \r
1947     /**\r
1948       Rx Equalization Cut frequency TxDeemp=0\r
1949      */\r
1950     __IO    uint32_t    RE_CUT_RATIO_DEEMP0;\r
1951     \r
1952     /**\r
1953       Rx Equalization amplitude ratio TxDeemp=1\r
1954      */\r
1955     __IO    uint32_t    RE_AMP_RATIO_DEEMP1;\r
1956     \r
1957     /**\r
1958       Rx Equalization Cut frequency TxDeemp=1\r
1959      */\r
1960     __IO    uint32_t    RE_CUT_RATIO_DEEMP1;\r
1961     \r
1962     /**\r
1963       Tx Post-Cursor ratio with TxDeemp=0, Half swing\r
1964      */\r
1965     __IO    uint32_t    TX_PST_RATIO_DEEMP0_HALF;\r
1966     \r
1967     /**\r
1968       Tx Pre-Cursor ratio TxDeemp=0, Half swing\r
1969      */\r
1970     __IO    uint32_t    TX_PRE_RATIO_DEEMP0_HALF;\r
1971     \r
1972     /**\r
1973       Tx Post-Cursor ratio with TxDeemp=1, Half swing\r
1974      */\r
1975     __IO    uint32_t    TX_PST_RATIO_DEEMP1_HALF;\r
1976     \r
1977     /**\r
1978       Tx Pre-Cursor ratio TxDeemp=1, Half swing\r
1979      */\r
1980     __IO    uint32_t    TX_PRE_RATIO_DEEMP1_HALF;\r
1981     \r
1982     /**\r
1983       Tx Amplitude ratio TxMargin=0, Half swing\r
1984      */\r
1985     __IO    uint32_t    TX_AMP_RATIO_MARGIN0_HALF;\r
1986     \r
1987     /**\r
1988       Tx Amplitude ratio TxMargin=1, Half swing\r
1989      */\r
1990     __IO    uint32_t    TX_AMP_RATIO_MARGIN1_HALF;\r
1991     \r
1992     /**\r
1993       Tx Amplitude ratio TxMargin=2, Half swing\r
1994      */\r
1995     __IO    uint32_t    TX_AMP_RATIO_MARGIN2_HALF;\r
1996     \r
1997     /**\r
1998       Tx Amplitude ratio TxMargin=3, Half swing\r
1999      */\r
2000     __IO    uint32_t    TX_AMP_RATIO_MARGIN3_HALF;\r
2001     \r
2002     /**\r
2003       Tx Amplitude ratio TxMargin=4, Half swing\r
2004      */\r
2005     __IO    uint32_t    TX_AMP_RATIO_MARGIN4_HALF;\r
2006     \r
2007     /**\r
2008       Tx Amplitude ratio TxMargin=5, Half swing\r
2009      */\r
2010     __IO    uint32_t    TX_AMP_RATIO_MARGIN5_HALF;\r
2011     \r
2012     /**\r
2013       Tx Amplitude ratio TxMargin=6, Half swing\r
2014      */\r
2015     __IO    uint32_t    TX_AMP_RATIO_MARGIN6_HALF;\r
2016     \r
2017     /**\r
2018       Tx Amplitude ratio TxMargin=7, Half swing\r
2019      */\r
2020     __IO    uint32_t    TX_AMP_RATIO_MARGIN7_HALF;\r
2021     \r
2022     /**\r
2023       PMA status\r
2024      */\r
2025     __IO    uint32_t    PMA_STATUS;\r
2026     \r
2027     /**\r
2028       Tx sweep center (RO)\r
2029      */\r
2030     __IO    uint32_t    TX_SWEEP_CENTER;\r
2031     \r
2032     /**\r
2033       Rx seep center (RO)\r
2034      */\r
2035     __IO    uint32_t    RX_SWEEP_CENTER;\r
2036     \r
2037     /**\r
2038       Rx Equalization sweep center (RO)\r
2039      */\r
2040     __IO    uint32_t    RE_SWEEP_CENTER;\r
2041     \r
2042     /**\r
2043       Receiver Shift Loader parameter 0 (RO)\r
2044      */\r
2045     __IO    uint32_t    ATXDRR_7_0;\r
2046     \r
2047     /**\r
2048       Receiver Shift Loader parameter 1 (RO)\r
2049      */\r
2050     __IO    uint32_t    ATXDRR_14_8;\r
2051     \r
2052     /**\r
2053       Transmitter P Shift Loader parameter0-0\r
2054      */\r
2055     __IO    uint32_t    ATXDRP_DYN_7_0;\r
2056     \r
2057     /**\r
2058       Transmitter P Shift Loader parameter0-1\r
2059      */\r
2060     __IO    uint32_t    ATXDRP_DYN_15_8;\r
2061     \r
2062     /**\r
2063       Transmitter P Shift Loader parameter0-2\r
2064      */\r
2065     __IO    uint32_t    ATXDRP_DYN_20_16;\r
2066     \r
2067     /**\r
2068       Transmitter A Shift Loader parameter0-0\r
2069      */\r
2070     __IO    uint32_t    ATXDRA_DYN_7_0;\r
2071     \r
2072     /**\r
2073       Transmitter A Shift Loader parameter0-1\r
2074      */\r
2075     __IO    uint32_t    ATXDRA_DYN_15_8;\r
2076     \r
2077     /**\r
2078       Transmitter A Shift Loader parameter0-2\r
2079      */\r
2080     __IO    uint32_t    ATXDRA_DYN_20_16;\r
2081     \r
2082     /**\r
2083       Transmitter T Shift Loader parameter0-0\r
2084      */\r
2085     __IO    uint32_t    ATXDRT_DYN_7_0;\r
2086     \r
2087     /**\r
2088       Transmitter T Shift Loader parameter0-1\r
2089      */\r
2090     __IO    uint32_t    ATXDRT_DYN_15_8;\r
2091     \r
2092     /**\r
2093       Transmitter T Shift Loader parameter0-2\r
2094      */\r
2095     __IO    uint32_t    ATXDRT_DYN_20_16;\r
2096     \r
2097     /**\r
2098       Transmitter P Shift Loader parameter 1-0 (RO)\r
2099      */\r
2100     __IO    uint32_t    ATXDRP_EI1_7_0;\r
2101     \r
2102     /**\r
2103       Transmitter P Shift Loader parameter 1-1 (RO)\r
2104      */\r
2105     __IO    uint32_t    ATXDRP_EI1_15_8;\r
2106     \r
2107     /**\r
2108       Transmitter P Shift Loader parameter 1-2 (RO)\r
2109      */\r
2110     __IO    uint32_t    ATXDRP_EI1_20_16;\r
2111     \r
2112     /**\r
2113       Transmitter A Shift Loader parameter 1-0 (RO)\r
2114      */\r
2115     __IO    uint32_t    ATXDRA_EI1_7_0;\r
2116     \r
2117     /**\r
2118       Transmitter A Shift Loader parameter 1-1 (RO)\r
2119      */\r
2120     __IO    uint32_t    ATXDRA_EI1_15_8;\r
2121     \r
2122     /**\r
2123       Transmitter A Shift Loader parameter 1-2 (RO)\r
2124      */\r
2125     __IO    uint32_t    ATXDRA_EI1_20_16;\r
2126     \r
2127     /**\r
2128       Transmitter T Shift Loader parameter 1-0 (RO)\r
2129      */\r
2130     __IO    uint32_t    ATXDRT_EI1_7_0;\r
2131     \r
2132     /**\r
2133       Transmitter T Shift Loader parameter 1-1 (RO)\r
2134      */\r
2135     __IO    uint32_t    ATXDRT_EI1_15_8;\r
2136     \r
2137     /**\r
2138       Transmitter T Shift Loader parameter 1-2 (RO)\r
2139      */\r
2140     __IO    uint32_t    ATXDRT_EI1_20_16;\r
2141     \r
2142     /**\r
2143       Transmitter P shift Loader parameter 2-0 (RO)\r
2144      */\r
2145     __IO    uint32_t    ATXDRP_EI2_7_0;\r
2146     \r
2147     /**\r
2148       Transmitter P shift Loader parameter 2-1 (RO)\r
2149      */\r
2150     __IO    uint32_t    ATXDRP_EI2_15_8;\r
2151     \r
2152     /**\r
2153       Transmitter P shift Loader parameter 2-2 (RO)\r
2154      */\r
2155     __IO    uint32_t    ATXDRP_EI2_20_16;\r
2156     \r
2157     /**\r
2158       Transmitter A Shift parametr 2-0 (RO)\r
2159      */\r
2160     __IO    uint32_t    ATXDRA_EI2_7_0;\r
2161     \r
2162     /**\r
2163       Transmitter A Shift parametr 2-1 (RO)\r
2164      */\r
2165     __IO    uint32_t    ATXDRA_EI2_15_8;\r
2166     \r
2167     /**\r
2168       Transmitter A Shift parametr 2-2 (RO)\r
2169      */\r
2170     __IO    uint32_t    ATXDRA_EI2_20_16;\r
2171     \r
2172     /**\r
2173       Transmitter T Shift parametr 2-0 (RO)\r
2174      */\r
2175     __IO    uint32_t    ATXDRT_EI2_7_0;\r
2176     \r
2177     /**\r
2178       Transmitter T Shift parametr 2-1 (RO)\r
2179      */\r
2180     __IO    uint32_t    ATXDRT_EI2_15_8;\r
2181     \r
2182     /**\r
2183       Transmitter T Shift parametr 2-2 (RO)\r
2184      */\r
2185     __IO    uint32_t    ATXDRT_EI2_20_16;\r
2186     \r
2187     /**\r
2188       Override calibration register (RW)\r
2189      */\r
2190     __IO    uint32_t    OVERRIDE_CALIB;\r
2191     \r
2192     /**\r
2193       Force Receiver Shift Loader parameter 0 (RW)\r
2194      */\r
2195     __IO    uint32_t    FORCE_ATXDRR_7_0;\r
2196     \r
2197     /**\r
2198       Force Receiver Shift Loader parameter 1 (RW)\r
2199      */\r
2200     __IO    uint32_t    FORCE_ATXDRR_15_8;\r
2201     \r
2202     /**\r
2203       Force Receiver Shift Loader parameter 2 (RW)\r
2204      */\r
2205     __IO    uint32_t    FORCE_ATXDRR_20_16;\r
2206     \r
2207     /**\r
2208       Force Transmitter P Shift Loader parameter 0 (RW)\r
2209      */\r
2210     __IO    uint32_t    FORCE_ATXDRP_7_0;\r
2211     \r
2212     /**\r
2213       Force Transmitter P Shift Loader parameter 1 (RW)\r
2214      */\r
2215     __IO    uint32_t    FORCE_ATXDRP_15_8;\r
2216     \r
2217     /**\r
2218       Force Transmitter P Shift Loader parameter 2 (RW)\r
2219      */\r
2220     __IO    uint32_t    FORCE_ATXDRP_20_16;\r
2221     \r
2222     /**\r
2223       Force Transmitter A Shift Loader parameter 0 (RW)\r
2224      */\r
2225     __IO    uint32_t    FORCE_ATXDRA_7_0;\r
2226     \r
2227     /**\r
2228       Force Transmitter A Shift Loader parameter 1 (RW)\r
2229      */\r
2230     __IO    uint32_t    FORCE_ATXDRA_15_8;\r
2231     \r
2232     /**\r
2233       Force Transmitter A Shift Loader parameter 2 (RW)\r
2234      */\r
2235     __IO    uint32_t    FORCE_ATXDRA_20_16;\r
2236     \r
2237     /**\r
2238       Force Transmitter T Shift parameter 0-0 (RO)\r
2239      */\r
2240     __IO    uint32_t    FORCE_ATXDRT_7_0;\r
2241     \r
2242     /**\r
2243       Force Transmitter T Shift parameter 0-1 (RO)\r
2244      */\r
2245     __IO    uint32_t    FORCE_ATXDRT_15_8;\r
2246     \r
2247     /**\r
2248       Force Transmitter T Shift parameter 0-2 (RO)\r
2249      */\r
2250     __IO    uint32_t    FORCE_ATXDRT_20_16;\r
2251     \r
2252     /**\r
2253       RxD offset calibration result (RO)\r
2254      */\r
2255     __IO    uint32_t    RXD_OFFSET_CALIB_RESULT;\r
2256     \r
2257     /**\r
2258       RxT offset calibration result (RO)\r
2259      */\r
2260     __IO    uint32_t    RXT_OFFSET_CALIB_RESULT;\r
2261     \r
2262     /**\r
2263       Schmitt trigger calibration result (RO)\r
2264      */\r
2265     __IO    uint32_t    SCHMITT_TRIG_CALIB_RESULT;\r
2266     \r
2267     /**\r
2268       Force RxD offset calibration settings (RW)\r
2269      */\r
2270     __IO    uint32_t    FORCE_RXD_OFFSET_CALIB;\r
2271     \r
2272     /**\r
2273       Force RxT offset calibration settings (RW)\r
2274      */\r
2275     __IO    uint32_t    FORCE_RXT_OFFSET_CALIB;\r
2276     \r
2277     /**\r
2278       Force Schmitt trigger calibration settings (RW)\r
2279      */\r
2280     __IO    uint32_t    FORCE_SCHMITT_TRIG_CALIB;\r
2281     \r
2282     /**\r
2283       PRBS control register (RW)\r
2284      */\r
2285     __IO    uint32_t    PRBS_CTRL;\r
2286     \r
2287     /**\r
2288       PRBS error counter register (RO)\r
2289      */\r
2290     __IO    uint32_t    PRBS_ERRCNT;\r
2291     \r
2292     /**\r
2293       PHY reset override register (RW)\r
2294      */\r
2295     __IO    uint32_t    PHY_RESET_OVERRIDE;\r
2296     \r
2297     /**\r
2298       PHY power override register (RW)\r
2299      */\r
2300     __IO    uint32_t    PHY_POWER_OVERRIDE;\r
2301     \r
2302     /**\r
2303       Custom Pattern Byte 0 (RW)\r
2304      */\r
2305     __IO    uint32_t    CUSTOM_PATTERN_7_0;\r
2306     \r
2307     /**\r
2308       Custom Pattern Byte 1 (RW)\r
2309      */\r
2310     __IO    uint32_t    CUSTOM_PATTERN_15_8;\r
2311     \r
2312     /**\r
2313       Custom Pattern Byte 2 (RW)\r
2314      */\r
2315     __IO    uint32_t    CUSTOM_PATTERN_23_16;\r
2316     \r
2317     /**\r
2318       Custom Pattern Byte 3 (RW)\r
2319      */\r
2320     __IO    uint32_t    CUSTOM_PATTERN_31_24;\r
2321     \r
2322     /**\r
2323       Custom Pattern Byte 4 (RW)\r
2324      */\r
2325     __IO    uint32_t    CUSTOM_PATTERN_39_32;\r
2326     \r
2327     /**\r
2328       Custom Pattern Byte 5 (RW)\r
2329      */\r
2330     __IO    uint32_t    CUSTOM_PATTERN_47_40;\r
2331     \r
2332     /**\r
2333       Custom Pattern Byte 6 (RW)\r
2334      */\r
2335     __IO    uint32_t    CUSTOM_PATTERN55_48;\r
2336     \r
2337     /**\r
2338       Custom Pattern Byte 7 (RW)\r
2339      */\r
2340     __IO    uint32_t    CUSTOM_PATTERN_63_56;\r
2341     \r
2342     /**\r
2343       Custom Pattern Byte 8 (RW)\r
2344      */\r
2345     __IO    uint32_t    CUSTOM_PATTERN_71_64;\r
2346     \r
2347     /**\r
2348       Custom Pattern Byte 9 (RW)\r
2349      */\r
2350     __IO    uint32_t    CUSTOM_PATTERN_79_72;\r
2351     \r
2352     /**\r
2353       Custom Pattern Control (RW)\r
2354      */\r
2355     __IO    uint32_t    CUSTOM_PATTERN_CTRL;\r
2356     \r
2357     /**\r
2358       Custom Pattern Status register (RO)\r
2359      */\r
2360     __IO    uint32_t    CUSTOM_PATTERN_STATUS;\r
2361     \r
2362     /**\r
2363       PCS Loopback Control (RW)\r
2364      */\r
2365     __IO    uint32_t    PCS_LOOPBBACK_CTRL;\r
2366     \r
2367     /**\r
2368       Gen1 Transmit PLL Current Charge Pump (RW)\r
2369      */\r
2370     __IO    uint32_t    GEN1_TX_PLL_CCP;\r
2371     \r
2372     /**\r
2373       Gen1 Receive PLL Current Charge Pump (RW)\r
2374      */\r
2375     __IO    uint32_t    GEN1_RX_PLL_CCP;\r
2376     \r
2377     /**\r
2378       Gen2 Transmit PLL Current Charge Pump (RW)\r
2379      */\r
2380     __IO    uint32_t    GEN2_TX_PLL_CCP;\r
2381     \r
2382     /**\r
2383       Gen2 Receive PLL Current Charge Pump (RW)\r
2384      */\r
2385     __IO    uint32_t    GEN2_RX_PLL_CCP;\r
2386     \r
2387     /**\r
2388       CDR PLL manual control\r
2389      */\r
2390     __IO    uint32_t    CDR_PLL_MANUAL_CR;\r
2391     \r
2392     /**\r
2393       Reserved0\r
2394      */\r
2395     __IO    uint32_t    RESERVED0[6];\r
2396     \r
2397     /**\r
2398       Update settings command register\r
2399      */\r
2400     __IO    uint32_t    UPDATE_SETTINGS;\r
2401     \r
2402     /**\r
2403       Reserved1\r
2404      */\r
2405     __IO    uint32_t    RESERVED1[31];\r
2406     \r
2407     /**\r
2408       PRBS first error cycle counter bits [7:0]\r
2409      */\r
2410     __IO    uint32_t    PRBS_ERR_CYC_FIRST_7_0;\r
2411     \r
2412     /**\r
2413       PRBS first error cycle counter bits [15:8]\r
2414      */\r
2415     __IO    uint32_t    PRBS_ERR_CYC_FIRST_15_8;\r
2416     \r
2417     /**\r
2418       PRBS first error cycle counter bits [23:16]\r
2419      */\r
2420     __IO    uint32_t    PRBS_ERR_CYC_FIRST_23_16;\r
2421     \r
2422     /**\r
2423       PRBS first error cycle counter bits [31:24]\r
2424      */\r
2425     __IO    uint32_t    PRBS_ERR_CYC_FIRST_31_24;\r
2426     \r
2427     /**\r
2428       PRBS first error cycle counter bits [39:32]\r
2429      */\r
2430     __IO    uint32_t    PRBS_ERR_CYC_FIRST_39_32;\r
2431     \r
2432     /**\r
2433       PRBS first error cycle counter bits [47:40]\r
2434      */\r
2435     __IO    uint32_t    PRBS_ERR_CYC_FIRST_47_40;\r
2436     \r
2437     /**\r
2438       PRBS first error cycle counter bits [49:48]\r
2439      */\r
2440     __IO    uint32_t    PRBS_ERR_CYC_FIRST_49_48;\r
2441     \r
2442     /**\r
2443       Reserved2\r
2444      */\r
2445     __IO    uint32_t    RESERVED2;\r
2446     \r
2447     /**\r
2448       PRBS last error cycle counter bits [7:0]\r
2449      */\r
2450     __IO    uint32_t    PRBS_ERR_CYC_LAST_7_0;\r
2451     \r
2452     /**\r
2453       PRBS last error cycle counter bits [15:8]\r
2454      */\r
2455     __IO    uint32_t    PRBS_ERR_CYC_LAST_15_8;\r
2456     \r
2457     /**\r
2458       PRBS last error cycle counter bits [23:16]\r
2459      */\r
2460     __IO    uint32_t    PRBS_ERR_CYC_LAST_23_16;\r
2461     \r
2462     /**\r
2463       PRBS last error cycle counter bits [31:24]\r
2464      */\r
2465     __IO    uint32_t    PRBS_ERR_CYC_LAST_31_24;\r
2466     \r
2467     /**\r
2468       PRBS last error cycle counter bits [39:32]\r
2469      */\r
2470     __IO    uint32_t    PRBS_ERR_CYC_LAST_39_32;\r
2471     \r
2472     /**\r
2473       PRBS last error cycle counter bits [47:40]\r
2474      */\r
2475     __IO    uint32_t    PRBS_ERR_CYC_LAST_47_40;\r
2476     \r
2477     /**\r
2478       PRBS last error cycle counter bits [49:48]\r
2479      */\r
2480     __IO    uint32_t    PRBS_ERR_CYC_LAST_49_48;\r
2481     \r
2482     /**\r
2483       Reserved3\r
2484      */\r
2485     __IO    uint32_t    RESERVED3[81];\r
2486     \r
2487 } SERDES_TypeDef;\r
2488  \r
2489 /*-------------------------------------------------------------------------*//**\r
2490   The serdesif_regs_t data structure provides access to the complete set of the\r
2491   SERDES Interface hardware block configuration registers. These registers are\r
2492   accessed through the APB interface of the SERDES Interface hardware block.\r
2493  */\r
2494 typedef struct\r
2495 {\r
2496     /**\r
2497       PCIe core registers.\r
2498      */\r
2499     PCIE_TypeDef                core;\r
2500     \r
2501     /**\r
2502       SERDES macro registers.\r
2503      */\r
2504     SERDES_TypeDef              lane[4];\r
2505     \r
2506     /**\r
2507       SERDESIF system registers.\r
2508      */\r
2509     SERDES_INTF_SYSREG_TypeDef     sys_regs;\r
2510     \r
2511 } SERDESIF_TypeDef;\r
2512 \r
2513 \r
2514 /*----------------------------------------------------------------------------*/\r
2515 /*------------------------------ System Registers ----------------------------*/\r
2516 /*----------------------------------------------------------------------------*/\r
2517 typedef struct\r
2518 {\r
2519     __IO     uint32_t    ESRAM_CR;                                 /*0X0   */\r
2520     __IO     uint32_t    ESRAM_MAX_LAT_CR;                         /*0X4   */\r
2521     __IO     uint32_t    DDR_CR;                                   /*0X8   */\r
2522     __IO     uint32_t    ENVM_CR;                                  /*0XC   */\r
2523     __IO     uint32_t    ENVM_REMAP_BASE_CR;                       /*0X10  */\r
2524     __IO     uint32_t    ENVM_REMAP_FAB_CR;                        /*0X14  */\r
2525     __IO     uint32_t    CC_CR;                                    /*0X18  */\r
2526     __IO     uint32_t    CC_REGION_CR;                             /*0X1C  */\r
2527     __IO     uint32_t    CC_LOCK_BASE_ADDR_CR;                     /*0X20  */\r
2528     __IO     uint32_t    CC_FLUSH_INDX_CR;                         /*0X24  */\r
2529     __IO     uint32_t    DDRB_BUF_TIMER_CR;                        /*0X28  */\r
2530     __IO     uint32_t    DDRB_NB_ADDR_CR;                          /*0X2C  */\r
2531     __IO     uint32_t    DDRB_NB_SIZE_CR;                          /*0X30  */\r
2532     __IO     uint32_t    DDRB_CR;                                  /*0X34  */\r
2533     __IO     uint32_t    EDAC_CR;                                  /*0X38  */\r
2534     __IO     uint32_t    MASTER_WEIGHT0_CR;                        /*0X3C  */\r
2535     __IO     uint32_t    MASTER_WEIGHT1_CR;                        /*0X40  */\r
2536     __IO     uint32_t    SOFT_IRQ_CR;                              /*0X44  */\r
2537     __IO     uint32_t    SOFT_RST_CR;                              /*0X48  */\r
2538     __IO     uint32_t    M3_CR;                                    /*0X4C  */\r
2539     __IO     uint32_t    FAB_IF_CR;                                /*0X50  */\r
2540     __IO     uint32_t    LOOPBACK_CR;                              /*0X54  */\r
2541     __IO     uint32_t    GPIO_SYSRESET_SEL_CR;                     /*0X58  */\r
2542     __IO     uint32_t    GPIN_SRC_SEL_CR;                          /*0X5C  */\r
2543     __IO     uint32_t    MDDR_CR;                                  /*0X60  */\r
2544     __IO     uint32_t    USB_IO_INPUT_SEL_CR;                      /*0X64  */\r
2545     __IO     uint32_t    PERIPH_CLK_MUX_SEL_CR;                    /*0X68  */\r
2546     __IO     uint32_t    WDOG_CR;                                  /*0X6C  */\r
2547     __IO     uint32_t    MDDR_IO_CALIB_CR;                         /*0X70  */\r
2548     __IO     uint32_t    SPARE_OUT_CR;                             /*0X74  */\r
2549     __IO     uint32_t    EDAC_IRQ_ENABLE_CR;                       /*0X78  */\r
2550     __IO     uint32_t    USB_CR;                                   /*0X7C  */\r
2551     __IO     uint32_t    ESRAM_PIPELINE_CR;                        /*0X80  */\r
2552     __IO     uint32_t    MSS_IRQ_ENABLE_CR;                        /*0X84  */\r
2553     __IO     uint32_t    RTC_WAKEUP_CR;                            /*0X88  */\r
2554     __IO     uint32_t    MAC_CR;                                   /*0X8C  */\r
2555     __IO     uint32_t    MSSDDR_PLL_STATUS_LOW_CR;                 /*0X90  */\r
2556     __IO     uint32_t    MSSDDR_PLL_STATUS_HIGH_CR;                /*0X94  */\r
2557     __IO     uint32_t    MSSDDR_FACC1_CR;                          /*0X98  */\r
2558     __IO     uint32_t    MSSDDR_FACC2_CR;                          /*0X9C  */\r
2559     __IO     uint32_t    PLL_LOCK_EN_CR;                           /*0XA0  */\r
2560     __IO     uint32_t    MSSDDR_CLK_CALIB_CR;                      /*0XA4  */\r
2561     __IO     uint32_t    PLL_DELAY_LINE_SEL_CR;                    /*0XA8  */\r
2562     __IO     uint32_t    MAC_STAT_CLRONRD_CR;                      /*0XAC  */\r
2563     __IO     uint32_t    RESET_SOURCE_CR;                          /*0XB0  */\r
2564     __I      uint32_t    CC_DC_ERR_ADDR_SR;                        /*0XB4  */\r
2565     __I      uint32_t    CC_IC_ERR_ADDR_SR;                        /*0XB8  */\r
2566     __I      uint32_t    CC_SB_ERR_ADDR_SR;                        /*0XBC  */\r
2567     __I      uint32_t    CC_DECC_ERR_ADDR_SR;                      /*0XC0  */\r
2568     __I      uint32_t    CC_IC_MISS_CNT_SR;                        /*0XC4  */\r
2569     __I      uint32_t    CC_IC_HIT_CNT_SR;                         /*0XC8  */\r
2570     __I      uint32_t    CC_DC_MISS_CNT_SR;                        /*0XCC  */\r
2571     __I      uint32_t    CC_DC_HIT_CNT_SR;                         /*0XD0  */\r
2572     __I      uint32_t    CC_IC_TRANS_CNT_SR;                       /*0XD4  */\r
2573     __I      uint32_t    CC_DC_TRANS_CNT_SR;                       /*0XD8  */\r
2574     __I      uint32_t    DDRB_DS_ERR_ADR_SR;                       /*0XDC  */\r
2575     __I      uint32_t    DDRB_HPD_ERR_ADR_SR;                      /*0XE0  */\r
2576     __I      uint32_t    DDRB_SW_ERR_ADR_SR;                       /*0XE4  */\r
2577     __I      uint32_t    DDRB_BUF_EMPTY_SR;                        /*0XE8  */\r
2578     __I      uint32_t    DDRB_DSBL_DN_SR;                          /*0XEC  */\r
2579     __I      uint32_t    ESRAM0_EDAC_CNT;                          /*0XF0  */\r
2580     __I      uint32_t    ESRAM1_EDAC_CNT;                          /*0XF4  */\r
2581     __I      uint32_t    CC_EDAC_CNT;                              /*0XF8  */\r
2582     __I      uint32_t    MAC_EDAC_TX_CNT;                          /*0XFC  */\r
2583     __I      uint32_t    MAC_EDAC_RX_CNT;                          /*0X100 */\r
2584     __I      uint32_t    USB_EDAC_CNT;                             /*0X104 */\r
2585     __I      uint32_t    CAN_EDAC_CNT;                             /*0X108 */\r
2586     __I      uint32_t    ESRAM0_EDAC_ADR;                          /*0X10C */\r
2587     __I      uint32_t    ESRAM1_EDAC_ADR;                          /*0X110 */\r
2588     __I      uint32_t    MAC_EDAC_RX_ADR;                          /*0X114 */\r
2589     __I      uint32_t    MAC_EDAC_TX_ADR;                          /*0X118 */\r
2590     __I      uint32_t    CAN_EDAC_ADR;                             /*0X11C */\r
2591     __I      uint32_t    USB_EDAC_ADR;                             /*0X120 */\r
2592     __I      uint32_t    MM0_1_2_SECURITY;                         /*0X124 */\r
2593     __I      uint32_t    MM4_5_FIC64_SECURITY;                     /*0X128 */\r
2594     __I      uint32_t    MM3_6_7_8_SECURITY;                       /*0X12C */\r
2595     __I      uint32_t    MM9_SECURITY;                             /*0X130 */\r
2596     __I      uint32_t    M3_SR;                                    /*0X134 */\r
2597     __I      uint32_t    ETM_COUNT_LOW;                            /*0X138 */\r
2598     __I      uint32_t    ETM_COUNT_HIGH;                           /*0X13C */\r
2599     __I      uint32_t    DEVICE_SR;                                /*0X140 */\r
2600     __I      uint32_t    ENVM_PROTECT_USER;                        /*0X144 */\r
2601     __I      uint32_t    ENVM_STATUS;                              /*0X148 */\r
2602     __I      uint32_t    DEVICE_VERSION;                           /*0X14C */\r
2603     __I      uint32_t    MSSDDR_PLL_STATUS;                        /*0X150 */\r
2604     __I      uint32_t    USB_SR;                                   /*0X154 */\r
2605     __I      uint32_t    ENVM_SR;                                  /*0X158 */\r
2606     __I      uint32_t    SPARE_IN;                                 /*0X15C */\r
2607     __I      uint32_t    DDRB_STATUS;                              /*0X160 */\r
2608     __I      uint32_t    MDDR_IO_CALIB_STATUS;                     /*0X164 */\r
2609     __I      uint32_t    MSSDDR_CLK_CALIB_STATUS;                  /*0X168 */\r
2610     __I      uint32_t    WDOGLOAD;                                 /*0X16C */\r
2611     __I      uint32_t    WDOGMVRP;                                 /*0X170 */\r
2612     __I      uint32_t    USERCONFIG0;                              /*0X174 */\r
2613     __I      uint32_t    USERCONFIG1;                              /*0X178 */\r
2614     __I      uint32_t    USERCONFIG2;                              /*0X17C */\r
2615     __I      uint32_t    USERCONFIG3;                              /*0X180 */\r
2616     __I      uint32_t    FAB_PROT_SIZE;                            /*0X184 */\r
2617     __I      uint32_t    FAB_PROT_BASE;                            /*0X188 */\r
2618     __I      uint32_t    MSS_GPIO_DEF;                             /*0X18C */\r
2619     __IO     uint32_t    EDAC_SR;                                  /*0X190 */\r
2620     __IO     uint32_t    MSS_INTERNAL_SR;                          /*0X194 */\r
2621     __IO     uint32_t    MSS_EXTERNAL_SR;                          /*0X198 */\r
2622     __IO     uint32_t    WDOGTIMEOUTEVENT;                         /*0X19C */\r
2623     __IO     uint32_t    CLR_MSS_COUNTERS;                         /*0X1A0 */\r
2624     __IO     uint32_t    CLR_EDAC_COUNTERS;                        /*0X1A4 */\r
2625     __IO     uint32_t    FLUSH_CR;                                 /*0X1A8 */\r
2626     __IO     uint32_t    MAC_STAT_CLR_CR;                          /*0X1AC */\r
2627     __IO     uint32_t    IOMUXCELL_CONFIG[57];                     /*0X1B0 */\r
2628     __I      uint32_t    NVM_PROTECT_FACTORY;                      /*0X294 */\r
2629     __I      uint32_t    DEVICE_STATUS_FIXED;                      /*0X298 */\r
2630     __I      uint32_t    MBIST_ES0;                                /*0X29C */\r
2631     __I      uint32_t    MBIST_ES1;                                /*0X2A0 */\r
2632     __IO     uint32_t    MSDDR_PLL_STAUS_1;                        /*0X2A4 */\r
2633     __I      uint32_t    REDUNDANCY_ESRAM0;                        /*0X2A8 */\r
2634     __I      uint32_t    REDUNDANCY_ESRAM1;                        /*0X2AC */\r
2635     __I      uint32_t    SERDESIF;                                 /*0X2B0 */\r
2636 \r
2637 } SYSREG_TypeDef;\r
2638 \r
2639 #define SYSREG_ENVM0_SOFTRESET_MASK         ( (uint32_t)0x01u << 0u )\r
2640 #define SYSREG_ENVM1_SOFTRESET_MASK         ( (uint32_t)0x01u << 1u )\r
2641 #define SYSREG_ESRAM0_SOFTRESET_MASK        ( (uint32_t)0x01u << 2u )\r
2642 #define SYSREG_ESRAM1_SOFTRESET_MASK        ( (uint32_t)0x01u << 3u )\r
2643 #define SYSREG_MAC_SOFTRESET_MASK           ( (uint32_t)0x01u << 4u )\r
2644 #define SYSREG_PDMA_SOFTRESET_MASK          ( (uint32_t)0x01u << 5u )\r
2645 #define SYSREG_TIMER_SOFTRESET_MASK         ( (uint32_t)0x01u << 6u )\r
2646 #define SYSREG_MMUART0_SOFTRESET_MASK       ( (uint32_t)0x01u << 7u )\r
2647 #define SYSREG_MMUART1_SOFTRESET_MASK       ( (uint32_t)0x01u << 8u )\r
2648 #define SYSREG_SPI0_SOFTRESET_MASK          ( (uint32_t)0x01u << 9u )\r
2649 #define SYSREG_SPI1_SOFTRESET_MASK          ( (uint32_t)0x01u << 10u )\r
2650 #define SYSREG_I2C0_SOFTRESET_MASK          ( (uint32_t)0x01u << 11u )\r
2651 #define SYSREG_I2C1_SOFTRESET_MASK          ( (uint32_t)0x01u << 12u )\r
2652 #define SYSREG_CAN_SOFTRESET_MASK           ( (uint32_t)0x01u << 13u )\r
2653 #define SYSREG_USB_SOFTRESET_MASK           ( (uint32_t)0x01u << 14u )\r
2654 #define SYSREG_COMBLK_SOFTRESET_MASK        ( (uint32_t)0x01u << 15u )\r
2655 #define SYSREG_FPGA_SOFTRESET_MASK          ( (uint32_t)0x01u << 16u )\r
2656 #define SYSREG_HPDMA_SOFTRESET_MASK         ( (uint32_t)0x01u << 17u )\r
2657 #define SYSREG_FIC32_0_SOFTRESET_MASK       ( (uint32_t)0x01u << 18u )\r
2658 #define SYSREG_FIC32_1_SOFTRESET_MASK       ( (uint32_t)0x01u << 19u )\r
2659 #define SYSREG_GPIO_SOFTRESET_MASK          ( (uint32_t)0x01u << 20u )\r
2660 #define SYSREG_GPIO_7_0_SOFTRESET_MASK      ( (uint32_t)0x01u << 21u )\r
2661 #define SYSREG_GPIO_15_8_SOFTRESET_MASK     ( (uint32_t)0x01u << 22u )\r
2662 #define SYSREG_GPIO_23_16_SOFTRESET_MASK    ( (uint32_t)0x01u << 23u )\r
2663 #define SYSREG_GPIO_31_24_SOFTRESET_MASK    ( (uint32_t)0x01u << 24u )\r
2664 #define SYSREG_MDDR_SOFTRESET_MASK          ( (uint32_t)0x01u << 25u )\r
2665 #define SYSREG_FIC64_SOFTRESET_MASK         ( (uint32_t)0x01u << 26u )\r
2666 \r
2667 /*----------------------------------------------------------------------------*/\r
2668 /*-------------------------- CoreSF2Config Registers -------------------------*/\r
2669 /*----------------------------------------------------------------------------*/\r
2670 typedef struct {\r
2671     __IO     uint32_t   CONFIG_DONE;\r
2672     __I      uint32_t   INIT_DONE;\r
2673     __IO     uint32_t   CLR_INIT_DONE;\r
2674 } CoreSF2Config_TypeDef;\r
2675 \r
2676 /******************************************************************************/\r
2677 /*                         Peripheral memory map                              */\r
2678 /******************************************************************************/\r
2679 #define UART0_BASE              0x40000000u\r
2680 #define SPI0_BASE               0x40001000u\r
2681 #define I2C0_BASE               0x40002000u\r
2682 #define PDMA_BASE               0x40003000u\r
2683 #define TIMER_BASE              0x40004000u\r
2684 #define WATCHDOG_BASE           0x40005000u\r
2685 #define H2F_IRQ_CTRL_BASE       0x40006000u\r
2686 #define UART1_BASE              0x40010000u\r
2687 #define SPI1_BASE               0x40011000u\r
2688 #define I2C1_BASE               0x40012000u\r
2689 #define GPIO_BASE               0x40013000u\r
2690 #define HPDMA_BASE              0x40014000u\r
2691 #define CAN_BASE                0x40015000u\r
2692 #define COMBLK_BASE             0x40016000u\r
2693 #define RTC_BASE                0x40017000u\r
2694 #define DDR0_CFG_BASE           0x40020800u\r
2695 #define DDR1_CFG_BASE           0x40021000u\r
2696 #define CORE_SF2_CFG_BASE       0x40022000u\r
2697 #define SERDES0_CFG_BASE        0x40028000u\r
2698 #define SERDES1_CFG_BASE        0x4002C000u\r
2699 #define SYSREG_BASE             0x40038000u\r
2700 #define ETHERNET_BASE           0x40041000u\r
2701 #define USB_BASE                0x40043000u\r
2702 #define ENVM1_BASE              0x60080000u\r
2703 #define ENVM2_BASE              0x600C0000u\r
2704 \r
2705 /******************************************************************************/\r
2706 /* bitband address calculation macro                             */\r
2707 /******************************************************************************/\r
2708 #define BITBAND_ADDRESS(X)  ((X & 0xF0000000U) + 0x02000000U + ((X & 0xFFFFFU) << 5))\r
2709 \r
2710 /******************************************************************************/\r
2711 /*                         Peripheral declaration                             */\r
2712 /******************************************************************************/\r
2713 #define UART0                   ((UART_TypeDef *) UART0_BASE)\r
2714 #define SPI0                    ((SPI_TypeDef *) SPI0_BASE)\r
2715 #define I2C0                    ((I2C_TypeDef *) I2C0_BASE)\r
2716 #define I2C0_BITBAND            ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C0_BASE))\r
2717 #define MAC                     ((MAC_TypeDef *) ETHERNET_BASE)\r
2718 #define PDMA                    ((PDMA_TypeDef *) PDMA_BASE)\r
2719 #define TIMER                   ((TIMER_TypeDef *) TIMER_BASE)\r
2720 #define TIMER_BITBAND           ((TIMER_BitBand_TypeDef *) BITBAND_ADDRESS(TIMER_BASE))\r
2721 #define WATCHDOG                ((WATCHDOG_TypeDef *) WATCHDOG_BASE)\r
2722 #define INTERRUPT_CTRL          ((INTERRUPT_CTRL_TypeDef *) H2F_IRQ_CTRL_BASE)\r
2723 #define INTERRUPT_CTRL_BITBAND  ((INTERRUPT_CTRL_BitBand_TypeDef *) BITBAND_ADDRESS(H2F_IRQ_CTRL_BASE))\r
2724 #define UART1                   ((UART_TypeDef *) UART1_BASE)\r
2725 #define SPI1                    ((SPI_TypeDef *) SPI1_BASE)\r
2726 #define I2C1                    ((I2C_TypeDef *) I2C1_BASE)\r
2727 #define I2C1_BITBAND            ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C1_BASE))\r
2728 #define GPIO                    ((GPIO_TypeDef *) GPIO_BASE)\r
2729 #define GPIO_BITBAND            ((GPIO_BitBand_TypeDef *) BITBAND_ADDRESS(GPIO_BASE))\r
2730 #define HPDMA                   ((HPDMA_TypeDef *) HPDMA_BASE)\r
2731 #define HPDMA_BITBAND           ((HPDMA_BitBand_TypeDef *) BITBAND_ADDRESS(HPDMA_BASE))\r
2732 #define COMBLK                  ((COMBLK_TypeDef *) COMBLK_BASE)\r
2733 #define RTC                     ((RTC_TypeDef *) RTC_BASE)\r
2734 #define ENVM_1                  ((NVM_TypeDef *) ENVM1_BASE)\r
2735 #define ENVM_2                  ((NVM_TypeDef *) ENVM2_BASE)\r
2736 #define SYSREG                  ((SYSREG_TypeDef *) SYSREG_BASE)\r
2737 #define MDDR                    ((MDDR_TypeDef *) DDR0_CFG_BASE)\r
2738 #define FDDR                    ((FDDR_TypeDef *) DDR1_CFG_BASE) \r
2739 #define USB                     ((MSS_USB_TypeDef *) USB_BASE)\r
2740 #define SERDES0                 ((SERDESIF_TypeDef *) SERDES0_CFG_BASE)\r
2741 #define SERDES1                 ((SERDESIF_TypeDef *) SERDES1_CFG_BASE)\r
2742 #define CORE_SF2_CFG            ((CoreSF2Config_TypeDef *) CORE_SF2_CFG_BASE)\r
2743 \r
2744 #ifdef __cplusplus\r
2745 }\r
2746 #endif\r
2747 \r
2748 #endif  /* __SMARTFUSION2_CMSIS_PAL_H__ */\r
2749 \r