]> git.sur5r.net Git - freertos/blob
c8368af2eee16ad34601f61f353e4ca29cc0452e
[freertos] /
1 /*******************************************************************************\r
2  * (c) Copyright 2012 Microsemi SoC Products Group.  All rights reserved.\r
3  * \r
4  *  \r
5  *\r
6  * SVN $Revision: 4410 $\r
7  * SVN $Date: 2012-07-16 14:36:17 +0100 (Mon, 16 Jul 2012) $\r
8  */\r
9  \r
10 #ifndef SYSTEM_INIT_CFG_TYPES_H_\r
11 #define SYSTEM_INIT_CFG_TYPES_H_\r
12 \r
13 #ifdef __cplusplus\r
14 extern "C" {\r
15 #endif \r
16 \r
17 /*============================================================================*/\r
18 /*                              DDR Configuration                             */\r
19 /*============================================================================*/\r
20 typedef struct\r
21 {\r
22     /*--------------------------------------------------------------------------\r
23      * DDR Controller registers.\r
24      */\r
25     struct\r
26     {\r
27         uint16_t DYN_SOFT_RESET_CR;\r
28         uint16_t RESERVED0;\r
29         uint16_t DYN_REFRESH_1_CR;\r
30         uint16_t DYN_REFRESH_2_CR;\r
31         uint16_t DYN_POWERDOWN_CR;\r
32         uint16_t DYN_DEBUG_CR;\r
33         uint16_t MODE_CR;\r
34         uint16_t ADDR_MAP_BANK_CR;\r
35         uint16_t ECC_DATA_MASK_CR;\r
36         uint16_t ADDR_MAP_COL_1_CR;\r
37         uint16_t ADDR_MAP_COL_2_CR;\r
38         uint16_t ADDR_MAP_ROW_1_CR;\r
39         uint16_t ADDR_MAP_ROW_2_CR;\r
40         uint16_t INIT_1_CR;\r
41         uint16_t CKE_RSTN_CYCLES_1_CR;\r
42         uint16_t CKE_RSTN_CYCLES_2_CR;\r
43         uint16_t INIT_MR_CR;\r
44         uint16_t INIT_EMR_CR;\r
45         uint16_t INIT_EMR2_CR;\r
46         uint16_t INIT_EMR3_CR;\r
47         uint16_t DRAM_BANK_TIMING_PARAM_CR;\r
48         uint16_t DRAM_RD_WR_LATENCY_CR;\r
49         uint16_t DRAM_RD_WR_PRE_CR;\r
50         uint16_t DRAM_MR_TIMING_PARAM_CR;\r
51         uint16_t DRAM_RAS_TIMING_CR;\r
52         uint16_t DRAM_RD_WR_TRNARND_TIME_CR;\r
53         uint16_t DRAM_T_PD_CR;\r
54         uint16_t DRAM_BANK_ACT_TIMING_CR;\r
55         uint16_t ODT_PARAM_1_CR;\r
56         uint16_t ODT_PARAM_2_CR;\r
57         uint16_t ADDR_MAP_COL_3_CR;\r
58         uint16_t MODE_REG_RD_WR_CR;\r
59         uint16_t MODE_REG_DATA_CR;\r
60         uint16_t PWR_SAVE_1_CR;\r
61         uint16_t PWR_SAVE_2_CR;\r
62         uint16_t ZQ_LONG_TIME_CR;\r
63         uint16_t ZQ_SHORT_TIME_CR;\r
64         uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_1_CR;\r
65         uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_2_CR;\r
66         uint16_t PERF_PARAM_1_CR;\r
67         uint16_t HPR_QUEUE_PARAM_1_CR;\r
68         uint16_t HPR_QUEUE_PARAM_2_CR;\r
69         uint16_t LPR_QUEUE_PARAM_1_CR;\r
70         uint16_t LPR_QUEUE_PARAM_2_CR;\r
71         uint16_t WR_QUEUE_PARAM_CR;\r
72         uint16_t PERF_PARAM_2_CR;\r
73         uint16_t PERF_PARAM_3_CR;\r
74         uint16_t DFI_RDDATA_EN_CR;\r
75         uint16_t DFI_MIN_CTRLUPD_TIMING_CR;\r
76         uint16_t DFI_MAX_CTRLUPD_TIMING_CR;\r
77         uint16_t DFI_WR_LVL_CONTROL_1_CR;\r
78         uint16_t DFI_WR_LVL_CONTROL_2_CR;\r
79         uint16_t DFI_RD_LVL_CONTROL_1_CR;\r
80         uint16_t DFI_RD_LVL_CONTROL_2_CR;\r
81         uint16_t DFI_CTRLUPD_TIME_INTERVAL_CR;\r
82         uint16_t DYN_SOFT_RESET_CR2;\r
83         uint16_t AXI_FABRIC_PRI_ID_CR;\r
84     } ddrc;\r
85     \r
86     /*--------------------------------------------------------------------------\r
87      * DDR PHY configuration registers\r
88      */\r
89     struct \r
90     {\r
91         uint16_t LOOPBACK_TEST_CR;\r
92         uint16_t BOARD_LOOPBACK_CR;\r
93         uint16_t CTRL_SLAVE_RATIO_CR;\r
94         uint16_t CTRL_SLAVE_FORCE_CR;\r
95         uint16_t CTRL_SLAVE_DELAY_CR;\r
96         uint16_t DATA_SLICE_IN_USE_CR;\r
97         uint16_t LVL_NUM_OF_DQ0_CR;\r
98         uint16_t DQ_OFFSET_1_CR;\r
99         uint16_t DQ_OFFSET_2_CR;\r
100         uint16_t DQ_OFFSET_3_CR;\r
101         uint16_t DIS_CALIB_RST_CR;\r
102         uint16_t DLL_LOCK_DIFF_CR;\r
103         uint16_t FIFO_WE_IN_DELAY_1_CR;\r
104         uint16_t FIFO_WE_IN_DELAY_2_CR;\r
105         uint16_t FIFO_WE_IN_DELAY_3_CR;\r
106         uint16_t FIFO_WE_IN_FORCE_CR;\r
107         uint16_t FIFO_WE_SLAVE_RATIO_1_CR;\r
108         uint16_t FIFO_WE_SLAVE_RATIO_2_CR;\r
109         uint16_t FIFO_WE_SLAVE_RATIO_3_CR;\r
110         uint16_t FIFO_WE_SLAVE_RATIO_4_CR;\r
111         uint16_t GATELVL_INIT_MODE_CR;\r
112         uint16_t GATELVL_INIT_RATIO_1_CR;\r
113         uint16_t GATELVL_INIT_RATIO_2_CR;\r
114         uint16_t GATELVL_INIT_RATIO_3_CR;\r
115         uint16_t GATELVL_INIT_RATIO_4_CR;\r
116         uint16_t LOCAL_ODT_CR;\r
117         uint16_t INVERT_CLKOUT_CR;\r
118         uint16_t RD_DQS_SLAVE_DELAY_1_CR;\r
119         uint16_t RD_DQS_SLAVE_DELAY_2_CR;\r
120         uint16_t RD_DQS_SLAVE_DELAY_3_CR;\r
121         uint16_t RD_DQS_SLAVE_FORCE_CR;\r
122         uint16_t RD_DQS_SLAVE_RATIO_1_CR;\r
123         uint16_t RD_DQS_SLAVE_RATIO_2_CR;\r
124         uint16_t RD_DQS_SLAVE_RATIO_3_CR;\r
125         uint16_t RD_DQS_SLAVE_RATIO_4_CR;\r
126         uint16_t WR_DQS_SLAVE_DELAY_1_CR;\r
127         uint16_t WR_DQS_SLAVE_DELAY_2_CR;\r
128         uint16_t WR_DQS_SLAVE_DELAY_3_CR;\r
129         uint16_t WR_DQS_SLAVE_FORCE_CR;\r
130         uint16_t WR_DQS_SLAVE_RATIO_1_CR;\r
131         uint16_t WR_DQS_SLAVE_RATIO_2_CR;\r
132         uint16_t WR_DQS_SLAVE_RATIO_3_CR;\r
133         uint16_t WR_DQS_SLAVE_RATIO_4_CR;\r
134         uint16_t WR_DATA_SLAVE_DELAY_1_CR;\r
135         uint16_t WR_DATA_SLAVE_DELAY_2_CR;\r
136         uint16_t WR_DATA_SLAVE_DELAY_3_CR;\r
137         uint16_t WR_DATA_SLAVE_FORCE_CR;\r
138         uint16_t WR_DATA_SLAVE_RATIO_1_CR;\r
139         uint16_t WR_DATA_SLAVE_RATIO_2_CR;\r
140         uint16_t WR_DATA_SLAVE_RATIO_3_CR;\r
141         uint16_t WR_DATA_SLAVE_RATIO_4_CR;\r
142         uint16_t WRLVL_INIT_MODE_CR;\r
143         uint16_t WRLVL_INIT_RATIO_1_CR;\r
144         uint16_t WRLVL_INIT_RATIO_2_CR;\r
145         uint16_t WRLVL_INIT_RATIO_3_CR;\r
146         uint16_t WRLVL_INIT_RATIO_4_CR;\r
147         uint16_t WR_RD_RL_CR;\r
148         uint16_t RDC_FIFO_RST_ERRCNTCLR_CR;\r
149         uint16_t RDC_WE_TO_RE_DELAY_CR;\r
150         uint16_t USE_FIXED_RE_CR;\r
151         uint16_t USE_RANK0_DELAYS_CR;\r
152         uint16_t USE_LVL_TRNG_LEVEL_CR;\r
153         uint16_t CONFIG_CR;\r
154         uint16_t RD_WR_GATE_LVL_CR;\r
155         uint16_t DYN_RESET_CR;\r
156     } phy;\r
157     \r
158     /*--------------------------------------------------------------------------\r
159      * FIC-64 registers\r
160      * These registers are 16-bit wide and 32-bit aligned.\r
161      */\r
162     struct \r
163     {\r
164         uint16_t NB_ADDR_CR;\r
165         uint16_t NBRWB_SIZE_CR;\r
166         uint16_t WB_TIMEOUT_CR;\r
167         uint16_t HPD_SW_RW_EN_CR;\r
168         uint16_t HPD_SW_RW_INVAL_CR;\r
169         uint16_t SW_WR_ERCLR_CR;\r
170         uint16_t ERR_INT_ENABLE_CR;\r
171         uint16_t NUM_AHB_MASTERS_CR;\r
172         uint16_t LOCK_TIMEOUTVAL_1_CR;\r
173         uint16_t LOCK_TIMEOUTVAL_2_CR;\r
174         uint16_t LOCK_TIMEOUT_EN_CR;\r
175     } fic;\r
176 } ddr_subsys_cfg_t;\r
177 \r
178 /*============================================================================*/\r
179 /*                             FDDR Configuration                             */\r
180 /*============================================================================*/\r
181 \r
182 typedef struct \r
183 {\r
184     uint16_t PLL_CONFIG_LOW_1;\r
185     uint16_t PLL_CONFIG_LOW_2;\r
186     uint16_t PLL_CONFIG_HIGH;\r
187     uint16_t FACC_CLK_EN;\r
188     uint16_t FACC_MUX_CONFIG;\r
189     uint16_t FACC_DIVISOR_RATIO;\r
190     uint16_t PLL_DELAY_LINE_SEL;\r
191     uint16_t SOFT_RESET; \r
192     uint16_t IO_CALIB;\r
193     uint16_t INTERRUPT_ENABLE;\r
194     uint16_t AXI_AHB_MODE_SEL;\r
195     uint16_t PHY_SELF_REF_EN;\r
196 } fddr_sysreg_t;\r
197 \r
198 /*============================================================================*/\r
199 /*                 PCI Express Bridge IP Core configuration.                  */\r
200 /*============================================================================*/\r
201 \r
202 typedef struct\r
203 {\r
204     uint32_t * p_reg;\r
205     uint32_t value;\r
206 } cfg_addr_value_pair_t;\r
207 \r
208 #ifdef __cplusplus\r
209 }\r
210 #endif\r
211 \r
212 #endif /* SYSTEM_INIT_CFG_TYPES_H_ */\r