blob: b22a77ec06659b658c2d2e6aea8672e3c0d04b3a [file] [log] [blame]
Patrick Georgiac959032020-05-05 22:49:26 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Arthur Heymans0bf87de2017-11-04 06:15:05 +01002
Arthur Heymans0bf87de2017-11-04 06:15:05 +01003#include <stdint.h>
Angel Pons41e66ac2020-09-15 13:17:23 +02004#include "raminit.h"
Arthur Heymans0bf87de2017-11-04 06:15:05 +01005
6const struct dll_setting default_ddr2_667_ctrl[7] = {
Angel Ponsb99d5922021-01-13 13:50:41 +01007 /* tap pi db delay coarse */
Arthur Heymans0bf87de2017-11-04 06:15:05 +01008 {13, 0, 1, 0, 0, 0}, /* clkset0 */
9 {4, 1, 0, 0, 0, 0}, /* ctrl0 */
10 {13, 0, 1, 0, 0, 0}, /* clkset1 */
11 {4, 5, 0, 0, 0, 0}, /* cmd */
12 {4, 1, 0, 0, 0, 0}, /* ctrl1 */
13 {4, 1, 0, 0, 0, 0}, /* ctrl2 */
14 {4, 1, 0, 0, 0, 0}, /* ctrl3 */
15};
16
Arthur Heymans276049f2017-11-05 05:56:34 +010017const struct dll_setting default_ddr2_667_dqs[TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +010018 {1, 5, 1, 1, 1, 0},
19 {1, 6, 1, 1, 1, 0},
20 {2, 0, 1, 1, 1, 0},
21 {2, 1, 1, 1, 1, 0},
22 {2, 1, 1, 1, 1, 0},
23 {14, 6, 1, 0, 0, 0},
24 {14, 3, 1, 0, 0, 0},
25 {14, 0, 1, 0, 0, 0},
26};
27
Arthur Heymans276049f2017-11-05 05:56:34 +010028const struct dll_setting default_ddr2_667_dq[TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +010029 {9, 0, 0, 0, 1, 0},
30 {9, 1, 0, 0, 1, 0},
31 {9, 2, 0, 0, 1, 0},
32 {9, 2, 0, 0, 1, 0},
33 {9, 1, 0, 0, 1, 0},
34 {6, 4, 0, 0, 1, 0},
35 {6, 2, 0, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +010036 {5, 4, 0, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +010037};
38
39const struct dll_setting default_ddr2_800_ctrl[7] = {
40 /* tap pi db delay coarse */
41 {11, 5, 1, 0, 0, 0},
42 {0, 5, 1, 1, 0, 0},
43 {11, 5, 1, 0, 0, 0},
44 {1, 4, 1, 1, 0, 0},
45 {0, 5, 1, 1, 0, 0},
46 {0, 5, 1, 1, 0, 0},
47 {0, 5, 1, 1, 0, 0},
48};
49
Arthur Heymans276049f2017-11-05 05:56:34 +010050const struct dll_setting default_ddr2_800_dqs[TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +010051 {2, 5, 1, 1, 1, 0},
52 {2, 6, 1, 1, 1, 0},
53 {3, 0, 1, 1, 1, 0},
54 {3, 0, 1, 1, 1, 0},
55 {3, 3, 1, 1, 1, 0},
56 {2, 0, 1, 1, 1, 0},
57 {1, 3, 1, 1, 1, 0},
58 {0, 3, 1, 1, 1, 0},
59};
60
Arthur Heymans276049f2017-11-05 05:56:34 +010061const struct dll_setting default_ddr2_800_dq[TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +010062 {9, 3, 0, 0, 1, 0},
63 {9, 4, 0, 0, 1, 0},
64 {9, 5, 0, 0, 1, 0},
65 {9, 6, 0, 0, 1, 0},
66 {10, 0, 0, 0, 1, 0},
67 {8, 1, 0, 0, 1, 0},
68 {7, 5, 0, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +010069 {6, 2, 0, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +010070};
71
72const struct dll_setting default_ddr3_800_ctrl[2][7] = {
73 { /* 1N */
74 /* tap pi db(2) delay coarse */
Angel Ponsb99d5922021-01-13 13:50:41 +010075 {8, 2, 0, 0, 0, 0},
76 {8, 4, 0, 0, 0, 0},
77 {9, 5, 0, 0, 0, 0},
78 {6, 1, 0, 0, 0, 0},
79 {8, 4, 0, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +010080 {10, 0, 0, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +010081 {10, 0, 0, 0, 0, 0},
82 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +010083 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +010084 {2, 2, 1, 1, 0, 0},
85 {2, 4, 1, 1, 0, 0},
86 {3, 5, 0, 0, 0, 0},
87 {3, 2, 1, 1, 0, 0},
88 {2, 4, 1, 1, 0, 0},
89 {3, 6, 0, 0, 0, 0},
90 {3, 6, 0, 0, 0, 0},
91 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +010092};
93
Arthur Heymans276049f2017-11-05 05:56:34 +010094const struct dll_setting default_ddr3_800_dqs[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +010095 { /* 1N */
96 {12, 0, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +010097 {1, 1, 1, 1, 1, 0},
98 {2, 4, 1, 1, 1, 0},
99 {3, 5, 0, 0, 1, 0},
100 {4, 3, 0, 0, 1, 0},
101 {5, 2, 0, 0, 1, 0},
102 {6, 1, 0, 0, 1, 0},
103 {6, 4, 0, 0, 1, 0},
104 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100105 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100106 {5, 6, 0, 0, 0, 0},
107 {8, 0, 0, 0, 0, 0},
108 {9, 4, 0, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100109 {10, 4, 1, 0, 0, 0},
110 {11, 3, 1, 0, 0, 0},
111 {12, 1, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100112 {0, 1, 1, 1, 1, 0},
113 {0, 3, 1, 1, 1, 0},
114 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100115};
116
Arthur Heymans276049f2017-11-05 05:56:34 +0100117const struct dll_setting default_ddr3_800_dq[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100118 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100119 {4, 1, 0, 0, 1, 0},
120 {6, 4, 0, 0, 1, 0},
121 {8, 1, 0, 0, 1, 0},
122 {8, 6, 0, 0, 1, 0},
123 {9, 5, 0, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100124 {10, 2, 0, 0, 1, 0},
125 {10, 6, 1, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100126 {11, 4, 1, 0, 1, 0},
127 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100128 { /* 2N */
129 {11, 0, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100130 {0, 3, 1, 1, 1, 0},
131 {2, 1, 1, 1, 1, 0},
132 {2, 5, 1, 1, 1, 0},
133 {3, 5, 0, 0, 1, 0},
134 {4, 2, 0, 0, 1, 0},
135 {4, 6, 0, 0, 1, 0},
136 {5, 4, 0, 0, 1, 0},
137 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100138};
139
140const struct dll_setting default_ddr3_1067_ctrl[2][7] = {
141 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100142 {8, 5, 0, 0, 0, 0},
143 {7, 6, 0, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100144 {10, 2, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100145 {4, 4, 0, 0, 0, 0},
146 {7, 6, 0, 0, 0, 0},
147 {9, 2, 1, 0, 0, 0},
148 {9, 2, 1, 0, 0, 0},
149 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100150 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100151 {1, 5, 1, 1, 0, 0},
152 {0, 6, 1, 1, 0, 0},
153 {3, 2, 0, 0, 0, 0},
154 {2, 6, 1, 1, 0, 0},
155 {0, 6, 1, 1, 0, 0},
156 {2, 2, 1, 1, 0, 0},
157 {2, 2, 1, 1, 0, 0},
158 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100159};
160
Arthur Heymans276049f2017-11-05 05:56:34 +0100161const struct dll_setting default_ddr3_1067_dqs[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100162 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100163 {2, 5, 1, 1, 1, 0},
164 {5, 1, 0, 0, 1, 0},
165 {6, 6, 0, 0, 1, 0},
166 {8, 0, 0, 0, 1, 0},
167 {8, 6, 0, 0, 1, 0},
168 {9, 6, 1, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100169 {10, 6, 1, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100170 {0, 1, 1, 1, 0, 1},
171 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100172 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100173 {6, 4, 0, 0, 0, 0},
174 {9, 1, 1, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100175 {10, 6, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100176 {1, 0, 1, 1, 1, 0},
177 {1, 6, 1, 1, 1, 0},
178 {2, 5, 1, 1, 1, 0},
179 {3, 5, 0, 0, 1, 0},
180 {4, 1, 0, 0, 1, 0},
181 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100182};
183
Arthur Heymans276049f2017-11-05 05:56:34 +0100184const struct dll_setting default_ddr3_1067_dq[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100185 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100186 {6, 5, 0, 0, 1, 0},
187 {9, 3, 1, 0, 1, 0},
188 {0, 2, 1, 1, 0, 1},
189 {1, 0, 1, 1, 0, 1},
190 {2, 0, 1, 1, 0, 1},
191 {2, 5, 1, 1, 0, 1},
192 {3, 2, 0, 0, 0, 1},
193 {4, 1, 0, 0, 0, 1},
194 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100195 { /* 2N */
196 {10, 5, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100197 {2, 3, 1, 1, 1, 0},
198 {4, 1, 0, 0, 1, 0},
199 {5, 0, 0, 0, 1, 0},
200 {6, 0, 0, 0, 1, 0},
201 {6, 5, 0, 0, 1, 0},
202 {7, 2, 0, 0, 1, 0},
203 {8, 1, 0, 0, 1, 0},
204 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100205};
206
207const struct dll_setting default_ddr3_1333_ctrl[2][7] = {
208 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100209 {8, 5, 0, 0, 0, 0},
210 {9, 0, 1, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100211 {10, 2, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100212 {0, 0, 1, 1, 0, 0},
213 {9, 0, 1, 0, 0, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100214 {10, 4, 1, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100215 {10, 4, 1, 0, 0, 0},
216 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100217 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100218 {1, 6, 1, 1, 0, 0},
219 {2, 2, 1, 1, 0, 0},
220 {4, 2, 0, 0, 0, 0},
221 {3, 1, 1, 1, 0, 0},
222 {2, 2, 1, 1, 0, 0},
223 {4, 5, 0, 0, 0, 0},
224 {4, 5, 0, 0, 0, 0},
225 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100226};
227
Arthur Heymans276049f2017-11-05 05:56:34 +0100228const struct dll_setting default_ddr3_1333_dqs[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100229 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100230 {2, 4, 1, 1, 1, 0},
231 {5, 1, 0, 0, 1, 0},
232 {6, 6, 0, 0, 1, 0},
233 {8, 0, 0, 0, 1, 0},
234 {8, 6, 0, 0, 1, 0},
235 {9, 5, 1, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100236 {10, 6, 1, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100237 {0, 1, 1, 1, 0, 1},
238 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100239 { /* 2N */
240 {10, 4, 0, 0, 0, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100241 {0, 3, 1, 1, 1, 0},
242 {3, 2, 1, 1, 1, 0},
243 {5, 0, 0, 0, 1, 0},
244 {6, 1, 0, 0, 1, 0},
245 {7, 4, 0, 0, 1, 0},
246 {9, 2, 0, 0, 1, 0},
247 {9, 6, 0, 0, 1, 0},
248 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100249};
250
Arthur Heymans276049f2017-11-05 05:56:34 +0100251const struct dll_setting default_ddr3_1333_dq[2][TOTAL_BYTELANES] = {
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100252 { /* 1N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100253 {6, 5, 0, 0, 1, 0},
254 {9, 3, 1, 0, 1, 0},
255 {0, 2, 1, 1, 0, 1},
256 {1, 0, 1, 1, 0, 1},
257 {2, 0, 1, 1, 0, 1},
258 {2, 5, 1, 1, 0, 1},
259 {3, 2, 0, 0, 0, 1},
260 {4, 1, 0, 0, 0, 1},
261 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100262 { /* 2N */
Angel Ponsb99d5922021-01-13 13:50:41 +0100263 {1, 3, 1, 1, 1, 0},
264 {5, 6, 0, 0, 1, 0},
265 {8, 5, 0, 0, 1, 0},
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100266 {10, 2, 0, 0, 1, 0},
267 {11, 1, 0, 0, 1, 0},
268 {12, 3, 1, 0, 1, 0},
269 {13, 6, 1, 0, 1, 0},
Angel Ponsb99d5922021-01-13 13:50:41 +0100270 {0, 3, 1, 1, 0, 1},
271 },
Arthur Heymans0bf87de2017-11-04 06:15:05 +0100272};
Arthur Heymansf1287262017-12-25 18:30:01 +0100273
Angel Ponsb99d5922021-01-13 13:50:41 +0100274const u8 ddr3_emrs1_rtt_nom_config[16][4] = { /* [Config][Rank] */
Arthur Heymansf1287262017-12-25 18:30:01 +0100275 {0x00, 0x00, 0x00, 0x00}, /* NC_NC */
276 {0x11, 0x00, 0x00, 0x00}, /* 8S_NC */
277 {0x11, 0x11, 0x00, 0x00}, /* 8D_NC */
278 {0x11, 0x00, 0x00, 0x00}, /* 16S_NC */
279 {0x00, 0x00, 0x11, 0x00}, /* NC_8S */
280 {0x81, 0x00, 0x81, 0x00}, /* 8S_8S */
281 {0x81, 0x81, 0x81, 0x00}, /* 8D_8S */
282 {0x81, 0x00, 0x81, 0x00}, /* 16S_8S */
283 {0x00, 0x00, 0x11, 0x11}, /* NC_8D */
284 {0x81, 0x00, 0x81, 0x81}, /* 8S_8D */
285 {0x81, 0x81, 0x81, 0x81}, /* 8D_8D */
286 {0x81, 0x00, 0x81, 0x81}, /* 16S_8D */
287 {0x00, 0x00, 0x11, 0x00}, /* NC_16S */
288 {0x81, 0x00, 0x81, 0x00}, /* 8S_16S */
289 {0x81, 0x81, 0x81, 0x00}, /* 8D_16S */
290 {0x81, 0x00, 0x81, 0x00}, /* 16S_16S */
291};
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200292
Angel Ponsb99d5922021-01-13 13:50:41 +0100293const u8 post_jedec_tab[3][4][2] = { /* [FSB][DDR freq][17:13 or 12:8] */
294 { /* FSB DDR */
295 {0x3, 0x5}, /* 800 667 */
296 {0x3, 0x4}, /* 800 800 */
Arthur Heymans0d284952017-05-25 19:55:52 +0200297 },
Angel Ponsb99d5922021-01-13 13:50:41 +0100298 {
299 {0x4, 0x8}, /* 1067 667 */
300 {0x4, 0x6}, /* 1067 800 */
301 {0x3, 0x5}, /* 1067 1066 */
Arthur Heymans0d284952017-05-25 19:55:52 +0200302 },
Angel Ponsb99d5922021-01-13 13:50:41 +0100303 {
304 {0x5, 0x9}, /* 1333 667 */
305 {0x4, 0x7}, /* 1333 800 */
306 {0x4, 0x7}, /* 1333 1066 */
307 {0x4, 0x7}, /* 1333 1333 */
Arthur Heymans0d284952017-05-25 19:55:52 +0200308 },
309};
310
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200311const u32 ddr3_c2_tab[2][3][6][2] = { /* [n-mode][ddr3 freq][CAS][reg] */
312 /* 115h[15:0] 117h[23:0] */
313 { /* 1N mode */
Angel Ponsb99d5922021-01-13 13:50:41 +0100314 { /* DDR3 800 */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200315 {0x0189, 0x000aaa}, /* CAS = 5 */
316 {0x0189, 0x101aaa}, /* CAS = 6 */
317 },
Angel Ponsb99d5922021-01-13 13:50:41 +0100318 { /* DDR3 1067 */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200319 {0x0000, 0x000000}, /* CAS = 5 - Not supported */
320 {0x0089, 0x000bbb}, /* CAS = 6 */
321 {0x0099, 0x101bbb}, /* CAS = 7 */
Angel Ponsb99d5922021-01-13 13:50:41 +0100322 {0x0099, 0x202bbb}, /* CAS = 8 */
323 },
324 { /* DDR3 1333 */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200325 {0x0000, 0x000000}, /* CAS = 5 - Not supported */
326 {0x0000, 0x000000}, /* CAS = 6 - Not supported */
327 {0x0000, 0x000000}, /* CAS = 7 - Not supported */
328 {0x129a, 0x0078dc}, /* CAS = 8 */
329 {0x028a, 0x0078dc}, /* CAS = 9 */
330 {0x028a, 0x1088dc}, /* CAS = 10 */
331 },
332 },
333 { /* 2N mode */
Angel Ponsb99d5922021-01-13 13:50:41 +0100334 { /* DDR3 800 */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200335 {0x0189, 0x000aaa}, /* CAS = 5 */
336 {0x0189, 0x101aaa}, /* CAS = 6 */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200337 },
338 { /* DDR3 1067 */
339 {0x0000, 0x000000}, /* CAS = 5 - Not supported */
340 {0x0089, 0x000bbb}, /* CAS = 6 */
341 {0x0099, 0x101bbb}, /* CAS = 7 */
Angel Ponsb99d5922021-01-13 13:50:41 +0100342 {0x0099, 0x202bbb}, /* CAS = 8 */
343 },
344 { /* DDR3 1333 */
345 {0x0000, 0x000000}, /* CAS = 5 - Not supported */
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200346 {0x0000, 0x000000}, /* CAS = 6 - Not supported */
347 {0x0000, 0x000000}, /* CAS = 7 - Not supported */
348 {0x019a, 0x0078dc}, /* CAS = 8 */
349 {0x019a, 0x1088dc}, /* CAS = 9 */
350 {0x019a, 0x2098dc}, /* CAS = 10 */
351 },
Angel Ponsb99d5922021-01-13 13:50:41 +0100352 },
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200353};
354
355const u8 ddr3_c2_x264[3][6] = { /* [freq][cas] */
Angel Ponsb99d5922021-01-13 13:50:41 +0100356 { /* DDR3 800 */
357 0x78, /* CAS = 5 */
358 0x89, /* CAS = 6 */
359 },
360 { /* DDR3 1066 */
361 0x00, /* CAS = 5 - Not supported */
362 0xff, /* CAS = 6 */
363 0x8a, /* CAS = 7 */
364 0x9a, /* CAS = 8 */
365 },
366 { /* DDR3 1333 */
367 0x00, /* CAS = 5 - Not supported */
368 0x00, /* CAS = 6 - Not supported */
369 0xff, /* CAS = 7 - Not supported */
370 0xff, /* CAS = 8 */
371 0xff, /* CAS = 9 */
372 0xff, /* CAS = 10 */
373 },
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200374};
375
376const u16 ddr3_c2_x23c[3][6]={ /* [freq][cas] */
Angel Ponsb99d5922021-01-13 13:50:41 +0100377 { /* DDR3 800 */
378 0x9bbb, /* CAS = 5 */
379 0x8bbb, /* CAS = 6 */
380 },
381 { /* DDR3 1066 */
382 0x0000, /* CAS = 5 - Not supported */
383 0x9baa, /* CAS = 6 */
384 0x8caa, /* CAS = 7 */
385 0x7daa, /* CAS = 8 */
386 },
387 { /* DDR3 1333 */
388 0x0000, /* CAS = 5 - Not supported */
389 0x0000, /* CAS = 6 - Not supported */
390 0x0000, /* CAS = 7 - Not supported */
391 0xaecb, /* CAS = 8 */
392 0x9fcb, /* CAS = 9 */
393 0x8fcb, /* CAS = 10 */
394 },
Arthur Heymans3fa103a2017-05-25 19:54:49 +0200395};