summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/include/mach/flash-header/vf610-ddr-cr-default.imxcfg
blob: 8c411ddc7ecf2c45e3afa24d37907a9a2d48e41d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*

 The following table contains DDR3 memory timing parameters derived
 form memory module (Samsung K4B4G1646E) datasheet:

| CL         |                                  6 | @400Mhz          |
| WRLAT      |                                  5 |                  |
| t_RC       |                                 21 |                  |
| t_RRD      |                                  4 | [5]              |
| t_CCD      |                                  4 |                  |
| t_FAW      |          16(1KB page)/20(2KB page) |                  |
| t_RP       |                                  6 |                  |
| t_WTR      |                                  4 | [6]              |
| t_RAS(MIN) |                                 15 |                  |
| t_MRD      |                                  4 |                  |
| t_RTP      |                                  4 | [1]              |
| t_MOD      |                                 12 | [7]              |
| t_RAS(MAX) |                              28080 | [8]              |
| t_CKESR    |                                  4 | [9]              |
| t_CKE      |                                  3 | [10]             |
| t_RCD      |                                  6 |                  |
| t_DAL      |                                 12 | [11]             |
| t_DDLK     |                                512 |                  |
| t_RP(AB)   |                                  6 | n/a in datasheet |
| t_REFI     |                               3120 |                  |
| t_RFC      | 44 @ 1Gb, 64@2Gb, 104@4Gb, 140@8Gb |                  |
| t_XP       |                                  3 | [4]              |
| t_XPDLL    |                                 10 | [12]             |
| t_XS       | 48 @ 1Gb, 68@2Gb, 108@4Gb, 148@8Gb | [2]              |
| t_XSDLL    |                                512 |                  |
| t_CKSRX    |                                  5 | [3]              |
| t_CKSRE    |                                  5 | [3]              |
| MR0        |                                    |                  |
| MR1        |                                    |                  |
| MR2        |                                    |                  |
| MR3        |                                    |                  |
| t_ZQoper   |                                256 |                  |
| t_ZQinit   |                                512 |                  |
| t_ZQCS     |                                 64 |                  |
| ODTL_off   |                                  3 | [14]             |
| t_WLMRD    |                                 40 |                  |
| t_WLDQSEN  |                                 25 |                  |
| t_WR       |                                  6 |                  |
| t_ODTH8(R) |                                  6 | n/a in datasheet |
| t_ODTH8(W) |                                  6 |                  |


[1]  t_RTP      = max(4nCK, 7.5ns) = max(10ns, 7.5ns)@400Mhz = 4nCK
[2]  t_XS       = max(5nCK, t_RFC + 10ns)
[3]  t_CKSRX    = t_CKSRE = max(5nCK, 10ns) = max(12.5ns, 7.5ns)@400Mhz = 5nCK
[4]  t_XP       = max(3nCK, 7.5ns) = max(7.5ns, 7.5ns)@400Mhz = 3nCK
[5]  t_RRD      = max(4nCK, 10ns) = max(10ns, 10ns)@400Mhz = 4nCK
[6]  t_WTR      = max(4nCK, 7.5ns) = 4nCK (see [1] for calculation)
[7]  t_MOD      = max(12nCK, 15ns) = max(30ns, 15ns)@400Mhz = 12nCK
[8]  t_RAS(MAX) = 9 * t_REFI = 9 * 7.8us = 28080nCK
[9]  t_CKESR    = t_CKE(min) + 1tCK = 4nCK
[10] t_CKE      = max(3nCK, 7.5ns) = 3nCK (see [4])
[11] t_DAL      = t_WR + roundup(t_RP/t_CK(AVG)) = 6nCK + 6nCK = 12nCK
[12] t_XPDLL    = max(10nCK, 24ns) = max(25ns, 25ns)@400Mhz = 10nCK
[13] WRLAT      = AL + CWL = 0 (not supported by controller) + 5nCK = 5nCK
[14] ODTL_off   = WRLAT - 2 = 3nCK

*/

wm 32 DDRMC_CR00 DDRMC_CR00_DRAM_CLASS_DDR3
wm 32 DDRMC_CR02 0x00000005
wm 32 DDRMC_CR10 0x00013880
wm 32 DDRMC_CR11 0x00030d40
wm 32 DDRMC_CR12 0x0000050c
wm 32 DDRMC_CR13 0x15040400
wm 32 DDRMC_CR14 0x1406040f
wm 32 DDRMC_CR16 0x04040000
wm 32 DDRMC_CR17 0x006db00c
wm 32 DDRMC_CR18 0x00000403
wm 32 DDRMC_CR20 0x01000000
wm 32 DDRMC_CR21 0x00060001
wm 32 DDRMC_CR22 0x000c0000
wm 32 DDRMC_CR23 0x03000200
wm 32 DDRMC_CR24 0x00000006
wm 32 DDRMC_CR25 0x00010000
wm 32 DDRMC_CR26 0x0c30002c
wm 32 DDRMC_CR28 0x00000000
wm 32 DDRMC_CR29 0x00000003
wm 32 DDRMC_CR30 0x0000000a
wm 32 DDRMC_CR31 0x00300200
wm 32 DDRMC_CR33 0x00010000
wm 32 DDRMC_CR34 0x00050500
wm 32 DDRMC_CR38 0x00000000
wm 32 DDRMC_CR39 0x04001002
wm 32 DDRMC_CR41 0x00000001
wm 32 DDRMC_CR48 0x00460420
wm 32 DDRMC_CR66 0x01000200
wm 32 DDRMC_CR67 0x00000040
wm 32 DDRMC_CR69 0x00000200
wm 32 DDRMC_CR70 0x00000040
wm 32 DDRMC_CR72 0x00000000
wm 32 DDRMC_CR73 0x0a010300
wm 32 DDRMC_CR74 0x01014040
wm 32 DDRMC_CR75 0x01010101
wm 32 DDRMC_CR76 0x03030100
wm 32 DDRMC_CR77 0x01000101
wm 32 DDRMC_CR78 0x0700000c
wm 32 DDRMC_CR79 0x00000000
wm 32 DDRMC_CR82 0x10000000
wm 32 DDRMC_CR87 0x01000000
wm 32 DDRMC_CR88 0x00040000
wm 32 DDRMC_CR89 0x00000002
wm 32 DDRMC_CR91 0x00020000
wm 32 DDRMC_CR96 0x00002819
wm 32 DDRMC_CR117 0x00000000
wm 32 DDRMC_CR118 0x01010000
wm 32 DDRMC_CR120 0x02020000
wm 32 DDRMC_CR121 0x00000202
wm 32 DDRMC_CR122 0x01010064
wm 32 DDRMC_CR123 0x00010101
wm 32 DDRMC_CR124 0x00000064
wm 32 DDRMC_CR126 0x00000800
/*
 * Despite the RM insisting on setting RDLAT_ADJ to CASLAT_LIN - 1 in
 * two places: p 1459 (section 10.1.5.133 "Control Register 132
 * (DDRMC_CR132)") and p. 1587 (section 10.1.6.15.10 "Configure the
 * 'output enable' of I/O Control") changing it from current 6 to
 * recommended 5 results in non-working DDR.
 */
wm 32 DDRMC_CR132 0x00000506
wm 32 DDRMC_CR137 0x00020000
wm 32 DDRMC_CR138 0x01000100
wm 32 DDRMC_CR154 0x682c4000
wm 32 DDRMC_CR155 0x00000009
wm 32 DDRMC_CR158 0x00000006
wm 32 DDRMC_CR161 0x00010606