5 typedef enum EMC_ENDIAN_SWITCH_TAG
7 EMC_ENDIAN_SWITCH_NONE = 3,
8 EMC_ENDIAN_SWITCH_BYTE = 0,
9 EMC_ENDIAN_SWITCH_HALF = 1,
10 EMC_ENDIAN_SWITCH_WORD = 2,
14 typedef enum EMC_DVC_ENDIAN_TAG
16 EMC_DVC_ENDIAN_DEFAULT = 0,
17 EMC_DVC_ENDIAN_LITTLE = 0,
18 EMC_DVC_ENDIAN_BIG = 1
22 typedef enum EMC_AUTO_GATE_TAG
24 EMC_AUTO_GATE_DEFAULT = 0,
25 EMC_AUTO_GATE_DIS = 0,
30 typedef enum EMC_AUTO_SLEEP_TAG
32 EMC_AUTO_SLEEP_DEFAULT = 0,
33 EMC_AUTO_SLEEP_DIS = 0,
38 typedef enum EMC_CMD_QUEUE_TAG
40 EMC_2DB = 0, // 2 stage device burst
41 EMC_2DB_1CB, // 2-stage device burst and 1-stage channel burst
42 EMC_2DB_2CB // 2-stage device burst and 2-stage channel burst
46 typedef enum EMC_CS_MODE_TAG
48 EMC_CS_MODE_DEFAULT = 0,
54 typedef enum EMC_CS_MAP_TAG
56 EMC_CS_MAP_DEFAULT = 5,
68 typedef enum EMC_CS_NUM_TAG
75 typedef enum EMC_BURST_MODE_TAG
82 typedef enum EMC_BURST_INVERT_TAG
89 typedef enum EMC_CHL_NUM_TAG
104 typedef enum EMC_CLK_SYNC_TAG
111 typedef enum EMC_REF_CS_TAG
113 EMC_CS_REF_OBO = 0, //CSs auto-refresh one by one
114 EMC_CS_REF_SAME //CSs auto-refresh at same time
118 typedef enum EMC_PRE_BIT_TAG
127 typedef enum EMC_DL_SWTICH_TAG
134 typedef enum EMC_CKE_SEL_TAG
136 EMC_CKE_SEL_DEFAULT = 0,
143 typedef enum EMC_DQS_GATE_LOOP_TAG
145 EMC_DQS_GATE_DEFAULT = 0,
147 EMC_DQS_GATE_DL_LB = 1,
152 typedef enum EMC_DQS_GATE_MODE_TAG
154 EMC_DQS_GATE_MODE_DEFAULT = 0,
155 EMC_DQS_GATE_MODE0 = 0,
156 EMC_DQS_GATE_MODE1 = 1
160 typedef enum EMC_PHY_TIMING_NUM_TAG
162 EMC_PHY_TIMING_SDRAM_LATENCY2 = 0,
163 EMC_PHY_TIMING_SDRAM_LATENCY3,
164 EMC_PHY_TIMING_DDRAM_LATENCY2,
165 EMC_PHY_TIMING_DDRAM_LATENCY3,
166 EMC_PHY_TIMING_MATRIX_MAX
167 }EMC_PHY_TIMING_NUM_E;
169 typedef enum EMC_DLL_NUM_TAG
193 typedef struct EMC_PHY_L1_TIMING_TAG
195 uint32 data_pad_ie_delay;
196 uint32 data_pad_oe_delay;
197 uint32 dqs_gate_pst_delay;
198 uint32 dqs_gate_pre_delay;
201 }EMC_PHY_L1_TIMING_T,*EMC_PHY_L1_TIMING_T_PTR;
203 typedef struct EMC_PHY_L2_TIMING_TAG
205 uint32 clkdmem_out_dl;
209 uint32 dqs_gate_pre_dl_0;
210 uint32 dqs_gate_pre_dl_1;
211 uint32 dqs_gate_pre_dl_2;
212 uint32 dqs_gate_pre_dl_3;
213 uint32 dqs_gate_pst_dl_0;
214 uint32 dqs_gate_pst_dl_1;
215 uint32 dqs_gate_pst_dl_2;
216 uint32 dqs_gate_pst_dl_3;
217 uint32 dqs_in_pos_dl_0;
218 uint32 dqs_in_pos_dl_1;
219 uint32 dqs_in_pos_dl_2;
220 uint32 dqs_in_pos_dl_3;
221 uint32 dqs_in_neg_dl_0;
222 uint32 dqs_in_neg_dl_1;
223 uint32 dqs_in_neg_dl_2;
224 uint32 dqs_in_neg_dl_3;
225 }EMC_PHY_L2_TIMING_T,*EMC_PHY_L2_TIMING_T_PTR;
229 #define EMC_BASEADDR 0x20000000
230 #define EMC_CFG0 0x20000000
232 #define DMEM_CFG0 (EMC_BASEADDR + 0x40)
234 #define DCFG0_DQM_MODE_LOW 0 //DQM low in deactive
235 #define DCFG0_DQM_MODE_W0R0 1 //DQM hihe in deactive,Write: 0 cycle delay; Read: 0 cycle delay;
236 #define DCFG0_DQM_MODE_W0R1 2 //DQM hihe in deactive,Write: 0 cycle delay; Read: 1 cycle delay;
237 #define DCFG0_DQM_MODE_W0R2 3 //DQM hihe in deactive,Write: 0 cycle delay; Read: 2 cycle delay;
239 #define DCFG0_DQM_TERM_EN (1u << 2)
240 #define DCFG0_DQM_FORCE_HIGH (1u << 3)
242 #define DCFG0_BKPOS_HADDR3 (0u << 4)
243 #define DCFG0_BKPOS_HADDR4 (1u << 4)
244 #define DCFG0_BKPOS_HADDR5 (2u << 4)
245 #define DCFG0_BKPOS_HADDR6 (3u << 4)
246 #define DCFG0_BKPOS_HADDR8 (4u << 4)
247 #define DCFG0_BKPOS_HADDR10 (5u << 4)
248 #define DCFG0_BKPOS_HADDR13 (6u << 4)
249 #define DCFG0_BKPOS_HADDR16 (7u << 4)
250 #define DCFG0_BKPOS_HADDR18 (8u << 4)
251 #define DCFG0_BKPOS_HADDR20 (9u << 4)
252 #define DCFG0_BKPOS_HADDR22 (10u << 4)
253 #define DCFG0_BKPOS_HADDR23 (11u << 4)
254 #define DCFG0_BKPOS_HADDR24 (12u << 4)
255 #define DCFG0_BKPOS_HADDR25 (13u << 4)
256 #define DCFG0_BKPOS_HADDR26 (14u << 4)
257 #define DCFG0_BKPOS_HADDR28 (15u << 4)
259 #define DCFG0_BKMODE_1 (0u << 8)
260 #define DCFG0_BKMODE_2 (1u << 8)
261 #define DCFG0_BKMODE_4 (2u << 8)
262 #define DCFG0_BKMODE_8 (3u << 8)
264 #define DCFG0_ROWMODE_11 (0u << 10)
265 #define DCFG0_ROWMODE_12 (1u << 10)
266 #define DCFG0_ROWMODE_13 (2u << 10)
268 #define DCFG0_COLMODE_8 (0u << 12)
269 #define DCFG0_COLMODE_9 (1u << 12)
270 #define DCFG0_COLMODE_10 (2u << 12)
271 #define DCFG0_COLMODE_11 (3u << 12)
272 #define DCFG0_COLMODE_12 (4u << 12)
274 #define DCFG0_DWIDTH_16 (0u << 15)
275 #define DCFG0_DWIDTH_32 (1u << 15)
277 #define DCFG0_BL_2 (1u << 16)
278 #define DCFG0_BL_4 (2u << 16)
279 #define DCFG0_BL_8 (3u << 16)
280 #define DCFG0_BL_16 (4u << 16)
281 #define DCFG0_BL_FULLPAGE (7u << 16)
283 #define DCFG0_AUTOREF_ALLCS (1u << 19)
285 #define DCFG0_RL_2 (2u << 20)
286 #define DCFG0_RL_3 (3u << 20)
287 #define DCFG0_RL_4 (4u << 20)
288 #define DCFG0_RL_5 (5u << 20)
289 #define DCFG0_RL_6 (6u << 20)
290 #define DCFG0_RL_7 (7u << 20)
292 #define DCFG0_T_RW_0 (0u << 29)
293 #define DCFG0_T_RW_1 (1u << 29)
295 #define DCFG0_ALTERNATIVE_EN (1u << 30)
296 #define DCFG0_ROWHIT_EN (1u << 31)
297 #define DCFG0_AUTOREF_EN BIT_14
299 //define mode register domain..
301 #define MODE_REG_BL_1 (0)
302 #define MODE_REG_BL_2 (1)
303 #define MODE_REG_BL_4 (2)
304 #define MODE_REG_BL_8 (3)
306 #define MODE_REG_BT_SEQ (0)
307 #define MODE_REG_BT_INT (1)
309 #define MODE_REG_CL_1 (1)
310 #define MODE_REG_CL_2 (2)
311 #define MODE_REG_CL_3 (3)
313 #define MODE_REG_OPMODE (0)
315 #define MODE_REG_WB_PRORAM (0)
316 #define MODE_REG_WB_SINGLE (1)
318 //define extended mode register domain...
319 #define EX_MODE_REG_PASR_4_BANKS (0)
320 #define EX_MODE_REG_PASR_2_BANKS (1)
321 #define EX_MODE_REG_PASR_1_BANKS (2)
322 #define EX_MODE_REG_PASR_HALF_BANK (5)
323 #define EX_MODE_REG_PASR_QUART_BANK (6)
325 #define EX_MODE_REG_DS_FULL (0)
326 #define EX_MODE_REG_DS_HALF (1)