AGESA F15: AMD family15 AGESA code
[coreboot.git] / src / vendorcode / amd / agesa / f15 / Legacy / PlatformMemoryConfiguration.inc
1 ; ****************************************************************************
2 ; *
3 ; * @file
4 ; *
5 ; * AMD Platform Specific Memory Configuration
6 ; *
7 ; * Contains AMD AGESA Memory Configuration Override Interface
8 ; *
9 ; * @xrefitem bom "File Content Label" "Release Content"
10 ; * @e project:      AGESA
11 ; * @e sub-project:  Include
12 ; * @e \$Revision: 22910 $   @e \$Date: 2009-11-27 04:50:20 -0600 (Fri, 27 Nov 2009) $
13 ;
14 ; ****************************************************************************
15 ; *
16 ; * Copyright (C) 2012 Advanced Micro Devices, Inc.
17 ; * All rights reserved.
18 ; *
19 ; * Redistribution and use in source and binary forms, with or without
20 ; * modification, are permitted provided that the following conditions are met:
21 ; *     * Redistributions of source code must retain the above copyright
22 ; *       notice, this list of conditions and the following disclaimer.
23 ; *     * Redistributions in binary form must reproduce the above copyright
24 ; *       notice, this list of conditions and the following disclaimer in the
25 ; *       documentation and/or other materials provided with the distribution.
26 ; *     * Neither the name of Advanced Micro Devices, Inc. nor the names of
27 ; *       its contributors may be used to endorse or promote products derived
28 ; *       from this software without specific prior written permission.
29 ; *
30 ; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
31 ; * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
32 ; * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33 ; * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
34 ; * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
35 ; * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36 ; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
37 ; * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 ; * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
39 ; * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 ; *
41 ; *
42 ; **************************************************************************
43 IFNDEF PSO_ENTRY
44   PSO_ENTRY           TEXTEQU    <UINT8>; < Platform Configuration Table Entry
45 ENDIF
46 ; *****************************************************************************************
47 ; *
48 ; *                 PLATFORM SPECIFIC MEMORY DEFINITIONS
49 ; *
50 ; *****************************************************************************************
51 ; */
52 ;
53 ; < Memory Speed and DIMM Population Masks
54 ;
55 ; < DDR Speed Masks
56 ;
57 ANY_SPEED     EQU     0FFFFFFFFh
58 DDR400        EQU     ( 1 SHL (DDR400_FREQUENCY   / 66))
59 DDR533        EQU     ( 1 SHL (DDR533_FREQUENCY   / 66))
60 DDR667        EQU     ( 1 SHL (DDR667_FREQUENCY   / 66))
61 DDR800        EQU     ( 1 SHL (DDR800_FREQUENCY   / 66))
62 DDR1066       EQU     ( 1 SHL (DDR1066_FREQUENCY  / 66))
63 DDR1333       EQU     ( 1 SHL (DDR1333_FREQUENCY  / 66))
64 DDR1600       EQU     ( 1 SHL (DDR1600_FREQUENCY  / 66))
65 DDR1866       EQU     ( 1 SHL (DDR1866_FREQUENCY  / 66))
66 DDR2133       EQU     ( 1 SHL (DDR2133_FREQUENCY  / 66))
67 DDR2400       EQU     ( 1 SHL (DDR2400_FREQUENCY  / 66))
68 ; <
69 ; <  DIMM POPULATION MASKS
70 ;
71 ANY_        EQU      0FFh
72 SR_DIMM0    EQU     0001h
73 SR_DIMM1    EQU     0010h
74 SR_DIMM2    EQU     0100h
75 SR_DIMM3    EQU     1000h
76 DR_DIMM0    EQU     0002h
77 DR_DIMM1    EQU     0020h
78 DR_DIMM2    EQU     0200h
79 DR_DIMM3    EQU     2000h
80 QR_DIMM0    EQU     0004h
81 QR_DIMM1    EQU     0040h
82 QR_DIMM2    EQU     0400h
83 QR_DIMM3    EQU     4000h
84 LR_DIMM0    EQU     0001h
85 LR_DIMM1    EQU     0010h
86 LR_DIMM2    EQU     0100h
87 LR_DIMM3    EQU     1000h
88 ANY_DIMM0   EQU     000Fh
89 ANY_DIMM1   EQU     00F0h
90 ANY_DIMM2   EQU     0F00h
91 ANY_DIMM3   EQU    0F000h
92 ; <
93 ; <  CS POPULATION MASKS
94 ;
95 CS_ANY_     EQU     0FFh
96 CS0_        EQU      01h
97 CS1_        EQU      02h
98 CS2_        EQU      04h
99 CS3_        EQU      08h
100 CS4_        EQU      10h
101 CS5_        EQU      20h
102 CS6_        EQU      40h
103 CS7_        EQU      80h
104 ;
105 ;  Number of Dimms
106 ;
107 ANY_NUM      EQU    0FFh
108 NO_DIMM      EQU     00h
109 ONE_DIMM     EQU     01h
110 TWO_DIMM     EQU     02h
111 THREE_DIMM   EQU     04h
112 FOUR_DIMM    EQU     08h
113 ;
114 ;  DIMM VOLTAGE MASK
115 ;
116 VOLT_ANY_    EQU    0FFh
117 VOLT1_5_     EQU     01h
118 VOLT1_35_    EQU     02h
119 VOLT1_25_    EQU     04h
120 ;
121 ;  NOT APPLICIABLE
122 ;
123 NA_          EQU     00h
124 ; *****************************************************************************************
125 ; *
126 ; * Platform Specific Override Definitions for Socket, Channel and Dimm
127 ; * This indicates where a platform override will be applied.
128 ; *
129 ; *****************************************************************************************
130 ;
131 ;  SOCKET MASKS
132 ;
133 ANY_SOCKET      EQU    0FFh
134 SOCKET0         EQU     01h
135 SOCKET1         EQU     02h
136 SOCKET2         EQU     04h
137 SOCKET3         EQU     08h
138 SOCKET4         EQU     10h
139 SOCKET5         EQU     20h
140 SOCKET6         EQU     40h
141 SOCKET7         EQU     80h
142 ;
143 ;  CHANNEL MASKS
144 ;
145 ANY_CHANNEL     EQU    0FFh
146 CHANNEL_A       EQU     01h
147 CHANNEL_B       EQU     02h
148 CHANNEL_C       EQU     04h
149 CHANNEL_D       EQU     08h
150 ;
151 ;  DIMM MASKS
152 ;
153 ALL_DIMMS       EQU    0FFh
154 DIMM0           EQU     01h
155 DIMM1           EQU     02h
156 DIMM2           EQU     04h
157 DIMM3           EQU     08h
158 ;
159 ;  REGISTER ACCESS MASKS
160 ;
161 ACCESS_NB0      EQU      0h
162 ACCESS_NB1      EQU     01h
163 ACCESS_NB2      EQU     02h
164 ACCESS_NB3      EQU     03h
165 ACCESS_NB4      EQU     04h
166 ACCESS_PHY      EQU     05h
167 ACCESS_DCT_XT   EQU     06h
168 ; *****************************************************************************************
169 ; *
170 ; * Platform Specific Overriding Table Definitions
171 ; *
172 ; *****************************************************************************************
173 PSO_END                EQU      0     ; < Table End
174 PSO_CKE_TRI            EQU      1     ; < CKE Tristate Map
175 PSO_ODT_TRI            EQU      2     ; < ODT Tristate Map
176 PSO_CS_TRI             EQU      3     ; < CS Tristate Map
177 PSO_MAX_DIMMS          EQU      4     ; < Max Dimms per channel
178 PSO_CLK_SPEED          EQU      5     ; < Clock Speed
179 PSO_DIMM_TYPE          EQU      6     ; < Dimm Type
180 PSO_MEMCLK_DIS         EQU      7     ; < MEMCLK Disable Map
181 PSO_MAX_CHNLS          EQU      8     ; < Max Channels per Socket
182 PSO_BUS_SPEED          EQU      9     ; < Max Memory Bus Speed
183 PSO_MAX_CHIPSELS       EQU     10     ; < Max Chipsel per Channel
184 PSO_MEM_TECH           EQU     11     ; < Channel Memory Type
185 PSO_WL_SEED            EQU     12     ; < DDR3 Write Levelization Seed delay
186 PSO_RXEN_SEED          EQU     13     ; < Hardwared based RxEn seed
187 PSO_NO_LRDIMM_CS67_ROUTING          EQU    14     ; < CS6 and CS7 are not Routed to all Memoy slots on a channel for LRDIMMs
188 PSO_SOLDERED_DOWN_SODIMM_TYPE       EQU    15     ; < Soldered down SODIMM type
189 PSO_LVDIMM_VOLT1_5_SUPPORT          EQU    16     ; < Force LvDimm voltage to 1.5V
190 PSO_MIN_RD_WR_DATAEYE_WIDTH         EQU    17     ; < Min RD/WR dataeye width
191 PSO_CPU_FAMILY_TO_OVERRIDE          EQU    18     ; < CPU family signature to tell following PSO macros are CPU family dependent
192 ; **********************************
193 ; * CONDITIONAL PSO SPECIFIC ENTRIES
194 ; **********************************
195 ;  Condition Types
196 CONDITIONAL_PSO_MIN   EQU     100     ; < Start of Conditional Entry Types
197 PSO_CONDITION_AND     EQU     100     ; < And Block - Start of Conditional block
198 PSO_CONDITION_LOC     EQU     101     ; < Location - Specify Socket, Channel, Dimms to be affected
199 PSO_CONDITION_SPD     EQU     102     ; < SPD - Specify a specific SPD value on a Dimm on the channel
200 PSO_CONDITION_REG     EQU     103     ;    Reserved
201 PSO_CONDITION_MAX     EQU     103     ; < End Of Condition Entry Types
202 ;  Action Types
203 PSO_ACTION_MIN        EQU     120     ; < Start of Action Entry Types
204 PSO_ACTION_ODT        EQU     120     ; < ODT values to override
205 PSO_ACTION_ADDRTMG    EQU     121     ; < Address/Timing values to override
206 PSO_ACTION_ODCCONTROL EQU     122     ; < ODC Control values to override
207 PSO_ACTION_SLEWRATE   EQU     123     ; < Slew Rate value to override
208 PSO_ACTION_REG        EQU     124     ;    Reserved
209 PSO_ACTION_SPEEDLIMIT EQU     125     ; < Memory Bus speed Limit based on configuration
210 PSO_ACTION_MAX        EQU     125     ; < End of Action Entry Types
211 CONDITIONAL_PSO_MAX   EQU     139     ; < End of Conditional Entry Types
212 ; **********************************
213 ; * TABLE DRIVEN PSO SPECIFIC ENTRIES
214 ; **********************************
215 ;  Condition descriptor
216 PSO_TBLDRV_CONFIG       EQU     200     ; < Configuration Descriptor
217
218 ;  Overriding entry types
219 PSO_TBLDRV_START        EQU     210     ; < Start of Table Driven Overriding Entry Types
220 PSO_TBLDRV_SPEEDLIMIT   EQU     210     ; < Speed Limit
221 PSO_TBLDRV_ODT_RTTNOM   EQU     211     ; < RttNom
222 PSO_TBLDRV_ODT_RTTWR    EQU     212     ; < RttWr
223 PSO_TBLDRV_ODTPATTERN   EQU     213     ; < Odt Patterns
224 PSO_TBLDRV_ADDRTMG      EQU     214     ; < Address/Timing values
225 PSO_TBLDRV_ODCCTRL      EQU     215     ; < ODC Control values
226 PSO_TBLDRV_SLOWACCMODE  EQU     216     ; < Slow Access Mode
227 PSO_TBLDRV_MR0_CL       EQU     217     ; < MR0[CL]
228 PSO_TBLDRV_MR0_WR       EQU     218     ; < MR0[WR]
229 PSO_TBLDRV_RC2_IBT      EQU     219     ; < RC2[IBT]
230 PSO_TBLDRV_RC10_OPSPEED EQU     220     ; < RC10[Opearting Speed]
231 PSO_TBLDRV_LRDIMM_IBT   EQU     221     ; < LrDIMM IBT
232 PSO_TBLDRV____TRAINING   EQU     222    ; < training
233 PSO_TBLDRV_INVALID_TYPE EQU     223     ; < Invalid Type
234 PSO_TBLDRV_END          EQU     223     ; < End of Table Driven Overriding Entry Types
235
236
237 ; *****************************************************************************************
238 ; *
239 ; *                 CONDITIONAL OVERRIDE TABLE MACROS
240 ; *
241 ; *****************************************************************************************
242 CPU_FAMILY_TO_OVERRIDE     MACRO     CpuFamilyRevision:REQ
243  DB PSO_CPU_FAMILY_TO_OVERRIDE
244  DB 4
245  DD CpuFamilyRevision
246 ENDM
247
248 MEMCLK_DIS_MAP    MACRO SocketID:REQ, ChannelID:REQ, Bit0Map:REQ, Bit1Map:REQ, Bit2Map:REQ, Bit3Map:REQ, Bit4Map:REQ, Bit5Map:REQ, Bit6Map:REQ, Bit7Map:REQ
249  DB PSO_MEMCLK_DIS
250  DB 11
251  DB SocketID
252  DB ChannelID
253  DB ALL_DIMMS
254  DB Bit0Map
255  DB Bit1Map
256  DB Bit2Map
257  DB Bit3Map
258  DB Bit4Map
259  DB Bit5Map
260  DB Bit6Map
261  DB Bit7Map
262 ENDM
263
264 CKE_TRI_MAP     MACRO     SocketID:REQ, ChannelID:REQ, Bit0Map:REQ, Bit1Map:REQ
265  DB PSO_CKE_TRI
266  DB 5
267  DB SocketID
268  DB ChannelID
269  DB ALL_DIMMS
270  DB Bit0Map
271  DB Bit1Map
272 ENDM
273
274 ODT_TRI_MAP     MACRO     SocketID:REQ, ChannelID:REQ, Bit0Map:REQ, Bit1Map:REQ, Bit2Map:REQ, Bit3Map:REQ
275  DB PSO_ODT_TRI
276  DB 7
277  DB SocketID
278  DB ChannelID
279  DB ALL_DIMMS
280  DB Bit0Map
281  DB Bit1Map
282  DB Bit2Map
283  DB Bit3Map
284 ENDM
285
286 CS_TRI_MAP     MACRO     SocketID:REQ, ChannelID:REQ, Bit0Map:REQ, Bit1Map:REQ, Bit2Map:REQ, Bit3Map:REQ, Bit4Map:REQ, Bit5Map:REQ, Bit6Map:REQ, Bit7Map:REQ
287  DB PSO_CS_TRI
288  DB 11
289  DB SocketID
290  DB ChannelID
291  DB ALL_DIMMS
292  DB Bit0Map
293  DB Bit1Map
294  DB Bit2Map
295  DB Bit3Map
296  DB Bit4Map
297  DB Bit5Map
298  DB Bit6Map
299  DB Bit7Map
300 ENDM
301
302 NUMBER_OF_DIMMS_SUPPORTED     MACRO     SocketID:REQ, ChannelID:REQ, NumberOfDimmSlotsPerChannel:REQ
303  DB PSO_MAX_DIMMS
304  DB 4
305  DB SocketID
306  DB ChannelID
307  DB ALL_DIMMS
308  DB NumberOfDimmSlotsPerChannel
309 ENDM
310
311 NUMBER_OF_CHIP_SELECTS_SUPPORTED     MACRO     SocketID:REQ, ChannelID:REQ, NumberOfChipSelectsPerChannel:REQ
312  DB PSO_MAX_CHIPSELS
313  DB 4
314  DB SocketID
315  DB ChannelID
316  DB ALL_DIMMS
317  DB NumberOfChipSelectsPerChannel
318 ENDM
319
320 NUMBER_OF_CHANNELS_SUPPORTED     MACRO     SocketID:REQ, NumberOfChannelsPerSocket:REQ
321  DB PSO_MAX_CHNLS
322  DB 4
323  DB SocketID
324  DB ANY_CHANNEL
325  DB ALL_DIMMS
326  DB NumberOfChannelsPerSocket
327 ENDM
328
329 OVERRIDE_DDR_BUS_SPEED     MACRO     SocketID:REQ, ChannelID:REQ, TimingMode:REQ, BusSpeed:REQ
330  PSO_BUS_SPEED
331  DB 11
332  DB SocketID
333  DB ChannelID
334  DB ALL_DIMMS
335  DD TimingMode
336  DD BusSpeed
337 ENDM
338
339 DRAM_TECHNOLOGY           MACRO SocketID:REQ, MemTechType:REQ
340  DB PSO_MEM_TECH
341  DB 7
342  DB SocketID
343  DB ANY_CHANNEL
344  DB ALL_DIMMS
345  DD MemTechType
346 ENDM
347
348 WRITE_LEVELING_SEED     MACRO SocketID:REQ, ChannelID:REQ, DimmID:REQ, Byte0Seed:REQ, Byte1Seed:REQ, Byte2Seed:REQ, Byte3Seed:REQ, Byte4Seed:REQ, Byte5Seed:REQ, \
349 Byte6Seed:REQ, Byte7Seed:REQ, ByteEccSeed:REQ
350  DB PSO_WL_SEED
351  DB 12
352  DB SocketID
353  DB ChannelID
354  DB DimmID
355  DB Byte0Seed
356  DB Byte1Seed
357  DB Byte2Seed
358  DB Byte3Seed
359  DB Byte4Seed
360  DB Byte5Seed
361  DB Byte6Seed
362  DB Byte7Seed
363  DB ByteEccSeed
364 ENDM
365
366 HW_RXEN_SEED     MACRO SocketID:REQ, ChannelID:REQ, DimmID: REQ, Byte0Seed:REQ, Byte1Seed:REQ, Byte2Seed:REQ, Byte3Seed:REQ, Byte4Seed:REQ, Byte5Seed:REQ, \
367 Byte6Seed:REQ, Byte7Seed:REQ, ByteEccSeed:REQ
368   DB PSO_RXEN_SEED
369   DB 21
370   DB SocketID
371   DB ChannelID
372   DB DimmID
373   DW Byte0Seed
374   DW Byte1Seed
375   DW Byte2Seed
376   DW Byte3Seed
377   DW Byte4Seed
378   DW Byte5Seed
379   DW Byte6Seed
380   DW Byte7Seed
381   DW ByteEccSeed
382 ENDM
383
384 NO_LRDIMM_CS67_ROUTING     MACRO SocketID:REQ, ChannelID:REQ
385   DB PSO_NO_LRDIMM_CS67_ROUTING
386   DB 4
387   DB SocketID
388   DB ChannelID
389   DB ALL_DIMMS
390   DB 1
391 ENDM
392
393 SOLDERED_DOWN_SODIMM_TYPE     MACRO SocketID:REQ, ChannelID:REQ
394   DB PSO_SOLDERED_DOWN_SODIMM_TYPE
395   DB 4
396   DB SocketID
397   DB ChannelID
398   DB ALL_DIMMS
399   DB 1
400 ENDM
401
402 LVDIMM_FORCE_VOLT1_5_FOR_D0    MACRO
403  DB PSO_LVDIMM_VOLT1_5_SUPPORT
404  DB 4
405  DB ANY_SOCKET
406  DB ANY_CHANNEL
407  DB ALL_DIMMS
408  DB 1
409 ENDM
410
411 MIN_RD_WR_DATAEYE_WIDTH        MACRO     SocketID:REQ, ChannelID:REQ, MinRdDataeyeWidth:REQ, MinWrDataeyeWidth:REQ
412   DB PSO_MIN_RD_WR_DATAEYE_WIDTH
413   DB 5
414   DB SocketID
415   DB ChannelID
416   DB ALL_DIMMS
417   DB MinRdDataeyeWidth
418   DB MinWrDataeyeWidth
419 ENDM
420
421 ; *****************************************************************************************
422 ; *
423 ; *                 CONDITIONAL OVERRIDE TABLE MACROS
424 ; *
425 ; *****************************************************************************************
426 CONDITION_AND      MACRO
427  DB PSO_CONDITION_AND
428  DB 0
429 ENDM
430
431 COND_LOC     MACRO     SocketMsk:REQ, ChannelMsk:REQ, DimmMsk:REQ
432  DB PSO_CONDITION_LOC
433  DB 3
434  DB SocketMsk
435  DB ChannelMsk
436  DB DimmMsk
437 ENDM
438
439 COND_SPD     MACRO     Byte:REQ, Mask:REQ, Value:REQ
440  DB PSO_CONDITION_SPD
441  DB 3
442  DB Byte
443  DB Mask
444  DB Value
445 ENDM
446
447 COND_REG     MACRO     Access:REQ, Offset:REQ, Mask:REQ, Value:REQ
448  DB PSO_CONDITION_REG
449  DB 11
450  DB Access
451  DW Offset
452  DD Mask
453  DD Value
454 ENDM
455
456 ACTION_ODT     MACRO     Frequency:REQ, Dimms:REQ, QrDimms:REQ, DramOdt:REQ, QrDramOdt:REQ, DramDynOdt:REQ
457  DB PSO_ACTION_ODT
458  DB 9
459  DD Frequency
460  DB Dimms
461  DB QrDimms
462  DB DramOdt
463  DB QrDramOdt
464  DB DramDynOdt
465 ENDM
466
467 ACTION_ADDRTMG     MACRO     Frequency:REQ, DimmConfig:REQ, AddrTmg:REQ
468  DB PSO_ACTION_ADDRTMG
469  DB 10
470  DD Frequency
471  DW DimmConfig
472  DD AddrTmg
473 ENDM
474
475 ACTION_ODCCTRL     MACRO     Frequency:REQ, DimmConfig:REQ, OdcCtrl:REQ
476  DB PSO_ACTION_ODCCONTROL
477  DB 10
478  DD Frequency
479  DW DimmConfig
480  DD OdcCtrl
481 ENDM
482
483 ACTION_SLEWRATE     MACRO     Frequency:REQ, DimmConfig:REQ, SlewRate:REQ
484  DB PSO_ACTION_SLEWRATE
485  DB 10
486  DD Frequency
487  DW DimmConfig
488  DD SlewRate
489 ENDM
490
491 ACTION_SPEEDLIMIT     MACRO     DimmConfig:REQ, Dimms:REQ, SpeedLimit15:REQ, SpeedLimit135:REQ, SpeedLimit125:REQ
492  DB PSO_ACTION_SPEEDLIMIT
493  DB 9
494  DW DimmConfig
495  DB Dimms
496  DW SpeedLimit15
497  DW SpeedLimit135
498  DW SpeedLimit125
499 ENDM
500
501 ; *****************************************************************************************
502 ; *
503 ; *                 END OF CONDITIONAL OVERRIDE TABLE MACROS
504 ; *
505 ; *****************************************************************************************
506 ; *****************************************************************************************
507 ; *
508 ; *                 TABLE DRIVEN OVERRIDE  MACROS
509 ; *
510 ; *****************************************************************************************
511 ; Configuration sub-descriptors
512 CONFIG_GENERAL        EQU   0
513 CONFIG_SPEEDLIMIT     EQU   1
514 CONFIG_RC2IBT         EQU   2
515 CONFIG_DONT_CARE      EQU   3
516 Config_Type  TEXTEQU  <DWORD>
517 ;
518 ; Configuration Macros
519 ;
520 TBLDRV_CONFIG_TO_OVERRIDE     MACRO     DimmPerCH:REQ, Frequency:REQ, DimmVolt:REQ, DimmConfig:REQ
521  DB PSO_TBLDRV_CONFIG
522  DB 9
523  DB CONFIG_GENERAL
524  DB DimmPerCH
525  DB DimmVolt
526  DD Frequency
527  DW DimmConfig
528 ENDM
529
530 TBLDRV_SPEEDLIMIT_CONFIG_TO_OVERRIDE     MACRO     DimmPerCH:REQ, Dimms:REQ, NumOfSR:REQ, NumOfDR:REQ, NumOfQR:REQ,  NumOfLRDimm:REQ
531  DB PSO_TBLDRV_CONFIG
532  DB 7
533  DB CONFIG_SPEEDLIMIT
534  DB DimmPerCH
535  DB Dimms
536  DB NumOfSR
537  DB NumOfDR
538  DB NumOfQR
539  DB NumOfLRDimm
540 ENDM
541
542 TBLDRV_RC2IBT_CONFIG_TO_OVERRIDE     MACRO     DimmPerCH:REQ, Frequency:REQ, DimmVolt:REQ, DimmConfig:REQ, NumOfReg:REQ
543  DB PSO_TBLDRV_CONFIG
544  DB 10
545  DB CONFIG_RC2IBT
546  DB DimmPerCH
547  DB DimmVolt
548  DD Frequency
549  DW DimmConfig
550  DB NumOfReg
551 ENDM
552 ;
553 ; Overriding Macros
554 ;
555 TBLDRV_CONFIG_ENTRY_SPEEDLIMIT     MACRO     SpeedLimit1_5:REQ, SpeedLimit1_35:REQ, SpeedLimit1_25:REQ
556  DB PSO_TBLDRV_SPEEDLIMIT
557  DB 6
558  DW SpeedLimit1_5
559  DW SpeedLimit1_35
560  DW SpeedLimit1_25
561 ENDM
562
563 TBLDRV_CONFIG_ENTRY_ODT_RTTNOM     MACRO     TgtCS:REQ, RttNom:REQ
564  DB PSO_TBLDRV_ODT_RTTNOM
565  DB 2
566  DB TgtCS
567  DB RttNom
568 ENDM
569
570 TBLDRV_CONFIG_ENTRY_ODT_RTTWR     MACRO     TgtCS:REQ, RttWr:REQ
571  DB PSO_TBLDRV_ODT_RTTWR
572  DB 2
573  DB TgtCS
574  DB RttWr
575 ENDM
576
577 TBLDRV_CONFIG_ENTRY_ODTPATTERN     MACRO     RdODTCSHigh:REQ, RdODTCSLow:REQ, WrODTCSHigh:REQ, WrODTCSLow:REQ
578  DB PSO_TBLDRV_ODTPATTERN
579  DB 16
580  DD RdODTCSHigh
581  DD RdODTCSLow
582  DD WrODTCSHigh
583  DD WrODTCSLow
584 ENDM
585
586 TBLDRV_CONFIG_ENTRY_ADDRTMG     MACRO     AddrTmg:REQ
587  DB PSO_TBLDRV_ADDRTMG
588  DB 4
589  DD AddrTmg
590 ENDM
591
592 TBLDRV_CONFIG_ENTRY_ODCCTRL     MACRO     OdcCtrl:REQ
593  DB PSO_TBLDRV_ODCCTRL
594  DB 4
595  DD OdcCtrl
596 ENDM
597
598 TBLDRV_CONFIG_ENTRY_SLOWACCMODE     MACRO     SlowAccMode:REQ
599  DB PSO_TBLDRV_SLOWACCMODE
600  DB 1
601  DB SlowAccMode
602 ENDM
603
604 TBLDRV_CONFIG_ENTRY_RC2_IBT     MACRO     TgtDimm:REQ, IBT:REQ
605  DB PSO_TBLDRV_RC2_IBT
606  DB 2
607  DB TgtDimm
608  DB IBT
609 ENDM
610
611 TBLDRV_OVERRIDE_MR0_CL     MACRO     RegValOfTcl:REQ, MR0CL13:REQ, MR0CL0:REQ
612  DB PSO_TBLDRV_CONFIG
613  DB 1
614  DB CONFIG_DONT_CARE
615  DB PSO_TBLDRV_MR0_CL
616  DB 3
617  DB RegValOfTcl
618  DB MR0CL13
619  DB MR0CL0
620 ENDM
621
622 TBLDRV_OVERRIDE_MR0_WR     MACRO     RegValOfTwr:REQ, MR0WR:REQ
623  DB PSO_TBLDRV_CONFIG
624  DB 1
625  DB CONFIG_DONT_CARE
626  DB PSO_TBLDRV_MR0_WR
627  DB 2
628  DB RegValOfTcl
629  DB MR0WR
630 ENDM
631
632 TBLDRV_OVERRIDE_RC10_OPSPEED     MACRO     Frequency:REQ, MR10OPSPEED:REQ
633  DB PSO_TBLDRV_CONFIG
634  DB 1
635  DB CONFIG_DONT_CARE
636  DB PSO_TBLDRV_RC10_OPSPEED
637  DB 5
638  DD Frequency
639  DB MR10OPSPEED
640 ENDM
641
642 TBLDRV_CONFIG_ENTRY_LRDMM_IBT     MACRO     F0RC8:REQ, F1RC0:REQ, F1RC1:REQ, F1RC2:REQ
643  DB PSO_TBLDRV_LRDIMM_IBT
644  DB 4
645  DB F0RC8
646  DB F1RC0
647  DB F1RC1
648  DB F1RC2
649 ENDM
650
651 TBLDRV_CONFIG_ENTRY____TRAINING     MACRO     Training__Mode:REQ
652  DB PSO_TBLDRV____TRAINING
653  DB 1
654  DB Training__Mode
655 ENDM
656
657 ;
658 ; Macros for removing entries
659 ;
660 INVALID_CONFIG_FLAG   EQU   8000h
661
662 TBLDRV_INVALID_CONFIG     MACRO
663  DB PSO_TBLDRV_INVALID_TYPE
664  DB 0
665 ENDM
666 ; *****************************************************************************************
667 ; *
668 ; *                 END OF TABLE DRIVEN OVERRIDE  MACROS
669 ; *
670 ; *****************************************************************************************