iLLD_TC27xD  1.0
IfxFlash_cfg.h
Go to the documentation of this file.
1 /**
2  * \file IfxFlash_cfg.h
3  * \brief FLASH on-chip implementation data
4  * \ingroup IfxLld_Flash
5  *
6  * \version iLLD_1_0_0_11_0
7  * \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
8  *
9  *
10  * IMPORTANT NOTICE
11  *
12  *
13  * Infineon Technologies AG (Infineon) is supplying this file for use
14  * exclusively with Infineon's microcontroller products. This file can be freely
15  * distributed within development tools that are supporting such microcontroller
16  * products.
17  *
18  * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
22  * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23  *
24  * \defgroup IfxLld_Flash FLASH
25  * \ingroup IfxLld
26  * \defgroup IfxLld_Flash_Impl Implementation
27  * \ingroup IfxLld_Flash
28  * \defgroup IfxLld_Flash_Std Standard Driver
29  * \ingroup IfxLld_Flash
30  */
31 
32 #ifndef IFXFLASH_CFG_H
33 #define IFXFLASH_CFG_H 1
34 
35 /******************************************************************************/
36 /*----------------------------------Includes----------------------------------*/
37 /******************************************************************************/
38 
40 
41 /******************************************************************************/
42 /*-----------------------------------Macros-----------------------------------*/
43 /******************************************************************************/
44 
45 /** \brief base address for general command sequences
46  */
47 #define IFXFLASH_CMD_BASE_ADDRESS (0xaf000000)
48 
49 /** \brief number of flash modules
50  */
51 #define IFXFLASH_NUM_FLASH_MODULES (1)
52 
53 #define IFXFLASH_PFLASH_BANKS (2)
54 
55 /** \brief
56  */
57 #define IFXFLASH_PFLASH_NUM_LOG_SECTORS (IFXFLASH_PFLASH_BANKS * 27)
58 
59 #define IFXFLASH_PFLASH_NUM_PHYSICAL_SECTORS (IFXFLASH_PFLASH_BANKS*4)
60 
61 #define IFXFLASH_PFLASH_PAGE_LENGTH (32)
62 
63 /** \brief Phy sector for DF
64  */
65 #define IFXFLASH_DFLASH_NUM_PHYSICAL_SECTORS (1)
66 
67 #define IFXFLASH_DFLASH_NUM_LOG_SECTORS (48)
68 
69 #define IFXFLASH_DFLASH_START (0xaf000000)
70 
71 #define IFXFLASH_DFLASH_SIZE (IFXFLASH_DFLASH_NUM_LOG_SECTORS*0x2000)
72 
73 #define IFXFLASH_DFLASH_END (IFXFLASH_DFLASH_START+IFXFLASH_DFLASH_SIZE-1)
74 
75 #define IFXFLASH_DFLASH_NUM_HSM_LOG_SECTORS (8)
76 
77 #define IFXFLASH_DFLASH_NUM_UCB_LOG_SECTORS (16)
78 
79 #define IFXFLASH_DFLASH_BANKS (1)
80 
81 #define IFXFLASH_DFLASH_PAGE_LENGTH (8)
82 
83 #define IFXFLASH_ERROR_TRACKING_MAX_CORRECTABLE_ERRORS (10)
84 
85 #define IFXFLASH_ERROR_TRACKING_MAX_UNCORRECTABLE_ERRORS (1)
86 
87 /** \brief offset between PMU PFlash ranges
88  */
89 #define IFXFLASH_PFLASH_OFFSET (0x00800000)
90 
91 /** \brief offset between command areas (in DFlash range)
92  */
93 #define IFXFLASH_CMD_BASE_OFFSET (0x00100000)
94 
95 /** \brief P flash burst length
96  */
97 #define IFXFLASH_PFLASH_BURST_LENGTH (0x100)
98 
99 /** \brief Dflash burst length
100  */
101 #define IFXFLASH_DFLASH_BURST_LENGTH (0x20)
102 
103 /** \brief p flash start
104  */
105 #define IFXFLASH_PFLASH_START (0xa0000000)
106 
107 /** \brief p flash size
108  */
109 #define IFXFLASH_PFLASH_SIZE (0x00400000 )
110 
111 /** \brief p flash end
112  */
113 #define IFXFLASH_PFLASH_END (IFXFLASH_PFLASH_START + IFXFLASH_PFLASH_SIZE-1)
114 
115 
116 
117 /******************************************************************************/
118 /*-------------------------------Enumerations---------------------------------*/
119 /******************************************************************************/
120 
121 typedef enum
122 {
123  IfxFlash_FlashType_Fa = 0, /**< \brief Flash Array */
124  IfxFlash_FlashType_D0 = 1, /**< \brief data flash #0 */
125  IfxFlash_FlashType_D1 = 2, /**< \brief data flash #1 */
126  IfxFlash_FlashType_P0 = 3, /**< \brief program flash #0 */
127  IfxFlash_FlashType_P1 = 4, /**< \brief program flash #1 */
128  IfxFlash_FlashType_P2 = 5, /**< \brief program flash #2 */
129  IfxFlash_FlashType_P3 = 6 /**< \brief program flash #3 */
131 
132 /** \brief user configuration block type
133  */
134 typedef enum
135 {
136  IfxFlash_UcbType_ucb0 = 0, /**< \brief UCB 0 */
137  IfxFlash_UcbType_ucb1 = 1, /**< \brief UCB 1 */
138  IfxFlash_UcbType_ucbHsmc = 5 /**< \brief HSM UCB */
140 
141 
142 /******************************************************************************/
143 /*-----------------------------Data Structures--------------------------------*/
144 /******************************************************************************/
145 
146 /** \brief contains start and end address of sectors
147 */
148 typedef struct
149 {
150  uint32 start; /**< \brief start address of sector */
151  uint32 end; /**< \brief end address of sector */
153 
154 
155 /******************************************************************************/
156 /*-------------------Global Exported Variables/Constants----------------------*/
157 /******************************************************************************/
158 
160 
162 
164 
166 
168 
170 
171 
172 #endif /* IFXFLASH_CFG_H */