5 * Install of build option: Memory
7 * Contains AMD AGESA install macros and test conditions. Output is the
8 * defaults tables reflecting the User's build options selection.
10 * @xrefitem bom "File Content Label" "Release Content"
12 * @e sub-project: Options
13 * @e \$Revision: 56315 $ @e \$Date: 2011-07-11 15:59:14 -0600 (Mon, 11 Jul 2011) $
15 /*****************************************************************************
17 * Copyright (C) 2012 Advanced Micro Devices, Inc.
18 * All rights reserved.
20 * Redistribution and use in source and binary forms, with or without
21 * modification, are permitted provided that the following conditions are met:
22 * * Redistributions of source code must retain the above copyright
23 * notice, this list of conditions and the following disclaimer.
24 * * Redistributions in binary form must reproduce the above copyright
25 * notice, this list of conditions and the following disclaimer in the
26 * documentation and/or other materials provided with the distribution.
27 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
28 * its contributors may be used to endorse or promote products derived
29 * from this software without specific prior written permission.
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
32 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
33 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
35 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
38 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
39 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43 ***************************************************************************/
45 #ifndef _OPTION_MEMORY_INSTALL_H_
46 #define _OPTION_MEMORY_INSTALL_H_
49 #include "OptionMemory.h"
51 /*-------------------------------------------------------------------------------
52 * This option file is designed to be included into the platform solution install
53 * file. The platform solution install file will define the options status.
54 * Check to validate the definition
57 /*----------------------------------------------------------------------------------
58 * FEATURE BLOCK FUNCTIONS
60 * This section defines function names that depend upon options that are selected
61 * in the platform solution install file.
64 IN OUT MEM_NB_BLOCK *NBPtr
71 IN MEM_MAIN_DATA_BLOCK *MMPtr
77 BOOLEAN MemMDefRetFalse (
78 IN MEM_MAIN_DATA_BLOCK *MMPtr
84 /* -----------------------------------------------------------------------------*/
88 * This function initializes the northbridge block for dimm identification translator
90 * @param[in,out] *NBPtr - Pointer to the MEM_NB_BLOCK
91 * @param[in,out] *MemPtr - Pointer to the MEM_DATA_STRUCT
92 * @param[in,out] NodeID - ID of current node to construct
93 * @return TRUE - This is the correct constructor for the targeted node.
94 * @return FALSE - This isn't the correct constructor for the targeted node.
96 BOOLEAN MemNIdentifyDimmConstructorRetDef (
97 IN OUT MEM_NB_BLOCK *NBPtr,
98 IN OUT MEM_DATA_STRUCT *MemPtr,
104 /*----------------------------------------------------------------------------------
105 * TABLE FEATURE BLOCK FUNCTIONS
107 * This section defines function names that depend upon options that are selected
108 * in the platform solution install file.
110 UINT8 MemFTableDefRet (
111 IN OUT MEM_TABLE_ALIAS **MTPtr
116 /*----------------------------------------------------------------------------------
117 * FEATURE S3 BLOCK FUNCTIONS
119 * This section defines function names that depend upon options that are selected
120 * in the platform solution install file.
122 BOOLEAN MemFS3DefConstructorRet (
123 IN OUT VOID *S3NBPtr,
124 IN OUT MEM_DATA_STRUCT *MemPtr,
131 #if (OPTION_MEMCTLR_DR == TRUE)
132 #if ((AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE))
133 #if (OPTION_S3_MEM_SUPPORT == TRUE)
134 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockDr;
135 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DR MemS3ResumeConstructNBBlockDr
137 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DR MemFS3DefConstructorRet
140 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DR MemFS3DefConstructorRet
142 #if (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
143 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorDr;
144 #define MEM_IDENDIMM_DR MemNIdentifyDimmConstructorDr
146 #define MEM_IDENDIMM_DR MemNIdentifyDimmConstructorRetDef
150 #if (OPTION_MEMCTLR_DA == TRUE || OPTION_MEMCTLR_Ni == TRUE || OPTION_MEMCTLR_RB == TRUE || OPTION_MEMCTLR_PH == TRUE)
151 #if ((AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE))
152 #if (OPTION_S3_MEM_SUPPORT == TRUE)
153 #if (OPTION_MEMCTLR_Ni == TRUE)
154 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockNi;
155 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_Ni MemS3ResumeConstructNBBlockNi
157 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_Ni MemFS3DefConstructorRet
159 #if (OPTION_MEMCTLR_DA == TRUE)
160 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockDA;
161 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DA MemS3ResumeConstructNBBlockDA
163 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DA MemFS3DefConstructorRet
165 #if (OPTION_MEMCTLR_PH == TRUE)
166 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockPh;
167 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_PH MemS3ResumeConstructNBBlockPh
169 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_PH MemFS3DefConstructorRet
171 #if (OPTION_MEMCTLR_RB == TRUE)
172 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockRb;
173 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_RB MemS3ResumeConstructNBBlockRb
175 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_RB MemFS3DefConstructorRet
179 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DA MemFS3DefConstructorRet
180 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_Ni MemFS3DefConstructorRet
181 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_RB MemFS3DefConstructorRet
182 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_PH MemFS3DefConstructorRet
184 #if (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
185 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorDA;
186 #define MEM_IDENDIMM_DA MemNIdentifyDimmConstructorDA
187 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorRb;
188 #define MEM_IDENDIMM_RB MemNIdentifyDimmConstructorRb
189 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorPh;
190 #define MEM_IDENDIMM_PH MemNIdentifyDimmConstructorPh
192 #define MEM_IDENDIMM_DA MemNIdentifyDimmConstructorRetDef
193 #define MEM_IDENDIMM_RB MemNIdentifyDimmConstructorRetDef
194 #define MEM_IDENDIMM_PH MemNIdentifyDimmConstructorRetDef
198 #if (OPTION_MEMCTLR_OR == TRUE)
199 #if ((AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE))
200 #if (OPTION_S3_MEM_SUPPORT == TRUE)
201 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockOr;
202 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_OR MemS3ResumeConstructNBBlockOr
204 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_OR MemFS3DefConstructorRet
207 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_OR MemFS3DefConstructorRet
209 #if (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
210 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorOr;
211 #define MEM_IDENDIMM_OR MemNIdentifyDimmConstructorOr
213 #define MEM_IDENDIMM_OR MemNIdentifyDimmConstructorRetDef
217 #if (OPTION_MEMCTLR_HY == TRUE)
218 #if ((AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE))
219 #if (OPTION_S3_MEM_SUPPORT == TRUE)
220 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockHy;
221 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_HY MemS3ResumeConstructNBBlockHy
223 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_HY MemFS3DefConstructorRet
226 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_HY MemFS3DefConstructorRet
228 #if (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
229 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorHy;
230 #define MEM_IDENDIMM_HY MemNIdentifyDimmConstructorHy
232 #define MEM_IDENDIMM_HY MemNIdentifyDimmConstructorRetDef
236 #if (OPTION_MEMCTLR_C32 == TRUE)
237 #if ((AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_S3SAVE == TRUE) || (AGESA_ENTRY_INIT_LATE_RESTORE == TRUE))
238 #if (OPTION_S3_MEM_SUPPORT == TRUE)
239 extern MEM_RESUME_CONSTRUCTOR MemS3ResumeConstructNBBlockC32;
240 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_C32 MemS3ResumeConstructNBBlockC32
242 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_C32 MemFS3DefConstructorRet
245 #define MEM_FEATURE_S3_RESUME_CONSTRUCTOR_C32 MemFS3DefConstructorRet
247 #if (AGESA_ENTRY_INIT_GENERAL_SERVICES == TRUE)
248 extern MEM_IDENDIMM_CONSTRUCTOR MemNIdentifyDimmConstructorC32;
249 #define MEM_IDENDIMM_C32 MemNIdentifyDimmConstructorC32
251 #define MEM_IDENDIMM_C32 MemNIdentifyDimmConstructorRetDef
255 /*----------------------------------------------------------------------------------
256 * NORTHBRIDGE BLOCK CONSTRUCTOR AND INITIALIZER FUNCTION DEFAULT ASSIGNMENTS
258 *----------------------------------------------------------------------------------
260 #define MEM_NB_SUPPORT_DR
261 #define MEM_NB_SUPPORT_RB
262 #define MEM_NB_SUPPORT_DA
263 #define MEM_NB_SUPPORT_Ni
264 #define MEM_NB_SUPPORT_PH
265 #define MEM_NB_SUPPORT_HY
266 #define MEM_NB_SUPPORT_OR
267 #define MEM_NB_SUPPORT_C32
268 #define MEM_NB_SUPPORT_END { MEM_NB_SUPPORT_STRUCT_VERSION, 0, 0, 0, 0, 0 }
270 #if (AGESA_ENTRY_INIT_POST == TRUE)
271 /*----------------------------------------------------------------------------------
272 * FLOW CONTROL FUNCTION
274 * This section selects the function that controls the memory initialization sequence
275 * based upon the number of processor families that the BIOS will support.
277 extern MEM_FLOW_CFG MemMFlowDef;
278 extern OPTION_MEM_FEATURE_MAIN MemMStandardTraining;
281 #if (OPTION_MEMCTLR_DR == TRUE)
282 extern MEM_FLOW_CFG MemMFlowDr;
283 #define MEM_MAIN_FLOW_CONTROL_PTR_Dr MemMFlowDr,
285 #define MEM_MAIN_FLOW_CONTROL_PTR_Dr MemMFlowDef,
287 #if (OPTION_MEMCTLR_DA == TRUE)
288 extern MEM_FLOW_CFG MemMFlowDA;
289 #define MEM_MAIN_FLOW_CONTROL_PTR_DA MemMFlowDA,
291 #define MEM_MAIN_FLOW_CONTROL_PTR_DA MemMFlowDef,
293 #if (OPTION_MEMCTLR_HY == TRUE)
294 extern MEM_FLOW_CFG MemMFlowHy;
295 #define MEM_MAIN_FLOW_CONTROL_PTR_Hy MemMFlowHy,
297 #define MEM_MAIN_FLOW_CONTROL_PTR_Hy MemMFlowDef,
299 #if (OPTION_MEMCTLR_OR == TRUE)
300 extern MEM_FLOW_CFG MemMFlowOr;
301 #define MEM_MAIN_FLOW_CONTROL_PTR_OR MemMFlowOr,
303 #define MEM_MAIN_FLOW_CONTROL_PTR_OR MemMFlowDef,
305 #if (OPTION_MEMCTLR_C32 == TRUE)
306 extern MEM_FLOW_CFG MemMFlowC32;
307 #define MEM_MAIN_FLOW_CONTROL_PTR_C32 MemMFlowC32,
309 #define MEM_MAIN_FLOW_CONTROL_PTR_C32 MemMFlowDef,
311 #if (OPTION_MEMCTLR_Ni == TRUE)
312 extern MEM_FLOW_CFG MemMFlowDA;
313 #define MEM_MAIN_FLOW_CONTROL_PTR_Ni MemMFlowDA,
315 #define MEM_MAIN_FLOW_CONTROL_PTR_Ni MemMFlowDef,
317 #if (OPTION_MEMCTLR_RB == TRUE)
318 extern MEM_FLOW_CFG MemMFlowRb;
319 #define MEM_MAIN_FLOW_CONTROL_PTR_RB MemMFlowRb,
321 #define MEM_MAIN_FLOW_CONTROL_PTR_RB MemMFlowDef,
323 #if (OPTION_MEMCTLR_PH == TRUE)
324 extern MEM_FLOW_CFG MemMFlowPh;
325 #define MEM_MAIN_FLOW_CONTROL_PTR_PH MemMFlowPh,
327 #define MEM_MAIN_FLOW_CONTROL_PTR_PH MemMFlowDef,
330 MEM_FLOW_CFG* memFlowControlInstalled[] = {
331 MEM_MAIN_FLOW_CONTROL_PTR_Dr
332 MEM_MAIN_FLOW_CONTROL_PTR_DA
333 MEM_MAIN_FLOW_CONTROL_PTR_RB
334 MEM_MAIN_FLOW_CONTROL_PTR_PH
335 MEM_MAIN_FLOW_CONTROL_PTR_Hy
336 MEM_MAIN_FLOW_CONTROL_PTR_OR
337 MEM_MAIN_FLOW_CONTROL_PTR_C32
338 MEM_MAIN_FLOW_CONTROL_PTR_Ni
342 #if (OPTION_ONLINE_SPARE == TRUE)
343 extern OPTION_MEM_FEATURE_MAIN MemMOnlineSpare;
344 #define MEM_MAIN_FEATURE_ONLINE_SPARE MemMOnlineSpare
345 extern OPTION_MEM_FEATURE_NB MemFOnlineSpare;
346 #define MEM_FEATURE_ONLINE_SPARE MemFOnlineSpare
348 #define MEM_MAIN_FEATURE_ONLINE_SPARE MemMDefRet
349 #define MEM_FEATURE_ONLINE_SPARE MemFDefRet
352 #if (OPTION_MEM_RESTORE == TRUE)
353 extern OPTION_MEM_FEATURE_MAIN MemMContextSave;
354 extern OPTION_MEM_FEATURE_MAIN MemMContextRestore;
355 #define MEM_MAIN_FEATURE_MEM_SAVE MemMContextSave
356 #define MEM_MAIN_FEATURE_MEM_RESTORE MemMContextRestore
358 #define MEM_MAIN_FEATURE_MEM_SAVE MemMDefRet
359 #define MEM_MAIN_FEATURE_MEM_RESTORE MemMDefRetFalse
362 #if (OPTION_BANK_INTERLEAVE == TRUE)
363 extern OPTION_MEM_FEATURE_NB MemFInterleaveBanks;
364 #define MEM_FEATURE_BANK_INTERLEAVE MemFInterleaveBanks
365 extern OPTION_MEM_FEATURE_NB MemFUndoInterleaveBanks;
366 #define MEM_FEATURE_UNDO_BANK_INTERLEAVE MemFUndoInterleaveBanks
368 #define MEM_FEATURE_BANK_INTERLEAVE MemFDefRet
369 #define MEM_FEATURE_UNDO_BANK_INTERLEAVE MemFDefRet
372 #if (OPTION_NODE_INTERLEAVE == TRUE)
373 extern OPTION_MEM_FEATURE_MAIN MemMInterleaveNodes;
374 #define MEM_MAIN_FEATURE_NODE_INTERLEAVE MemMInterleaveNodes
375 extern OPTION_MEM_FEATURE_NB MemFCheckInterleaveNodes;
376 extern OPTION_MEM_FEATURE_NB MemFInterleaveNodes;
377 #define MEM_FEATURE_NODE_INTERLEAVE_CHECK MemFCheckInterleaveNodes
378 #define MEM_FEATURE_NODE_INTERLEAVE MemFInterleaveNodes
380 #define MEM_FEATURE_NODE_INTERLEAVE_CHECK MemFDefRet
381 #define MEM_FEATURE_NODE_INTERLEAVE MemFDefRet
382 #define MEM_MAIN_FEATURE_NODE_INTERLEAVE MemMDefRet
385 #if (OPTION_DCT_INTERLEAVE == TRUE)
386 extern OPTION_MEM_FEATURE_NB MemFInterleaveChannels;
387 #define MEM_FEATURE_CHANNEL_INTERLEAVE MemFInterleaveChannels
389 #define MEM_FEATURE_CHANNEL_INTERLEAVE MemFDefRet
392 #if (OPTION_ECC == TRUE)
393 extern OPTION_MEM_FEATURE_MAIN MemMEcc;
394 #define MEM_MAIN_FEATURE_ECC MemMEcc
395 extern OPTION_MEM_FEATURE_NB MemFCheckECC;
396 extern OPTION_MEM_FEATURE_NB MemFInitECC;
397 #define MEM_FEATURE_CK_ECC MemFCheckECC
398 #define MEM_FEATURE_ECC MemFInitECC
399 #define MEM_FEATURE_ECCX8 MemMDefRet
401 #define MEM_MAIN_FEATURE_ECC MemMDefRet
402 #define MEM_FEATURE_CK_ECC MemFDefRet
403 #define MEM_FEATURE_ECC MemFDefRet
404 #define MEM_FEATURE_ECCX8 MemMDefRet
407 #define MEM_FEATURE_EMP MemFDefRet
409 extern OPTION_MEM_FEATURE_MAIN MemMMctMemClr;
410 #define MEM_MAIN_FEATURE_MEM_CLEAR MemMMctMemClr
412 #if (OPTION_DMI == TRUE)
413 #if (OPTION_DDR3 == TRUE)
414 extern OPTION_MEM_FEATURE_MAIN MemFDMISupport3;
415 #define MEM_MAIN_FEATURE_MEM_DMI MemFDMISupport3
417 extern OPTION_MEM_FEATURE_MAIN MemFDMISupport2;
418 #define MEM_MAIN_FEATURE_MEM_DMI MemFDMISupport2
421 #define MEM_MAIN_FEATURE_MEM_DMI MemMDefRet
424 #if (OPTION_DDR3 == TRUE)
425 extern OPTION_MEM_FEATURE_NB MemFOnDimmThermal;
426 extern OPTION_MEM_FEATURE_MAIN MemMLvDdr3;
427 extern OPTION_MEM_FEATURE_NB MemFLvDdr3;
428 #define MEM_FEATURE_ONDIMMTHERMAL MemFOnDimmThermal
429 #define MEM_MAIN_FEATURE_LVDDR3 MemMLvDdr3
430 #define MEM_FEATURE_LVDDR3 MemFLvDdr3
432 #define MEM_FEATURE_ONDIMMTHERMAL MemFDefRet
433 #define MEM_MAIN_FEATURE_LVDDR3 MemMDefRet
434 #define MEM_FEATURE_LVDDR3 MemFDefRet
437 extern OPTION_MEM_FEATURE_NB MemFInterleaveRegion;
438 #define MEM_FEATURE_REGION_INTERLEAVE MemFInterleaveRegion
440 extern OPTION_MEM_FEATURE_MAIN MemMUmaAlloc;
441 #define MEM_MAIN_FEATURE_UMAALLOC MemMUmaAlloc
443 #if (OPTION_PARALLEL_TRAINING == TRUE)
444 extern OPTION_MEM_FEATURE_MAIN MemMParallelTraining;
445 #define MEM_MAIN_FEATURE_TRAINING MemMParallelTraining
447 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
450 #if (OPTION_DIMM_EXCLUDE == TRUE)
451 extern OPTION_MEM_FEATURE_MAIN MemMRASExcludeDIMM;
452 #define MEM_MAIN_FEATURE_DIMM_EXCLUDE MemMRASExcludeDIMM
453 extern OPTION_MEM_FEATURE_NB MemFRASExcludeDIMM;
454 #define MEM_FEATURE_DIMM_EXCLUDE MemFRASExcludeDIMM
456 #define MEM_FEATURE_DIMM_EXCLUDE MemFDefRet
457 #define MEM_MAIN_FEATURE_DIMM_EXCLUDE MemMDefRet
460 /*----------------------------------------------------------------------------------
461 * TECHNOLOGY BLOCK CONSTRUCTOR FUNCTION ASSIGNMENTS
463 *----------------------------------------------------------------------------------
465 #if OPTION_DDR2 == TRUE
466 extern MEM_TECH_CONSTRUCTOR MemConstructTechBlock2;
467 #define MEM_TECH_CONSTRUCTOR_DDR2 MemConstructTechBlock2,
468 #if (OPTION_HW_DRAM_INIT == TRUE)
469 extern MEM_TECH_FEAT MemTDramInitHw;
470 #define MEM_TECH_FEATURE_HW_DRAMINIT MemTDramInitHw
472 #define MEM_TECH_FEATURE_HW_DRAMINIT MemTFeatDef
474 #if (OPTION_SW_DRAM_INIT == TRUE)
475 #define MEM_TECH_FEATURE_SW_DRAMINIT MemTFeatDef
477 #define MEM_TECH_FEATURE_SW_DRAMINIT MemTFeatDef
480 #define MEM_TECH_CONSTRUCTOR_DDR2
482 #if OPTION_DDR3 == TRUE
483 extern MEM_TECH_CONSTRUCTOR MemConstructTechBlock3;
484 #define MEM_TECH_CONSTRUCTOR_DDR3 MemConstructTechBlock3,
485 #if (OPTION_HW_DRAM_INIT == TRUE)
486 extern MEM_TECH_FEAT MemTDramInitHw;
487 #define MEM_TECH_FEATURE_HW_DRAMINIT MemTDramInitHw
489 #define MEM_TECH_FEATURE_HW_DRAMINIT MemTFeatDef
491 #if (OPTION_SW_DRAM_INIT == TRUE)
492 #define MEM_TECH_FEATURE_SW_DRAMINIT MemTDramInitSw3
494 #define MEM_TECH_FEATURE_SW_DRAMINIT MemTFeatDef
497 #define MEM_TECH_CONSTRUCTOR_DDR3
501 /*---------------------------------------------------------------------------------------------------
504 * This section instantiates a feature block structure for each memory controller installed
505 * by the platform solution install file.
506 *---------------------------------------------------------------------------------------------------
509 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
510 extern OPTION_MEM_FEATURE_NB MemNInitDqsTrainRcvrEnHwNb;
512 extern OPTION_MEM_FEATURE_NB MemFStandardTraining;
514 /*---------------------------------------------------------------------------------------------------
515 * DEERHOUND FEATURE BLOCK
516 *---------------------------------------------------------------------------------------------------
518 #if (OPTION_MEMCTLR_DR == TRUE)
520 #undef MEM_TECH_FEATURE_DRAMINIT
521 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_HW_DRAMINIT
524 #undef MEM_TECH_FEATURE_DRAMINIT
525 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_SW_DRAMINIT
528 #undef MEM_TECH_FEATURE_CPG
529 #define MEM_TECH_FEATURE_CPG MemFDefRet
531 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
532 #undef MEM_TECH_FEATURE_HWRXEN
533 #define MEM_TECH_FEATURE_HWRXEN MemNInitDqsTrainRcvrEnHwNb
535 extern OPTION_MEM_FEATURE_NB MemNDisableDqsTrainRcvrEnHwNb;
536 #undef MEM_TECH_FEATURE_HWRXEN
537 #define MEM_TECH_FEATURE_HWRXEN MemNDisableDqsTrainRcvrEnHwNb
540 #undef MEM_MAIN_FEATURE_TRAINING
541 #undef MEM_FEATURE_TRAINING
542 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
543 #define MEM_FEATURE_TRAINING MemFStandardTraining
545 MEM_FEAT_BLOCK_NB MemFeatBlockDr = {
546 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
547 MEM_FEATURE_ONLINE_SPARE,
548 MEM_FEATURE_BANK_INTERLEAVE,
549 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
550 MEM_FEATURE_NODE_INTERLEAVE_CHECK,
551 MEM_FEATURE_NODE_INTERLEAVE,
552 MEM_FEATURE_CHANNEL_INTERLEAVE,
556 MEM_FEATURE_TRAINING,
559 MEM_TECH_FEATURE_DRAMINIT,
560 MEM_FEATURE_DIMM_EXCLUDE,
562 MEM_TECH_FEATURE_CPG,
563 MEM_TECH_FEATURE_HWRXEN
566 #undef MEM_NB_SUPPORT_DR
567 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockDR;
568 extern MEM_INITIALIZER MemNInitDefaultsDR;
571 #define MEM_NB_SUPPORT_DR { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockDR, MemNInitDefaultsDR, &MemFeatBlockDr, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DR, MEM_IDENDIMM_DR },
572 #endif // OPTION_MEMCTRL_DR
574 /*---------------------------------------------------------------------------------------------------
575 * DASHOUND FEATURE BLOCK
576 *---------------------------------------------------------------------------------------------------
578 #if (OPTION_MEMCTLR_DA == TRUE || OPTION_MEMCTLR_Ni == TRUE || OPTION_MEMCTLR_RB == TRUE || OPTION_MEMCTLR_PH == TRUE)
580 #undef MEM_TECH_FEATURE_DRAMINIT
581 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_HW_DRAMINIT
584 #undef MEM_TECH_FEATURE_DRAMINIT
585 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_SW_DRAMINIT
588 #undef MEM_TECH_FEATURE_CPG
589 #define MEM_TECH_FEATURE_CPG MemFDefRet
591 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
592 #undef MEM_TECH_FEATURE_HWRXEN
593 #define MEM_TECH_FEATURE_HWRXEN MemNInitDqsTrainRcvrEnHwNb
595 extern OPTION_MEM_FEATURE_NB MemNDisableDqsTrainRcvrEnHwNb;
596 #undef MEM_TECH_FEATURE_HWRXEN
597 #define MEM_TECH_FEATURE_HWRXEN MemNDisableDqsTrainRcvrEnHwNb
600 #undef MEM_MAIN_FEATURE_TRAINING
601 #undef MEM_FEATURE_TRAINING
602 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
603 #define MEM_FEATURE_TRAINING MemFStandardTraining
605 #if (OPTION_MEMCTLR_Ni == TRUE)
606 MEM_FEAT_BLOCK_NB MemFeatBlockNi = {
607 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
609 MEM_FEATURE_BANK_INTERLEAVE,
610 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
613 MEM_FEATURE_CHANNEL_INTERLEAVE,
614 MEM_FEATURE_REGION_INTERLEAVE,
617 MEM_FEATURE_TRAINING,
620 MEM_TECH_FEATURE_DRAMINIT,
621 MEM_FEATURE_DIMM_EXCLUDE,
623 MEM_TECH_FEATURE_CPG,
624 MEM_TECH_FEATURE_HWRXEN
627 #undef MEM_NB_SUPPORT_Ni
628 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockNi;
629 extern MEM_INITIALIZER MemNInitDefaultsNi;
631 #define MEM_NB_SUPPORT_Ni { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockNi, MemNInitDefaultsNi, &MemFeatBlockNi, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_Ni, MEM_IDENDIMM_DA },
634 #if (OPTION_MEMCTLR_PH == TRUE)
635 MEM_FEAT_BLOCK_NB MemFeatBlockPh = {
636 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
638 MEM_FEATURE_BANK_INTERLEAVE,
639 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
642 MEM_FEATURE_CHANNEL_INTERLEAVE,
643 MEM_FEATURE_REGION_INTERLEAVE,
646 MEM_FEATURE_TRAINING,
649 MEM_TECH_FEATURE_DRAMINIT,
650 MEM_FEATURE_DIMM_EXCLUDE,
652 MEM_TECH_FEATURE_CPG,
653 MEM_TECH_FEATURE_HWRXEN
656 #undef MEM_NB_SUPPORT_PH
657 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockPh;
658 extern MEM_INITIALIZER MemNInitDefaultsPh;
660 #define MEM_NB_SUPPORT_PH { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockPh, MemNInitDefaultsPh, &MemFeatBlockPh, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_PH, MEM_IDENDIMM_PH },
663 #if (OPTION_MEMCTLR_RB == TRUE)
664 MEM_FEAT_BLOCK_NB MemFeatBlockRb = {
665 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
667 MEM_FEATURE_BANK_INTERLEAVE,
668 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
671 MEM_FEATURE_CHANNEL_INTERLEAVE,
672 MEM_FEATURE_REGION_INTERLEAVE,
675 MEM_FEATURE_TRAINING,
678 MEM_TECH_FEATURE_DRAMINIT,
679 MEM_FEATURE_DIMM_EXCLUDE,
681 MEM_TECH_FEATURE_CPG,
682 MEM_TECH_FEATURE_HWRXEN
685 #undef MEM_NB_SUPPORT_RB
686 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockRb;
687 extern MEM_INITIALIZER MemNInitDefaultsRb;
689 #define MEM_NB_SUPPORT_RB { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockRb, MemNInitDefaultsRb, &MemFeatBlockRb, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_RB, MEM_IDENDIMM_RB },
692 #if (OPTION_MEMCTLR_DA == TRUE)
693 MEM_FEAT_BLOCK_NB MemFeatBlockDA = {
694 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
696 MEM_FEATURE_BANK_INTERLEAVE,
697 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
700 MEM_FEATURE_CHANNEL_INTERLEAVE,
701 MEM_FEATURE_REGION_INTERLEAVE,
704 MEM_FEATURE_TRAINING,
707 MEM_TECH_FEATURE_DRAMINIT,
708 MEM_FEATURE_DIMM_EXCLUDE,
710 MEM_TECH_FEATURE_CPG,
711 MEM_TECH_FEATURE_HWRXEN
714 #undef MEM_NB_SUPPORT_DA
715 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockDA;
716 extern MEM_INITIALIZER MemNInitDefaultsDA;
718 #define MEM_NB_SUPPORT_DA { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockDA, MemNInitDefaultsDA, &MemFeatBlockDA, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DA, MEM_IDENDIMM_DA },
720 #endif // OPTION_MEMCTRL_DA
722 /*---------------------------------------------------------------------------------------------------
723 * HYDRA FEATURE BLOCK
724 *---------------------------------------------------------------------------------------------------
726 #if (OPTION_MEMCTLR_HY == TRUE)
728 #undef MEM_TECH_FEATURE_DRAMINIT
729 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_HW_DRAMINIT
732 #undef MEM_TECH_FEATURE_DRAMINIT
733 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_SW_DRAMINIT
736 #undef MEM_TECH_FEATURE_CPG
737 #define MEM_TECH_FEATURE_CPG MemFDefRet
739 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
740 #undef MEM_TECH_FEATURE_HWRXEN
741 #define MEM_TECH_FEATURE_HWRXEN MemNInitDqsTrainRcvrEnHwNb
743 extern OPTION_MEM_FEATURE_NB MemNDisableDqsTrainRcvrEnHwNb;
744 #undef MEM_TECH_FEATURE_HWRXEN
745 #define MEM_TECH_FEATURE_HWRXEN MemNDisableDqsTrainRcvrEnHwNb
749 #undef MEM_MAIN_FEATURE_TRAINING
750 #undef MEM_FEATURE_TRAINING
751 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
752 #define MEM_FEATURE_TRAINING MemFStandardTraining
754 MEM_FEAT_BLOCK_NB MemFeatBlockHy = {
755 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
756 MEM_FEATURE_ONLINE_SPARE,
757 MEM_FEATURE_BANK_INTERLEAVE,
758 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
759 MEM_FEATURE_NODE_INTERLEAVE_CHECK,
760 MEM_FEATURE_NODE_INTERLEAVE,
761 MEM_FEATURE_CHANNEL_INTERLEAVE,
765 MEM_FEATURE_TRAINING,
767 MEM_FEATURE_ONDIMMTHERMAL,
768 MEM_TECH_FEATURE_DRAMINIT,
769 MEM_FEATURE_DIMM_EXCLUDE,
771 MEM_TECH_FEATURE_CPG,
772 MEM_TECH_FEATURE_HWRXEN
775 #undef MEM_NB_SUPPORT_HY
776 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockHY;
777 extern MEM_INITIALIZER MemNInitDefaultsHY;
778 #define MEM_NB_SUPPORT_HY { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockHY, MemNInitDefaultsHY, &MemFeatBlockHy, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_HY, MEM_IDENDIMM_HY },
779 #endif // OPTION_MEMCTRL_HY
780 /*---------------------------------------------------------------------------------------------------
781 * OROCHI FEATURE BLOCK
782 *---------------------------------------------------------------------------------------------------
784 #if (OPTION_MEMCTLR_OR == TRUE)
786 #undef MEM_TECH_FEATURE_DRAMINIT
787 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_HW_DRAMINIT
790 #undef MEM_MAIN_FEATURE_LVDDR3
791 extern OPTION_MEM_FEATURE_MAIN MemMLvDdr3PerformanceEnhPre;
792 #define MEM_MAIN_FEATURE_LVDDR3 MemMLvDdr3PerformanceEnhPre
793 #undef MEM_TECH_FEATURE_DRAMINIT
794 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_SW_DRAMINIT
797 #if (OPTION_G34_SOCKET_SUPPORT || OPTION_C32_SOCKET_SUPPORT)
798 #undef MEM_FEATURE_REGION_INTERLEAVE
799 #define MEM_FEATURE_REGION_INTERLEAVE MemFDefRet
802 #if (OPTION_EARLY_SAMPLES == TRUE)
803 extern OPTION_MEM_FEATURE_NB MemNInitEarlySampleSupportOr;
804 #define MEM_EARLY_SAMPLE_SUPPORT MemNInitEarlySampleSupportOr
806 #define MEM_EARLY_SAMPLE_SUPPORT MemFDefRet
809 #if (OPTION_CONTINOUS_PATTERN_GENERATION == TRUE)
810 extern OPTION_MEM_FEATURE_NB MemNInitCPGUnb;
811 #undef MEM_TECH_FEATURE_CPG
812 #define MEM_TECH_FEATURE_CPG MemNInitCPGUnb
814 #undef MEM_TECH_FEATURE_CPG
815 #define MEM_TECH_FEATURE_CPG MemFDefRet
818 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
819 #undef MEM_TECH_FEATURE_HWRXEN
820 #define MEM_TECH_FEATURE_HWRXEN MemNInitDqsTrainRcvrEnHwNb
822 extern OPTION_MEM_FEATURE_NB MemNDisableDqsTrainRcvrEnHwNb;
823 #undef MEM_TECH_FEATURE_HWRXEN
824 #define MEM_TECH_FEATURE_HWRXEN MemNDisableDqsTrainRcvrEnHwNb
828 #undef MEM_MAIN_FEATURE_TRAINING
829 #undef MEM_FEATURE_TRAINING
830 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
831 #define MEM_FEATURE_TRAINING MemFStandardTraining
833 MEM_FEAT_BLOCK_NB MemFeatBlockOr = {
834 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
835 MEM_FEATURE_ONLINE_SPARE,
836 MEM_FEATURE_BANK_INTERLEAVE,
837 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
838 MEM_FEATURE_NODE_INTERLEAVE_CHECK,
839 MEM_FEATURE_NODE_INTERLEAVE,
840 MEM_FEATURE_CHANNEL_INTERLEAVE,
841 MEM_FEATURE_REGION_INTERLEAVE,
844 MEM_FEATURE_TRAINING,
846 MEM_FEATURE_ONDIMMTHERMAL,
847 MEM_TECH_FEATURE_DRAMINIT,
848 MEM_FEATURE_DIMM_EXCLUDE,
849 MEM_EARLY_SAMPLE_SUPPORT,
850 MEM_TECH_FEATURE_CPG,
851 MEM_TECH_FEATURE_HWRXEN
854 #undef MEM_NB_SUPPORT_OR
855 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockOR;
856 extern MEM_INITIALIZER MemNInitDefaultsOR;
857 #define MEM_NB_SUPPORT_OR { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockOR, MemNInitDefaultsOR, &MemFeatBlockOr, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_OR, MEM_IDENDIMM_OR },
858 #endif // OPTION_MEMCTRL_OR
860 /*---------------------------------------------------------------------------------------------------
862 *---------------------------------------------------------------------------------------------------
864 #if (OPTION_MEMCTLR_C32 == TRUE)
866 #undef MEM_TECH_FEATURE_DRAMINIT
867 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_HW_DRAMINIT
870 #undef MEM_TECH_FEATURE_DRAMINIT
871 #define MEM_TECH_FEATURE_DRAMINIT MEM_TECH_FEATURE_SW_DRAMINIT
874 #undef MEM_TECH_FEATURE_CPG
875 #define MEM_TECH_FEATURE_CPG MemFDefRet
877 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
878 #undef MEM_TECH_FEATURE_HWRXEN
879 #define MEM_TECH_FEATURE_HWRXEN MemNInitDqsTrainRcvrEnHwNb
881 extern OPTION_MEM_FEATURE_NB MemNDisableDqsTrainRcvrEnHwNb;
882 #define MEM_TECH_FEATURE_HWRXEN MemNDisableDqsTrainRcvrEnHwNb
885 #undef MEM_MAIN_FEATURE_TRAINING
886 #undef MEM_FEATURE_TRAINING
887 #if (OPTION_MEMCTLR_OR == TRUE)
888 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
890 #define MEM_MAIN_FEATURE_TRAINING MemMStandardTraining
892 #define MEM_FEATURE_TRAINING MemFStandardTraining
894 MEM_FEAT_BLOCK_NB MemFeatBlockC32 = {
895 MEM_FEAT_BLOCK_NB_STRUCT_VERSION,
896 MEM_FEATURE_ONLINE_SPARE,
897 MEM_FEATURE_BANK_INTERLEAVE,
898 MEM_FEATURE_UNDO_BANK_INTERLEAVE,
899 MEM_FEATURE_NODE_INTERLEAVE_CHECK,
900 MEM_FEATURE_NODE_INTERLEAVE,
901 MEM_FEATURE_CHANNEL_INTERLEAVE,
905 MEM_FEATURE_TRAINING,
907 MEM_FEATURE_ONDIMMTHERMAL,
908 MEM_TECH_FEATURE_DRAMINIT,
909 MEM_FEATURE_DIMM_EXCLUDE,
911 MEM_TECH_FEATURE_CPG,
912 MEM_TECH_FEATURE_HWRXEN
915 #undef MEM_NB_SUPPORT_C32
916 extern MEM_NB_CONSTRUCTOR MemConstructNBBlockC32;
917 extern MEM_INITIALIZER MemNInitDefaultsC32;
918 #define MEM_NB_SUPPORT_C32 { MEM_NB_SUPPORT_STRUCT_VERSION, MemConstructNBBlockC32, MemNInitDefaultsC32, &MemFeatBlockC32, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_C32, MEM_IDENDIMM_C32 },
919 #endif // OPTION_MEMCTRL_C32
921 /*---------------------------------------------------------------------------------------------------
923 *---------------------------------------------------------------------------------------------------
925 MEM_FEAT_BLOCK_MAIN MemFeatMain = {
926 MEM_FEAT_BLOCK_MAIN_STRUCT_VERSION,
927 MEM_MAIN_FEATURE_TRAINING,
928 MEM_MAIN_FEATURE_DIMM_EXCLUDE,
929 MEM_MAIN_FEATURE_ONLINE_SPARE,
930 MEM_MAIN_FEATURE_NODE_INTERLEAVE,
931 MEM_MAIN_FEATURE_ECC,
932 MEM_MAIN_FEATURE_MEM_CLEAR,
933 MEM_MAIN_FEATURE_MEM_DMI,
934 MEM_MAIN_FEATURE_LVDDR3,
935 MEM_MAIN_FEATURE_UMAALLOC,
936 MEM_MAIN_FEATURE_MEM_SAVE,
937 MEM_MAIN_FEATURE_MEM_RESTORE
941 /*---------------------------------------------------------------------------------------------------
942 * Technology Training SPECIFIC CONFIGURATION
945 *---------------------------------------------------------------------------------------------------
947 #define MEM_TECH_TRAINING_FEAT_NULL_TERNMIATOR 0
948 #if OPTION_MEMCTLR_DR
949 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceDr;
951 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
952 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
953 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
954 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
955 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
956 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
957 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTDqsTrainRcvrEnHwPass1
958 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTDqsTrainRcvrEnHwPass2
959 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
961 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
962 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
963 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
964 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
966 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTFeatDef
969 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
970 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTTrainRcvrEnSwPass1
972 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
974 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
975 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
977 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
979 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
980 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTTrainDQSEdgeDetectSw
982 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
984 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
985 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
987 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
989 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
990 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTTrainMaxLatency
992 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
994 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
995 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2Dr = {
996 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
997 TECH_TRAIN_ENTER_HW_TRN_DDR2,
998 TECH_TRAIN_SW_WL_DDR2,
999 TECH_TRAIN_HW_WL_P1_DDR2,
1000 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1001 TECH_TRAIN_HW_WL_P2_DDR2,
1002 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1003 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1004 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1005 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1006 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1007 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1008 TECH_TRAIN_MAX_RD_LAT_DDR2,
1009 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1010 TECH_TRAIN_DQS____DDR2
1012 extern OPTION_MEM_FEATURE_NB MemNDQSTiming2Nb;
1013 #define NB_TRAIN_FLOW_DDR2 MemNDQSTiming2Nb
1014 extern OPTION_MEM_FEATURE_NB memNSequenceDDR2ServerNb;
1015 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR2ServerNb, memNEnableTrainSequenceDr, &memTechTrainingFeatSequenceDDR2Dr },
1017 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1018 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1019 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1020 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1021 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1022 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1023 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1024 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1025 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1026 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1027 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1028 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1029 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1030 #define NB_TRAIN_FLOW_DDR2 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1031 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1034 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1035 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTPreparePhyAssistedTraining
1036 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1037 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTExitPhyAssistedTraining
1038 #if (OPTION_HW_WRITE_LEV_TRAINING == TRUE)
1039 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTWriteLevelizationHw3Pass1
1040 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTWriteLevelizationHw3Pass2
1042 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1043 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1045 #if (OPTION_SW_WRITE_LEV_TRAINING == TRUE)
1046 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1048 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1050 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1051 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTDqsTrainRcvrEnHwPass1
1052 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTDqsTrainRcvrEnHwPass2
1053 #if (OPTION_HW_DQS_REC_EN_SEED_TRAINING == TRUE)
1054 #undef TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3
1055 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTRdPosWithRxEnDlySeeds3
1057 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1058 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1060 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1064 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1065 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1066 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1067 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1069 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1072 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1073 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainRcvrEnSwPass1
1075 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1077 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1078 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainOptRcvrEnSwPass1
1080 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1082 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1083 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1085 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1087 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1088 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1090 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1092 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1093 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTTrainMaxLatency
1095 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1097 #define TECH_TRAIN_DQS____DDR3 MemTFeatDef
1098 #define NB_TRAIN_FLOW_DDR3 MemNDQSTiming3Nb
1099 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceDr;
1100 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3Dr = {
1101 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1102 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1103 TECH_TRAIN_SW_WL_DDR3,
1104 TECH_TRAIN_HW_WL_P1_DDR3,
1105 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1106 TECH_TRAIN_HW_WL_P2_DDR3,
1107 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1108 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1109 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1110 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1111 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1112 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1113 TECH_TRAIN_MAX_RD_LAT_DDR3,
1114 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1115 TECH_TRAIN_DQS____DDR3
1117 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR3Nb, memNEnableTrainSequenceDr, &memTechTrainingFeatSequenceDDR3Dr },
1119 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1120 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTFeatDef
1121 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1122 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTFeatDef
1123 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1124 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1125 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1126 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1127 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1128 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1129 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1130 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1131 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1132 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1133 #define NB_TRAIN_FLOW_DDR3 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1134 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1137 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1138 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1141 #if (OPTION_MEMCTLR_DA || OPTION_MEMCTLR_Ni || OPTION_MEMCTLR_PH || OPTION_MEMCTLR_RB)
1143 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1144 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1145 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1146 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1147 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1148 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1149 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTDqsTrainRcvrEnHwPass1
1150 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTDqsTrainRcvrEnHwPass2
1151 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
1153 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1154 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1155 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1156 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
1158 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTFeatDef
1161 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1162 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTTrainRcvrEnSwPass1
1164 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1166 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1167 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1169 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1171 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1172 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTTrainDQSEdgeDetectSw
1174 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1176 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1177 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1179 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1181 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1182 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTTrainMaxLatency
1184 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1186 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1187 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2DA = {
1188 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1189 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1190 TECH_TRAIN_SW_WL_DDR2,
1191 TECH_TRAIN_HW_WL_P1_DDR2,
1192 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1193 TECH_TRAIN_HW_WL_P2_DDR2,
1194 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1195 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1196 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1197 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1198 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1199 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1200 TECH_TRAIN_MAX_RD_LAT_DDR2,
1201 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1202 TECH_TRAIN_DQS____DDR2
1204 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2PH = {
1205 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1206 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1207 TECH_TRAIN_SW_WL_DDR2,
1208 TECH_TRAIN_HW_WL_P1_DDR2,
1209 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1210 TECH_TRAIN_HW_WL_P2_DDR2,
1211 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1212 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1213 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1214 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1215 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1216 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1217 TECH_TRAIN_MAX_RD_LAT_DDR2,
1218 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1219 TECH_TRAIN_DQS____DDR2
1221 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2Rb = {
1222 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1223 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1224 TECH_TRAIN_SW_WL_DDR2,
1225 TECH_TRAIN_HW_WL_P1_DDR2,
1226 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1227 TECH_TRAIN_HW_WL_P2_DDR2,
1228 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1229 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1230 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1231 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1232 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1233 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1234 TECH_TRAIN_MAX_RD_LAT_DDR2,
1235 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1236 TECH_TRAIN_DQS____DDR2
1238 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2Ni = {
1239 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1240 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1241 TECH_TRAIN_SW_WL_DDR2,
1242 TECH_TRAIN_HW_WL_P1_DDR2,
1243 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1244 TECH_TRAIN_HW_WL_P2_DDR2,
1245 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1246 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1247 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1248 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1249 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1250 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1251 TECH_TRAIN_MAX_RD_LAT_DDR2,
1252 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1253 TECH_TRAIN_DQS____DDR2
1255 extern OPTION_MEM_FEATURE_NB MemNDQSTiming2Nb;
1256 #define NB_TRAIN_FLOW_DDR2 MemNDQSTiming2Nb
1257 extern OPTION_MEM_FEATURE_NB memNSequenceDDR2ServerNb;
1258 #if (OPTION_MEMCTLR_DA)
1259 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceDA
1260 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR2ServerNb, memNEnableTrainSequenceDA, &memTechTrainingFeatSequenceDDR2DA },
1262 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1264 #if (OPTION_MEMCTLR_PH)
1265 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequencePh
1266 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR2ServerNb, memNEnableTrainSequencePh, &memTechTrainingFeatSequenceDDR2PH },
1268 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1270 #if (OPTION_MEMCTLR_RB)
1271 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceRb
1272 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR2ServerNb, memNEnableTrainSequenceRb, &memTechTrainingFeatSequenceDDR2Rb },
1274 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1277 #if (OPTION_MEMCTLR_Ni)
1278 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceNi
1279 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR2ServerNb, memNEnableTrainSequenceNi, &memTechTrainingFeatSequenceDDR2Ni },
1281 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1284 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1285 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1286 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1287 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1288 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1289 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1290 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1291 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1292 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1293 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1294 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1295 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1296 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1297 #define NB_TRAIN_FLOW_DDR2 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1298 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1299 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1300 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1301 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1304 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1305 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTPreparePhyAssistedTraining
1306 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1307 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTExitPhyAssistedTraining
1308 #if (OPTION_HW_WRITE_LEV_TRAINING == TRUE)
1309 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTWriteLevelizationHw3Pass1
1310 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTWriteLevelizationHw3Pass2
1312 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1313 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1315 #if (OPTION_SW_WRITE_LEV_TRAINING == TRUE)
1316 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1318 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1320 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1321 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1322 #undef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1324 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1325 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1326 #undef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1328 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1329 #if (OPTION_HW_DQS_REC_EN_SEED_TRAINING == TRUE)
1330 #undef TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3
1331 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1333 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1334 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1336 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1340 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1341 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1342 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1343 #undef TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3
1344 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1346 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1349 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1350 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainRcvrEnSwPass1
1352 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1354 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1355 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainOptRcvrEnSwPass1
1357 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1359 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1360 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1362 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1364 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1365 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1367 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1369 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1370 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTTrainMaxLatency
1372 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1374 #define TECH_TRAIN_DQS____DDR3 MemTFeatDef
1375 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3DA = {
1376 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1377 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1378 TECH_TRAIN_SW_WL_DDR3,
1379 TECH_TRAIN_HW_WL_P1_DDR3,
1380 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1381 TECH_TRAIN_HW_WL_P2_DDR3,
1382 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1383 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1384 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1385 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1386 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1387 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1388 TECH_TRAIN_MAX_RD_LAT_DDR3,
1389 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1390 TECH_TRAIN_DQS____DDR3
1392 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3Ph = {
1393 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1394 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1395 TECH_TRAIN_SW_WL_DDR3,
1396 TECH_TRAIN_HW_WL_P1_DDR3,
1397 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1398 TECH_TRAIN_HW_WL_P2_DDR3,
1399 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1400 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1401 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1402 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1403 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1404 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1405 TECH_TRAIN_MAX_RD_LAT_DDR3,
1406 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1407 TECH_TRAIN_DQS____DDR3
1409 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3Rb = {
1410 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1411 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1412 TECH_TRAIN_SW_WL_DDR3,
1413 TECH_TRAIN_HW_WL_P1_DDR3,
1414 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1415 TECH_TRAIN_HW_WL_P2_DDR3,
1416 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1417 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1418 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1419 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1420 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1421 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1422 TECH_TRAIN_MAX_RD_LAT_DDR3,
1423 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1424 TECH_TRAIN_DQS____DDR3
1426 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3Ni = {
1427 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1428 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1429 TECH_TRAIN_SW_WL_DDR3,
1430 TECH_TRAIN_HW_WL_P1_DDR3,
1431 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1432 TECH_TRAIN_HW_WL_P2_DDR3,
1433 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1434 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1435 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1436 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1437 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1438 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1439 TECH_TRAIN_MAX_RD_LAT_DDR3,
1440 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1441 TECH_TRAIN_DQS____DDR3
1443 #define NB_TRAIN_FLOW_DDR3 MemNDQSTiming3Nb
1444 #if (OPTION_MEMCTLR_DA)
1445 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceDA;
1446 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR3Nb, memNEnableTrainSequenceDA, &memTechTrainingFeatSequenceDDR3DA },
1448 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1450 #if (OPTION_MEMCTLR_PH)
1451 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequencePh;
1452 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR3Nb, memNEnableTrainSequencePh, &memTechTrainingFeatSequenceDDR3Ph },
1454 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1456 #if (OPTION_MEMCTLR_RB)
1457 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceRb;
1458 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, memNSequenceDDR3Nb, memNEnableTrainSequenceRb, &memTechTrainingFeatSequenceDDR3Rb },
1460 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1462 #if (OPTION_MEMCTLR_Ni)
1463 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceNi;
1464 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_Ni {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR3Nb, memNEnableTrainSequenceNi, &memTechTrainingFeatSequenceDDR3Ni },
1466 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1469 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1470 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTFeatDef
1471 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTFeatDef
1472 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1473 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1474 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1475 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1476 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1477 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1478 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1479 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1480 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1481 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1482 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1483 #define NB_TRAIN_FLOW_DDR3 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1484 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1485 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1486 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1487 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1490 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1491 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_Ni { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1492 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1493 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DA { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1494 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1495 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_PH { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1496 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1497 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_RB { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1500 #if OPTION_MEMCTLR_HY
1501 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceHy;
1503 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1504 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1505 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1506 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1507 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1508 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1509 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTDqsTrainRcvrEnHwPass1
1510 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTDqsTrainRcvrEnHwPass2
1511 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
1513 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1514 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1515 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1516 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
1518 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTFeatDef
1521 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1522 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTTrainRcvrEnSwPass1
1524 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1526 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1527 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1529 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1531 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1532 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTTrainDQSEdgeDetectSw
1534 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1536 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1537 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1539 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1541 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1542 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTTrainMaxLatency
1544 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1546 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1547 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2Hy = {
1548 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1549 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1550 TECH_TRAIN_SW_WL_DDR2,
1551 TECH_TRAIN_HW_WL_P1_DDR2,
1552 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1553 TECH_TRAIN_HW_WL_P2_DDR2,
1554 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1555 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1556 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1557 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1558 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1559 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1560 TECH_TRAIN_MAX_RD_LAT_DDR2,
1561 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1562 TECH_TRAIN_DQS____DDR2
1564 extern OPTION_MEM_FEATURE_NB MemNDQSTiming2Nb;
1565 #define NB_TRAIN_FLOW_DDR2 MemNDQSTiming2Nb
1566 extern OPTION_MEM_FEATURE_NB memNSequenceDDR2ServerNb;
1567 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_HY {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR2ServerNb, memNEnableTrainSequenceHy, &memTechTrainingFeatSequenceDDR2Hy },
1569 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1570 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1571 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1572 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1573 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1574 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1575 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1576 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1577 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1578 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1579 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1580 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1581 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1582 #define NB_TRAIN_FLOW_DDR2 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1583 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_HY { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1586 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1587 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTPreparePhyAssistedTraining
1588 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1589 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTExitPhyAssistedTraining
1590 #if (OPTION_HW_WRITE_LEV_TRAINING == TRUE)
1591 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTWriteLevelizationHw3Pass1
1592 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTWriteLevelizationHw3Pass2
1594 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1595 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1597 #if (OPTION_SW_WRITE_LEV_TRAINING == TRUE)
1598 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1600 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1602 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1603 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1604 #undef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1606 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1607 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1608 #undef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1610 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1611 #if (OPTION_HW_DQS_REC_EN_SEED_TRAINING == TRUE)
1612 #undef TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3
1613 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1615 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1616 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1618 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1622 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1623 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1624 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1625 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1627 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1630 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1631 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainRcvrEnSwPass1
1633 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1635 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1636 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainOptRcvrEnSwPass1
1638 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1640 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1641 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1643 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1645 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1646 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1648 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1650 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1651 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTTrainMaxLatency
1653 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1655 #define TECH_TRAIN_DQS____DDR3 MemTFeatDef
1656 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3Hy = {
1657 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1658 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1659 TECH_TRAIN_SW_WL_DDR3,
1660 TECH_TRAIN_HW_WL_P1_DDR3,
1661 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1662 TECH_TRAIN_HW_WL_P2_DDR3,
1663 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1664 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1665 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1666 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1667 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1668 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1669 TECH_TRAIN_MAX_RD_LAT_DDR3,
1670 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1671 TECH_TRAIN_DQS____DDR3
1673 #define NB_TRAIN_FLOW_DDR3 MemNDQSTiming3Nb
1674 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_HY {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR3Nb, memNEnableTrainSequenceHy, &memTechTrainingFeatSequenceDDR3Hy },
1676 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1677 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTFeatDef
1678 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1679 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTFeatDef
1680 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1681 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1682 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1683 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1684 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1685 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1686 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1687 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1688 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1689 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1690 #define NB_TRAIN_FLOW_DDR3 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1691 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_HY { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1694 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_HY { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1695 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_HY { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1698 #if OPTION_MEMCTLR_C32
1699 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceC32;
1701 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1702 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1703 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1704 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1705 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1706 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1707 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTDqsTrainRcvrEnHwPass1
1708 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTDqsTrainRcvrEnHwPass2
1709 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2 MemTTrainDQSEdgeDetect
1711 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1712 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1713 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1714 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1716 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1719 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1720 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTTrainRcvrEnSwPass1
1722 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1724 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1725 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1727 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1729 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1730 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTTrainDQSEdgeDetectSw
1732 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1734 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1735 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1737 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1739 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1740 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTTrainMaxLatency
1742 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1744 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1745 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR2C32 = {
1746 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1747 TECH_TRAIN_ENTER_HW_TRN_DDR2,
1748 TECH_TRAIN_SW_WL_DDR2,
1749 TECH_TRAIN_HW_WL_P1_DDR2,
1750 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2,
1751 TECH_TRAIN_HW_WL_P2_DDR2,
1752 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2,
1753 TECH_TRAIN_EXIT_HW_TRN_DDR2,
1754 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2,
1755 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2,
1756 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2,
1757 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2,
1758 TECH_TRAIN_MAX_RD_LAT_DDR2,
1759 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR2,
1760 TECH_TRAIN_DQS____DDR2
1762 extern OPTION_MEM_FEATURE_NB MemNDQSTiming2Nb;
1763 #define NB_TRAIN_FLOW_DDR2 MemNDQSTiming2Nb
1764 extern OPTION_MEM_FEATURE_NB memNSequenceDDR2ServerNb;
1765 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_C32 {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR2ServerNb, memNEnableTrainSequenceC32, &memTechTrainingFeatSequenceDDR2C32 },
1767 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1768 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1769 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1770 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1771 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1772 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1773 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1774 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1775 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1776 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1777 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1778 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1779 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1780 #define NB_TRAIN_FLOW_DDR2 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1781 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_C32 { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1784 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1785 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTPreparePhyAssistedTraining
1786 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1787 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTExitPhyAssistedTraining
1788 #if (OPTION_HW_WRITE_LEV_TRAINING == TRUE)
1789 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTWriteLevelizationHw3Pass1
1790 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTWriteLevelizationHw3Pass2
1792 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1793 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1795 #if (OPTION_SW_WRITE_LEV_TRAINING == TRUE)
1796 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1798 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1800 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1801 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1802 #undef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1804 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1805 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1806 #undef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1808 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1809 #if (OPTION_HW_DQS_REC_EN_SEED_TRAINING == TRUE)
1810 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1812 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1813 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1815 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1819 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1820 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1821 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1822 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1824 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1827 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1828 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainRcvrEnSwPass1
1830 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1832 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1833 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTTrainOptRcvrEnSwPass1
1835 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1837 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1838 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1840 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1842 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1843 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1845 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1847 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1848 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTTrainMaxLatency
1850 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1852 #define TECH_TRAIN_DQS____DDR3 MemTFeatDef
1853 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3C32 = {
1854 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1855 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1856 TECH_TRAIN_SW_WL_DDR3,
1857 TECH_TRAIN_HW_WL_P1_DDR3,
1858 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1859 TECH_TRAIN_HW_WL_P2_DDR3,
1860 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1861 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1862 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1863 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1864 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1865 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1866 TECH_TRAIN_MAX_RD_LAT_DDR3,
1867 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
1868 TECH_TRAIN_DQS____DDR3
1870 #define NB_TRAIN_FLOW_DDR3 MemNDQSTiming3Nb
1871 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_C32 {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR3Nb, memNEnableTrainSequenceC32, &memTechTrainingFeatSequenceDDR3C32 },
1873 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1874 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTFeatDef
1875 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1876 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTFeatDef
1877 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1878 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1879 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1880 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1881 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1882 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1883 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1884 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1885 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1886 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1887 #define NB_TRAIN_FLOW_DDR3 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1888 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_C32 { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1891 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_C32 { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1892 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_C32 { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1896 #if OPTION_MEMCTLR_OR
1897 extern OPTION_MEM_FEATURE_NB memNEnableTrainSequenceOr;
1898 #define TECH_TRAIN_ENTER_HW_TRN_DDR2 MemTFeatDef
1899 #define TECH_TRAIN_EXIT_HW_TRN_DDR2 MemTFeatDef
1900 #define TECH_TRAIN_HW_WL_P1_DDR2 MemTFeatDef
1901 #define TECH_TRAIN_HW_WL_P2_DDR2 MemTFeatDef
1902 #define TECH_TRAIN_SW_WL_DDR2 MemTFeatDef
1903 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1904 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR2 MemTFeatDef
1905 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1906 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR2 MemTFeatDef
1907 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1908 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR2 MemTFeatDef
1909 #define TECH_TRAIN_MAX_RD_LAT_DDR2 MemTFeatDef
1910 #define TECH_TRAIN_DQS____DDR2 MemTFeatDef
1911 #define NB_TRAIN_FLOW_DDR2 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
1912 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_OR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
1914 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
1915 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTPreparePhyAssistedTraining
1916 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
1917 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTExitPhyAssistedTraining
1918 #if (OPTION_HW_WRITE_LEV_TRAINING == TRUE)
1919 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTWriteLevelizationHw3Pass1
1920 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTWriteLevelizationHw3Pass2
1922 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
1923 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
1925 #if (OPTION_SW_WRITE_LEV_TRAINING == TRUE)
1926 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1928 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
1930 #if (OPTION_HW_DQS_REC_EN_TRAINING == TRUE)
1931 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1932 #undef TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3
1934 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTDqsTrainRcvrEnHwPass1
1935 #ifdef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1936 #undef TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3
1938 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTDqsTrainRcvrEnHwPass2
1939 #if (OPTION_HW_DQS_REC_EN_SEED_TRAINING == TRUE)
1940 #undef TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3
1941 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTRdPosWithRxEnDlySeeds3
1943 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1944 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1946 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1950 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1951 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
1952 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE || OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1953 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTTrainDQSEdgeDetect
1955 #define TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3 MemTFeatDef
1958 #if (OPTION_NON_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1959 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1961 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1963 #undef TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3
1964 #if (OPTION_OPT_SW_DQS_REC_EN_TRAINING == TRUE)
1965 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1967 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
1969 #if (OPTION_NON_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1970 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1972 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1974 #undef TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3
1975 #if (OPTION_OPT_SW_RD_WR_POS_TRAINING == TRUE)
1976 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTTrainDQSEdgeDetectSw
1978 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
1980 #if (OPTION_MAX_RD_LAT_TRAINING == TRUE)
1981 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTTrainMaxLatency
1983 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
1985 #define TECH_TRAIN_DQS____DDR3 MemTFeatDef
1986 MEM_TECH_FEAT_BLOCK memTechTrainingFeatSequenceDDR3OR = {
1987 MEM_TECH_FEAT_BLOCK_STRUCT_VERSION,
1988 TECH_TRAIN_ENTER_HW_TRN_DDR3,
1989 TECH_TRAIN_SW_WL_DDR3,
1990 TECH_TRAIN_HW_WL_P1_DDR3,
1991 TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3,
1992 TECH_TRAIN_HW_WL_P2_DDR3,
1993 TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3,
1994 TECH_TRAIN_EXIT_HW_TRN_DDR3,
1995 TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3,
1996 TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3,
1997 TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3,
1998 TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3,
1999 TECH_TRAIN_MAX_RD_LAT_DDR3,
2000 TECH_TRAIN_HW_DQS_REC_EN_SEED_DDR3,
2001 TECH_TRAIN_DQS____DDR3
2003 #define NB_TRAIN_FLOW_DDR3 MemNDQSTiming3Nb
2004 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_OR {MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION,memNSequenceDDR3Nb, memNEnableTrainSequenceOr, &memTechTrainingFeatSequenceDDR3OR },
2006 #undef TECH_TRAIN_ENTER_HW_TRN_DDR3
2007 #define TECH_TRAIN_ENTER_HW_TRN_DDR3 MemTFeatDef
2008 #undef TECH_TRAIN_EXIT_HW_TRN_DDR3
2009 #define TECH_TRAIN_EXIT_HW_TRN_DDR3 MemTFeatDef
2010 #define TECH_TRAIN_HW_WL_P1_DDR3 MemTFeatDef
2011 #define TECH_TRAIN_HW_WL_P2_DDR3 MemTFeatDef
2012 #define TECH_TRAIN_SW_WL_DDR3 MemTFeatDef
2013 #define TECH_TRAIN_HW_DQS_REC_EN_P1_DDR3 MemTFeatDef
2014 #define TECH_TRAIN_HW_DQS_REC_EN_P2_DDR3 MemTFeatDef
2015 #define TECH_TRAIN_NON_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
2016 #define TECH_TRAIN_OPT_SW_DQS_REC_EN_P1_DDR3 MemTFeatDef
2017 #define TECH_TRAIN_NON_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
2018 #define TECH_TRAIN_OPT_SW_RD_WR_POS_DDR3 MemTFeatDef
2019 #define TECH_TRAIN_MAX_RD_LAT_DDR3 MemTFeatDef
2020 #define NB_TRAIN_FLOW_DDR3 (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue
2021 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_OR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
2024 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_OR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
2025 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_OR { MEM_TECH_TRAIN_SEQUENCE_STRUCT_VERSION, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefTrue, (BOOLEAN (*) (MEM_NB_BLOCK*)) memDefFalse, 0 },
2028 #define MEM_TECH_ENABLE_TRAINING_SEQUENCE_END { MEM_NB_SUPPORT_STRUCT_VERSION, 0, 0, 0 }
2029 MEM_FEAT_TRAIN_SEQ memTrainSequenceDDR2[] = {
2030 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DR
2031 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_DA
2032 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_HY
2033 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_C32
2034 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_Ni
2035 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_OR
2036 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_PH
2037 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR2_RB
2038 MEM_TECH_ENABLE_TRAINING_SEQUENCE_END
2041 MEM_FEAT_TRAIN_SEQ memTrainSequenceDDR3[] = {
2042 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DR
2043 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_DA
2044 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_HY
2045 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_C32
2046 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_Ni
2047 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_OR
2048 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_PH
2049 MEM_TECH_ENABLE_TRAINING_SEQUENCE_DDR3_RB
2050 MEM_TECH_ENABLE_TRAINING_SEQUENCE_END
2052 /*---------------------------------------------------------------------------------------------------
2053 * NB TRAINING FLOW CONTROL
2056 *---------------------------------------------------------------------------------------------------
2058 OPTION_MEM_FEATURE_NB* memNTrainFlowControl[] = { // Training flow control
2062 /*---------------------------------------------------------------------------------------------------
2066 *---------------------------------------------------------------------------------------------------
2068 MEM_TECH_CONSTRUCTOR* memTechInstalled[] = { // Types of technology installed
2069 MEM_TECH_CONSTRUCTOR_DDR2
2070 MEM_TECH_CONSTRUCTOR_DDR3
2073 /*---------------------------------------------------------------------------------------------------
2074 * PLATFORM SPECIFIC BLOCK FORM FACTOR DEFINITION
2077 *---------------------------------------------------------------------------------------------------
2079 #if OPTION_MEMCTLR_HY
2082 #define PLAT_SP_HY_FF_UDIMM2 MemPConstructPsUDef,
2084 #define PLAT_SP_HY_FF_UDIMM2 MemPConstructPsUDef,
2087 #define PLAT_SP_HY_FF_UDIMM3 MemPConstructPsUHy3,
2089 #define PLAT_SP_HY_FF_UDIMM3 MemPConstructPsUDef,
2092 #define PLAT_SP_HY_FF_UDIMM2 MemPConstructPsUDef,
2093 #define PLAT_SP_HY_FF_UDIMM3 MemPConstructPsUDef,
2097 #define PLAT_SP_HY_FF_RDIMM2 MemPConstructPsUDef,
2099 #define PLAT_SP_HY_FF_RDIMM2 MemPConstructPsUDef,
2102 #define PLAT_SP_HY_FF_RDIMM3 MemPConstructPsRHy3,
2104 #define PLAT_SP_HY_FF_RDIMM3 MemPConstructPsUDef,
2107 #define PLAT_SP_HY_FF_RDIMM2 MemPConstructPsUDef,
2108 #define PLAT_SP_HY_FF_RDIMM3 MemPConstructPsUDef,
2112 #define PLAT_SP_HY_FF_SDIMM2 MemPConstructPsUDef,
2114 #define PLAT_SP_HY_FF_SDIMM2 MemPConstructPsUDef,
2117 #define PLAT_SP_HY_FF_SDIMM3 MemPConstructPsSHy3,
2119 #define PLAT_SP_HY_FF_SDIMM3 MemPConstructPsUDef,
2122 #define PLAT_SP_HY_FF_SDIMM2 MemPConstructPsUDef,
2123 #define PLAT_SP_HY_FF_SDIMM3 MemPConstructPsUDef,
2126 #define PLAT_SP_HY_FF_SDIMM2 MemPConstructPsUDef,
2127 #define PLAT_SP_HY_FF_RDIMM2 MemPConstructPsUDef,
2128 #define PLAT_SP_HY_FF_UDIMM2 MemPConstructPsUDef,
2129 #define PLAT_SP_HY_FF_SDIMM3 MemPConstructPsUDef,
2130 #define PLAT_SP_HY_FF_RDIMM3 MemPConstructPsUDef,
2131 #define PLAT_SP_HY_FF_UDIMM3 MemPConstructPsUDef,
2133 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledHy[MAX_FF_TYPES] = {
2134 PLAT_SP_HY_FF_UDIMM2
2135 PLAT_SP_HY_FF_RDIMM2
2136 PLAT_SP_HY_FF_SDIMM2
2137 PLAT_SP_HY_FF_UDIMM3
2138 PLAT_SP_HY_FF_RDIMM3
2139 PLAT_SP_HY_FF_SDIMM3
2142 #if OPTION_MEMCTLR_DR
2145 extern MEM_PLAT_SPEC_CFG MemPConstructPsUDr2;
2146 #define PLAT_SP_DR_FF_UDIMM2 MemPConstructPsUDr2,
2148 #define PLAT_SP_DR_FF_UDIMM2 MemPConstructPsUDef,
2151 #define PLAT_SP_DR_FF_UDIMM3 MemPConstructPsUDr3,
2153 #define PLAT_SP_DR_FF_UDIMM3 MemPConstructPsUDef,
2156 #define PLAT_SP_DR_FF_UDIMM2 MemPConstructPsUDef,
2157 #define PLAT_SP_DR_FF_UDIMM3 MemPConstructPsUDef,
2161 extern MEM_PLAT_SPEC_CFG MemPConstructPsRDr2;
2162 #define PLAT_SP_DR_FF_RDIMM2 MemPConstructPsRDr2,
2164 #define PLAT_SP_DR_FF_RDIMM2 MemPConstructPsUDef,
2167 #define PLAT_SP_DR_FF_RDIMM3 MemPConstructPsRDr3,
2169 #define PLAT_SP_DR_FF_RDIMM3 MemPConstructPsUDef,
2172 #define PLAT_SP_DR_FF_RDIMM2 MemPConstructPsUDef,
2173 #define PLAT_SP_DR_FF_RDIMM3 MemPConstructPsUDef,
2177 #define PLAT_SP_DR_FF_SDIMM2 MemPConstructPsUDef,
2179 #define PLAT_SP_DR_FF_SDIMM2 MemPConstructPsUDef,
2182 #define PLAT_SP_DR_FF_SDIMM3 MemPConstructPsSDr3,
2184 #define PLAT_SP_DR_FF_SDIMM3 MemPConstructPsUDef,
2187 #define PLAT_SP_DR_FF_SDIMM2 MemPConstructPsUDef,
2188 #define PLAT_SP_DR_FF_SDIMM3 MemPConstructPsUDef,
2191 #define PLAT_SP_DR_FF_SDIMM2 MemPConstructPsUDef,
2192 #define PLAT_SP_DR_FF_RDIMM2 MemPConstructPsUDef,
2193 #define PLAT_SP_DR_FF_UDIMM2 MemPConstructPsUDef,
2194 #define PLAT_SP_DR_FF_SDIMM3 MemPConstructPsUDef,
2195 #define PLAT_SP_DR_FF_RDIMM3 MemPConstructPsUDef,
2196 #define PLAT_SP_DR_FF_UDIMM3 MemPConstructPsUDef,
2198 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledDR[MAX_FF_TYPES] = {
2199 PLAT_SP_DR_FF_UDIMM2
2200 PLAT_SP_DR_FF_RDIMM2
2201 PLAT_SP_DR_FF_SDIMM2
2202 PLAT_SP_DR_FF_UDIMM3
2203 PLAT_SP_DR_FF_RDIMM3
2204 PLAT_SP_DR_FF_SDIMM3
2207 #if (OPTION_MEMCTLR_DA == TRUE)
2210 #define PLAT_SP_DA_FF_UDIMM2 MemPConstructPsUDef,
2212 #define PLAT_SP_DA_FF_UDIMM2 MemPConstructPsUDef,
2215 #define PLAT_SP_DA_FF_UDIMM3 MemPConstructPsUDA3,
2217 #define PLAT_SP_DA_FF_UDIMM3 MemPConstructPsUDef,
2220 #define PLAT_SP_DA_FF_UDIMM2 MemPConstructPsUDef,
2221 #define PLAT_SP_DA_FF_UDIMM3 MemPConstructPsUDef,
2225 #define PLAT_SP_DA_FF_RDIMM2 MemPConstructPsUDef,
2227 #define PLAT_SP_DA_FF_RDIMM2 MemPConstructPsUDef,
2230 #define PLAT_SP_DA_FF_RDIMM3 MemPConstructPsUDef,
2232 #define PLAT_SP_DA_FF_RDIMM3 MemPConstructPsUDef,
2235 #define PLAT_SP_DA_FF_RDIMM2 MemPConstructPsUDef,
2236 #define PLAT_SP_DA_FF_RDIMM3 MemPConstructPsUDef,
2240 #define PLAT_SP_DA_FF_SDIMM2 MemPConstructPsSDA2,
2242 #define PLAT_SP_DA_FF_SDIMM2 MemPConstructPsUDef,
2245 #define PLAT_SP_DA_FF_SDIMM3 MemPConstructPsSDA3,
2247 #define PLAT_SP_DA_FF_SDIMM3 MemPConstructPsUDef,
2250 #define PLAT_SP_DA_FF_SDIMM2 MemPConstructPsUDef,
2251 #define PLAT_SP_DA_FF_SDIMM3 MemPConstructPsUDef,
2254 #define PLAT_SP_DA_FF_SDIMM2 MemPConstructPsUDef,
2255 #define PLAT_SP_DA_FF_RDIMM2 MemPConstructPsUDef,
2256 #define PLAT_SP_DA_FF_UDIMM2 MemPConstructPsUDef,
2257 #define PLAT_SP_DA_FF_SDIMM3 MemPConstructPsUDef,
2258 #define PLAT_SP_DA_FF_RDIMM3 MemPConstructPsUDef,
2259 #define PLAT_SP_DA_FF_UDIMM3 MemPConstructPsUDef,
2261 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledDA[MAX_FF_TYPES] = {
2262 PLAT_SP_DA_FF_UDIMM2
2263 PLAT_SP_DA_FF_RDIMM2
2264 PLAT_SP_DA_FF_SDIMM2
2265 PLAT_SP_DA_FF_UDIMM3
2266 PLAT_SP_DA_FF_RDIMM3
2267 PLAT_SP_DA_FF_SDIMM3
2270 #if (OPTION_MEMCTLR_Ni == TRUE)
2271 #define PLAT_SP_NI_FF_SDIMM2 MemPConstructPsUDef,
2272 #define PLAT_SP_NI_FF_RDIMM2 MemPConstructPsUDef,
2273 #define PLAT_SP_NI_FF_UDIMM2 MemPConstructPsUDef,
2274 #define PLAT_SP_NI_FF_SDIMM3 MemPConstructPsSNi3,
2275 #define PLAT_SP_NI_FF_RDIMM3 MemPConstructPsUDef,
2276 #define PLAT_SP_NI_FF_UDIMM3 MemPConstructPsUNi3,
2278 #define PLAT_SP_NI_FF_SDIMM2 MemPConstructPsUDef,
2279 #define PLAT_SP_NI_FF_RDIMM2 MemPConstructPsUDef,
2280 #define PLAT_SP_NI_FF_UDIMM2 MemPConstructPsUDef,
2281 #define PLAT_SP_NI_FF_SDIMM3 MemPConstructPsUDef,
2282 #define PLAT_SP_NI_FF_RDIMM3 MemPConstructPsUDef,
2283 #define PLAT_SP_NI_FF_UDIMM3 MemPConstructPsUDef,
2285 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledNi[MAX_FF_TYPES] = {
2286 PLAT_SP_NI_FF_UDIMM2
2287 PLAT_SP_NI_FF_RDIMM2
2288 PLAT_SP_NI_FF_SDIMM2
2289 PLAT_SP_NI_FF_UDIMM3
2290 PLAT_SP_NI_FF_RDIMM3
2291 PLAT_SP_NI_FF_SDIMM3
2294 #if (OPTION_MEMCTLR_PH == TRUE)
2295 #define PLAT_SP_PH_FF_SDIMM2 MemPConstructPsUDef,
2296 #define PLAT_SP_PH_FF_RDIMM2 MemPConstructPsUDef,
2297 #define PLAT_SP_PH_FF_UDIMM2 MemPConstructPsUDef,
2298 #define PLAT_SP_PH_FF_SDIMM3 MemPConstructPsSPh3,
2299 #define PLAT_SP_PH_FF_RDIMM3 MemPConstructPsUDef,
2300 #define PLAT_SP_PH_FF_UDIMM3 MemPConstructPsUPh3,
2302 #define PLAT_SP_PH_FF_SDIMM2 MemPConstructPsUDef,
2303 #define PLAT_SP_PH_FF_RDIMM2 MemPConstructPsUDef,
2304 #define PLAT_SP_PH_FF_UDIMM2 MemPConstructPsUDef,
2305 #define PLAT_SP_PH_FF_SDIMM3 MemPConstructPsUDef,
2306 #define PLAT_SP_PH_FF_RDIMM3 MemPConstructPsUDef,
2307 #define PLAT_SP_PH_FF_UDIMM3 MemPConstructPsUDef,
2309 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledPh[MAX_FF_TYPES] = {
2310 PLAT_SP_PH_FF_UDIMM2
2311 PLAT_SP_PH_FF_RDIMM2
2312 PLAT_SP_PH_FF_SDIMM2
2313 PLAT_SP_PH_FF_UDIMM3
2314 PLAT_SP_PH_FF_RDIMM3
2315 PLAT_SP_PH_FF_SDIMM3
2318 #if (OPTION_MEMCTLR_RB == TRUE)
2319 #define PLAT_SP_RB_FF_SDIMM2 MemPConstructPsUDef,
2320 #define PLAT_SP_RB_FF_RDIMM2 MemPConstructPsUDef,
2321 #define PLAT_SP_RB_FF_UDIMM2 MemPConstructPsUDef,
2322 #define PLAT_SP_RB_FF_SDIMM3 MemPConstructPsSRb3,
2323 #define PLAT_SP_RB_FF_RDIMM3 MemPConstructPsUDef,
2324 #define PLAT_SP_RB_FF_UDIMM3 MemPConstructPsURb3,
2326 #define PLAT_SP_RB_FF_SDIMM2 MemPConstructPsUDef,
2327 #define PLAT_SP_RB_FF_RDIMM2 MemPConstructPsUDef,
2328 #define PLAT_SP_RB_FF_UDIMM2 MemPConstructPsUDef,
2329 #define PLAT_SP_RB_FF_SDIMM3 MemPConstructPsUDef,
2330 #define PLAT_SP_RB_FF_RDIMM3 MemPConstructPsUDef,
2331 #define PLAT_SP_RB_FF_UDIMM3 MemPConstructPsUDef,
2333 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledRb[MAX_FF_TYPES] = {
2334 PLAT_SP_RB_FF_UDIMM2
2335 PLAT_SP_RB_FF_RDIMM2
2336 PLAT_SP_RB_FF_SDIMM2
2337 PLAT_SP_RB_FF_UDIMM3
2338 PLAT_SP_RB_FF_RDIMM3
2339 PLAT_SP_RB_FF_SDIMM3
2342 #if OPTION_MEMCTLR_C32
2345 #define PLAT_SP_C32_FF_UDIMM2 MemPConstructPsUDef,
2347 #define PLAT_SP_C32_FF_UDIMM2 MemPConstructPsUDef,
2350 #define PLAT_SP_C32_FF_UDIMM3 MemPConstructPsUC32_3,
2352 #define PLAT_SP_C32_FF_UDIMM3 MemPConstructPsUDef,
2355 #define PLAT_SP_C32_FF_UDIMM2 MemPConstructPsUDef,
2356 #define PLAT_SP_C32_FF_UDIMM3 MemPConstructPsUDef,
2360 #define PLAT_SP_C32_FF_RDIMM2 MemPConstructPsUDef,
2362 #define PLAT_SP_C32_FF_RDIMM2 MemPConstructPsUDef,
2365 #define PLAT_SP_C32_FF_RDIMM3 MemPConstructPsRC32_3,
2367 #define PLAT_SP_C32_FF_RDIMM3 MemPConstructPsUDef,
2370 #define PLAT_SP_C32_FF_RDIMM2 MemPConstructPsUDef,
2371 #define PLAT_SP_C32_FF_RDIMM3 MemPConstructPsUDef,
2374 #define PLAT_SP_C32_FF_SDIMM2 MemPConstructPsUDef,
2375 #define PLAT_SP_C32_FF_SDIMM3 MemPConstructPsUDef,
2378 #define PLAT_SP_C32_FF_SDIMM2 MemPConstructPsUDef,
2379 #define PLAT_SP_C32_FF_RDIMM2 MemPConstructPsUDef,
2380 #define PLAT_SP_C32_FF_UDIMM2 MemPConstructPsUDef,
2381 #define PLAT_SP_C32_FF_SDIMM3 MemPConstructPsUDef,
2382 #define PLAT_SP_C32_FF_RDIMM3 MemPConstructPsUDef,
2383 #define PLAT_SP_C32_FF_UDIMM3 MemPConstructPsUDef,
2385 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledC32[MAX_FF_TYPES] = {
2386 PLAT_SP_C32_FF_UDIMM2
2387 PLAT_SP_C32_FF_RDIMM2
2388 PLAT_SP_C32_FF_SDIMM2
2389 PLAT_SP_C32_FF_UDIMM3
2390 PLAT_SP_C32_FF_RDIMM3
2391 PLAT_SP_C32_FF_SDIMM3
2394 /*---------------------------------------------------------------------------------------------------
2395 * PLATFORM-SPECIFIC CONFIGURATION
2398 *---------------------------------------------------------------------------------------------------
2401 #if OPTION_MEMCTLR_DR
2404 #define PSC_DR_UDIMM_DDR2 //MemAGetPsCfgUDr2
2406 #define PSC_DR_UDIMM_DDR2
2409 #define PSC_DR_UDIMM_DDR3 MemAGetPsCfgUDr3,
2411 #define PSC_DR_UDIMM_DDR3
2416 #define PSC_DR_RDIMM_DDR2 MemAGetPsCfgRDr2,
2418 #define PSC_DR_RDIMM_DDR2
2421 #define PSC_DR_RDIMM_DDR3 MemAGetPsCfgRDr3,
2423 #define PSC_DR_RDIMM_DDR3
2428 #define PSC_DR_SODIMM_DDR2 //MemAGetPsCfgSDr2
2430 #define PSC_DR_SODIMM_DDR2
2433 #define PSC_DR_SODIMM_DDR3 //MemAGetPsCfgSDr3
2435 #define PSC_DR_SODIMM_DDR3
2440 #if (OPTION_MEMCTLR_DA == TRUE || OPTION_MEMCTLR_Ni == TRUE || OPTION_MEMCTLR_RB == TRUE || OPTION_MEMCTLR_PH == TRUE)
2441 #if OPTION_MEMCTLR_Ni
2442 #define PSC_NI_UDIMM_DDR2
2443 #define PSC_NI_UDIMM_DDR3 MemAGetPsCfgUNi3,
2444 #define PSC_NI_RDIMM_DDR2
2445 #define PSC_NI_RDIMM_DDR3
2446 #define PSC_NI_SODIMM_DDR2
2447 #define PSC_NI_SODIMM_DDR3 MemAGetPsCfgSNi3,
2449 #if OPTION_MEMCTLR_PH
2450 #define PSC_PH_UDIMM_DDR2
2451 #define PSC_PH_UDIMM_DDR3 MemAGetPsCfgUPh3,
2452 #define PSC_PH_RDIMM_DDR2
2453 #define PSC_PH_RDIMM_DDR3
2454 #define PSC_PH_SODIMM_DDR2
2455 #define PSC_PH_SODIMM_DDR3 MemAGetPsCfgSPh3,
2457 #if OPTION_MEMCTLR_RB
2458 #define PSC_RB_UDIMM_DDR2
2459 #define PSC_RB_UDIMM_DDR3 MemAGetPsCfgURb3,
2460 #define PSC_RB_RDIMM_DDR2
2461 #define PSC_RB_RDIMM_DDR3
2462 #define PSC_RB_SODIMM_DDR2
2463 #define PSC_RB_SODIMM_DDR3 MemAGetPsCfgSRb3,
2465 #if OPTION_MEMCTLR_DA
2468 #define PSC_DA_UDIMM_DDR2 //MemAGetPsCfgUDr2
2470 #define PSC_DA_UDIMM_DDR2
2473 #define PSC_DA_UDIMM_DDR3 MemAGetPsCfgUDA3,
2475 #define PSC_DA_UDIMM_DDR3
2480 #define PSC_DA_RDIMM_DDR2
2482 #define PSC_DA_RDIMM_DDR2
2485 #define PSC_DA_RDIMM_DDR3
2487 #define PSC_DA_RDIMM_DDR3
2492 #define PSC_DA_SODIMM_DDR2 MemAGetPsCfgSDA2,
2494 #define PSC_DA_SODIMM_DDR2
2497 #define PSC_DA_SODIMM_DDR3 MemAGetPsCfgSDA3,
2499 #define PSC_DA_SODIMM_DDR3
2505 #if OPTION_MEMCTLR_HY
2508 #define PSC_HY_UDIMM_DDR2 //MemAGetPsCfgUDr2,
2510 #define PSC_HY_UDIMM_DDR2
2513 #define PSC_HY_UDIMM_DDR3 MemAGetPsCfgUHy3,
2515 #define PSC_HY_UDIMM_DDR3
2520 #define PSC_HY_RDIMM_DDR2
2522 #define PSC_HY_RDIMM_DDR2
2525 #define PSC_HY_RDIMM_DDR3 MemAGetPsCfgRHy3,
2527 #define PSC_HY_RDIMM_DDR3
2532 #define PSC_HY_SODIMM_DDR2 //MemAGetPsCfgSHy2,
2534 #define PSC_HY_SODIMM_DDR2
2537 #define PSC_HY_SODIMM_DDR3 //MemAGetPsCfgSHy3,
2539 #define PSC_HY_SODIMM_DDR3
2544 #if OPTION_MEMCTLR_C32
2547 #define PSC_C32_UDIMM_DDR2 //MemAGetPsCfgUDr2,
2549 #define PSC_C32_UDIMM_DDR2
2552 #define PSC_C32_UDIMM_DDR3 MemAGetPsCfgUC32_3,
2554 #define PSC_C32_UDIMM_DDR3
2559 #define PSC_C32_RDIMM_DDR2
2561 #define PSC_C32_RDIMM_DDR2
2564 #define PSC_C32_RDIMM_DDR3 MemAGetPsCfgRC32_3,
2566 #define PSC_C32_RDIMM_DDR3
2571 #define PSC_C32_SODIMM_DDR2 //MemAGetPsCfgSC32_2,
2573 #define PSC_C32_SODIMM_DDR2
2576 #define PSC_C32_SODIMM_DDR3 //MemAGetPsCfgSC32_3,
2578 #define PSC_C32_SODIMM_DDR3
2583 #if OPTION_MEMCTLR_OR
2586 #define PSC_OR_UDIMM_DDR2 //MemAGetPsCfgUOr2,
2588 #define PSC_OR_UDIMM_DDR2
2591 #define PSC_OR_UDIMM_DDR3 //MemAGetPsCfgUOr3,
2593 #define PSC_OR_UDIMM_DDR3
2598 #define PSC_OR_RDIMM_DDR2
2600 #define PSC_OR_RDIMM_DDR2
2603 #define PSC_OR_RDIMM_DDR3 //MemAGetPsCfgROr3,
2605 #define PSC_OR_RDIMM_DDR3
2610 #define PSC_OR_SODIMM_DDR2 //MemAGetPsCfgSOr2,
2612 #define PSC_OR_SODIMM_DDR2
2615 #define PSC_OR_SODIMM_DDR3 //MemAGetPsCfgSOr3,
2617 #define PSC_OR_SODIMM_DDR3
2622 /*----------------------------------------------------------------------
2623 * DEFAULT PSCFG DEFINITIONS
2625 *----------------------------------------------------------------------
2628 #ifndef PSC_DR_UDIMM_DDR2
2629 #define PSC_DR_UDIMM_DDR2
2631 #ifndef PSC_DR_RDIMM_DDR2
2632 #define PSC_DR_RDIMM_DDR2
2634 #ifndef PSC_DR_SODIMM_DDR2
2635 #define PSC_DR_SODIMM_DDR2
2637 #ifndef PSC_DR_UDIMM_DDR3
2638 #define PSC_DR_UDIMM_DDR3
2640 #ifndef PSC_DR_RDIMM_DDR3
2641 #define PSC_DR_RDIMM_DDR3
2643 #ifndef PSC_DR_SODIMM_DDR3
2644 #define PSC_DR_SODIMM_DDR3
2646 #ifndef PSC_RB_UDIMM_DDR2
2647 #define PSC_RB_UDIMM_DDR2
2649 #ifndef PSC_RB_RDIMM_DDR2
2650 #define PSC_RB_RDIMM_DDR2
2652 #ifndef PSC_RB_SODIMM_DDR2
2653 #define PSC_RB_SODIMM_DDR2
2655 #ifndef PSC_RB_UDIMM_DDR3
2656 #define PSC_RB_UDIMM_DDR3
2658 #ifndef PSC_RB_RDIMM_DDR3
2659 #define PSC_RB_RDIMM_DDR3
2661 #ifndef PSC_RB_SODIMM_DDR3
2662 #define PSC_RB_SODIMM_DDR3
2664 #ifndef PSC_DA_UDIMM_DDR2
2665 #define PSC_DA_UDIMM_DDR2
2667 #ifndef PSC_DA_RDIMM_DDR2
2668 #define PSC_DA_RDIMM_DDR2
2670 #ifndef PSC_DA_SODIMM_DDR2
2671 #define PSC_DA_SODIMM_DDR2
2673 #ifndef PSC_DA_UDIMM_DDR3
2674 #define PSC_DA_UDIMM_DDR3
2676 #ifndef PSC_DA_RDIMM_DDR3
2677 #define PSC_DA_RDIMM_DDR3
2679 #ifndef PSC_DA_SODIMM_DDR3
2680 #define PSC_DA_SODIMM_DDR3
2682 #ifndef PSC_NI_UDIMM_DDR2
2683 #define PSC_NI_UDIMM_DDR2
2685 #ifndef PSC_NI_RDIMM_DDR2
2686 #define PSC_NI_RDIMM_DDR2
2688 #ifndef PSC_NI_SODIMM_DDR2
2689 #define PSC_NI_SODIMM_DDR2
2691 #ifndef PSC_NI_UDIMM_DDR3
2692 #define PSC_NI_UDIMM_DDR3
2694 #ifndef PSC_NI_RDIMM_DDR3
2695 #define PSC_NI_RDIMM_DDR3
2697 #ifndef PSC_NI_SODIMM_DDR3
2698 #define PSC_NI_SODIMM_DDR3
2700 #ifndef PSC_PH_UDIMM_DDR2
2701 #define PSC_PH_UDIMM_DDR2
2703 #ifndef PSC_PH_RDIMM_DDR2
2704 #define PSC_PH_RDIMM_DDR2
2706 #ifndef PSC_PH_SODIMM_DDR2
2707 #define PSC_PH_SODIMM_DDR2
2709 #ifndef PSC_PH_UDIMM_DDR3
2710 #define PSC_PH_UDIMM_DDR3
2712 #ifndef PSC_PH_RDIMM_DDR3
2713 #define PSC_PH_RDIMM_DDR3
2715 #ifndef PSC_PH_SODIMM_DDR3
2716 #define PSC_PH_SODIMM_DDR3
2718 #ifndef PSC_HY_UDIMM_DDR2
2719 #define PSC_HY_UDIMM_DDR2
2721 #ifndef PSC_HY_RDIMM_DDR2
2722 #define PSC_HY_RDIMM_DDR2
2724 #ifndef PSC_HY_SODIMM_DDR2
2725 #define PSC_HY_SODIMM_DDR2
2727 #ifndef PSC_HY_UDIMM_DDR3
2728 #define PSC_HY_UDIMM_DDR3
2730 #ifndef PSC_HY_RDIMM_DDR3
2731 #define PSC_HY_RDIMM_DDR3
2733 #ifndef PSC_HY_SODIMM_DDR3
2734 #define PSC_HY_SODIMM_DDR3
2736 #ifndef PSC_LN_UDIMM_DDR2
2737 #define PSC_LN_UDIMM_DDR2
2739 #ifndef PSC_LN_RDIMM_DDR2
2740 #define PSC_LN_RDIMM_DDR2
2742 #ifndef PSC_LN_SODIMM_DDR2
2743 #define PSC_LN_SODIMM_DDR2
2745 #ifndef PSC_LN_UDIMM_DDR3
2746 #define PSC_LN_UDIMM_DDR3
2748 #ifndef PSC_LN_RDIMM_DDR3
2749 #define PSC_LN_RDIMM_DDR3
2751 #ifndef PSC_LN_SODIMM_DDR3
2752 #define PSC_LN_SODIMM_DDR3
2754 #ifndef PSC_OR_UDIMM_DDR2
2755 #define PSC_OR_UDIMM_DDR2
2757 #ifndef PSC_OR_RDIMM_DDR2
2758 #define PSC_OR_RDIMM_DDR2
2760 #ifndef PSC_OR_SODIMM_DDR2
2761 #define PSC_OR_SODIMM_DDR2
2763 #ifndef PSC_OR_UDIMM_DDR3
2764 #define PSC_OR_UDIMM_DDR3
2766 #ifndef PSC_OR_RDIMM_DDR3
2767 #define PSC_OR_RDIMM_DDR3
2769 #ifndef PSC_OR_SODIMM_DDR3
2770 #define PSC_OR_SODIMM_DDR3
2772 #ifndef PSC_C32_UDIMM_DDR3
2773 #define PSC_C32_UDIMM_DDR3
2775 #ifndef PSC_C32_RDIMM_DDR3
2776 #define PSC_C32_RDIMM_DDR3
2778 #ifndef PSC_ON_UDIMM_DDR2
2779 #define PSC_ON_UDIMM_DDR2
2781 #ifndef PSC_ON_RDIMM_DDR2
2782 #define PSC_ON_RDIMM_DDR2
2784 #ifndef PSC_ON_SODIMM_DDR2
2785 #define PSC_ON_SODIMM_DDR2
2787 #ifndef PSC_ON_UDIMM_DDR3
2788 #define PSC_ON_UDIMM_DDR3
2790 #ifndef PSC_ON_RDIMM_DDR3
2791 #define PSC_ON_RDIMM_DDR3
2793 #ifndef PSC_ON_SODIMM_DDR3
2794 #define PSC_ON_SODIMM_DDR3
2797 MEM_PLATFORM_CFG* memPlatformTypeInstalled[] = {
2829 CONST UINTN SIZE_OF_PLATFORM = (sizeof (memPlatformTypeInstalled) / sizeof (MEM_PLATFORM_CFG*));
2830 // #if SIZE_OF_PLATFORM > MAX_PLATFORM_TYPES
2831 // #error Size of memPlatformTypeInstalled array larger than MAX_PLATFORM_TYPES
2834 /*---------------------------------------------------------------------------------------------------
2835 * EXTRACTABLE PLATFORM SPECIFIC CONFIGURATION
2838 *---------------------------------------------------------------------------------------------------
2840 #define MEM_PSC_FLOW_BLOCK_END NULL
2841 #define PSC_TBL_END NULL
2842 #define MEM_PSC_FLOW_DEFTRUE (BOOLEAN (*) (MEM_NB_BLOCK*, MEM_PSC_TABLE_BLOCK *)) memDefTrue
2844 #if OPTION_MEMCTLR_OR
2846 #if OPTION_AM3_SOCKET_SUPPORT
2847 extern PSC_TBL_ENTRY MaxFreqTblEntUAM3;
2848 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_AM3 &MaxFreqTblEntUAM3,
2849 extern PSC_TBL_ENTRY DramTermTblEntUAM3;
2850 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_AM3 &DramTermTblEntUAM3,
2851 extern PSC_TBL_ENTRY OdtPat1DTblEntUAM3;
2852 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_AM3 &OdtPat1DTblEntUAM3,
2853 extern PSC_TBL_ENTRY OdtPat2DTblEntUAM3;
2854 #define PSC_TBL_OR_UDIMM3_ODT_PAT____AM3 &OdtPat2DTblEntUAM3,
2855 extern PSC_TBL_ENTRY OdtPat3DTblEntUAM3;
2856 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_AM3 &OdtPat3DTblEntUAM3,
2857 extern PSC_TBL_ENTRY SAOTblEntUAM3;
2858 #define PSC_TBL_OR_UDIMM3_SAO_AM3 &SAOTblEntUAM3,
2859 extern PSC_TBL_ENTRY ClkDisMapEntUAM3;
2860 #define PSC_TBL_OR_UDIMM3_CLK_DIS_AM3 &ClkDisMapEntUAM3,
2861 extern PSC_TBL_ENTRY S__TblEntUAM3;
2862 #define PSC_TBL_OR_UDIMM3_S___AM3 &S__TblEntUAM3,
2863 extern PSC_TBL_ENTRY WLPass1SeedEntUAM3;
2864 #define PSC_TBL_OR_UDIMM3_WL_SEED_AM3 &WLPass1SeedEntUAM3,
2865 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntUAM3;
2866 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_AM3 &HWRxEnPass1SeedEntUAM3,
2868 #if OPTION_C32_SOCKET_SUPPORT
2869 extern PSC_TBL_ENTRY MaxFreqTblEntUC32;
2870 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_C32 &MaxFreqTblEntUC32,
2871 extern PSC_TBL_ENTRY DramTermTblEntUC32;
2872 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_C32 &DramTermTblEntUC32,
2873 extern PSC_TBL_ENTRY OdtPat1DTblEntUC32;
2874 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_C32 &OdtPat1DTblEntUC32,
2875 extern PSC_TBL_ENTRY OdtPat2DTblEntUC32;
2876 #define PSC_TBL_OR_UDIMM3_ODT_PAT____C32 &OdtPat2DTblEntUC32,
2877 extern PSC_TBL_ENTRY OdtPat3DTblEntUC32;
2878 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_C32 &OdtPat3DTblEntUC32,
2879 extern PSC_TBL_ENTRY SAOTblEntUC32;
2880 #define PSC_TBL_OR_UDIMM3_SAO_C32 &SAOTblEntUC32,
2881 extern PSC_TBL_ENTRY ClkDisMapEntUC32;
2882 #define PSC_TBL_OR_UDIMM3_CLK_DIS_C32 &ClkDisMapEntUC32,
2883 extern PSC_TBL_ENTRY ClkDisMap3DEntUC32;
2884 #define PSC_TBL_OR_UDIMM3_CLK_DIS_3D_C32 &ClkDisMap3DEntUC32,
2885 extern PSC_TBL_ENTRY S__TblEntUC32;
2886 #define PSC_TBL_OR_UDIMM3_S___C32 &S__TblEntUC32,
2887 extern PSC_TBL_ENTRY WLPass1SeedEntUC32;
2888 #define PSC_TBL_OR_UDIMM3_WL_SEED_C32 &WLPass1SeedEntUC32,
2889 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntUC32;
2890 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_C32 &HWRxEnPass1SeedEntUC32,
2892 #if OPTION_G34_SOCKET_SUPPORT
2893 extern PSC_TBL_ENTRY MaxFreqTblEntUG34;
2894 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_G34 &MaxFreqTblEntUG34,
2895 extern PSC_TBL_ENTRY DramTermTblEntUG34;
2896 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_G34 &DramTermTblEntUG34,
2897 extern PSC_TBL_ENTRY OdtPat1DTblEntUG34;
2898 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_G34 &OdtPat1DTblEntUG34,
2899 extern PSC_TBL_ENTRY OdtPat2DTblEntUG34;
2900 #define PSC_TBL_OR_UDIMM3_ODT_PAT____G34 &OdtPat2DTblEntUG34,
2901 extern PSC_TBL_ENTRY OdtPat3DTblEntUG34;
2902 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_G34 &OdtPat3DTblEntUG34,
2903 extern PSC_TBL_ENTRY SAOTblEntUG34;
2904 #define PSC_TBL_OR_UDIMM3_SAO_G34 &SAOTblEntUG34,
2905 extern PSC_TBL_ENTRY ClkDisMapEntUG34;
2906 #define PSC_TBL_OR_UDIMM3_CLK_DIS_G34 &ClkDisMapEntUG34,
2907 extern PSC_TBL_ENTRY S__TblEntUG34;
2908 #define PSC_TBL_OR_UDIMM3_S___G34 &S__TblEntUG34,
2909 extern PSC_TBL_ENTRY WLPass1SeedEntUG34;
2910 #define PSC_TBL_OR_UDIMM3_WL_SEED_G34 &WLPass1SeedEntUG34,
2911 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntUG34;
2912 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_G34 &HWRxEnPass1SeedEntUG34,
2916 #if OPTION_C32_SOCKET_SUPPORT
2917 extern PSC_TBL_ENTRY MaxFreqTblEntRC32;
2918 #define PSC_TBL_OR_RDIMM3_MAX_FREQ_C32 &MaxFreqTblEntRC32,
2919 extern PSC_TBL_ENTRY DramTermTblEntRC32;
2920 #define PSC_TBL_OR_RDIMM3_DRAM_TERM_C32 &DramTermTblEntRC32,
2921 extern PSC_TBL_ENTRY OdtPat1DTblEntRC32;
2922 #define PSC_TBL_OR_RDIMM3_ODT_PAT_1D_C32 &OdtPat1DTblEntRC32,
2923 extern PSC_TBL_ENTRY OdtPat2DTblEntRC32;
2924 #define PSC_TBL_OR_RDIMM3_ODT_PAT____C32 &OdtPat2DTblEntRC32,
2925 extern PSC_TBL_ENTRY OdtPat3DTblEntRC32;
2926 #define PSC_TBL_OR_RDIMM3_ODT_PAT_3D_C32 &OdtPat3DTblEntRC32,
2927 extern PSC_TBL_ENTRY SAOTblEntRC32;
2928 #define PSC_TBL_OR_RDIMM3_SAO_C32 &SAOTblEntRC32,
2929 extern PSC_TBL_ENTRY RC2IBTTblEntRC32;
2930 #define PSC_TBL_OR_RDIMM3_RC2IBT_C32 &RC2IBTTblEntRC32,
2931 extern PSC_TBL_ENTRY RC10OpSpdTblEntRC32;
2932 #define PSC_TBL_OR_RDIMM3_RC10OPSPD_C32 &RC10OpSpdTblEntRC32,
2933 extern PSC_TBL_ENTRY ClkDisMapEntRC32;
2934 #define PSC_TBL_OR_RDIMM3_CLK_DIS_C32 &ClkDisMapEntRC32,
2935 extern PSC_TBL_ENTRY S__TblEntRC32;
2936 #define PSC_TBL_OR_RDIMM3_S___C32 &S__TblEntRC32,
2937 extern PSC_TBL_ENTRY WLPass1SeedEntRC32;
2938 #define PSC_TBL_OR_RDIMM3_WL_SEED_C32 &WLPass1SeedEntRC32,
2939 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntRC32;
2940 #define PSC_TBL_OR_RDIMM3_HWRXEN_SEED_C32 &HWRxEnPass1SeedEntRC32,
2942 #if OPTION_G34_SOCKET_SUPPORT
2943 extern PSC_TBL_ENTRY MaxFreqTblEntRG34;
2944 #define PSC_TBL_OR_RDIMM3_MAX_FREQ_G34 &MaxFreqTblEntRG34,
2945 extern PSC_TBL_ENTRY DramTermTblEntRG34;
2946 #define PSC_TBL_OR_RDIMM3_DRAM_TERM_G34 &DramTermTblEntRG34,
2947 extern PSC_TBL_ENTRY OdtPat1DTblEntRG34;
2948 #define PSC_TBL_OR_RDIMM3_ODT_PAT_1D_G34 &OdtPat1DTblEntRG34,
2949 extern PSC_TBL_ENTRY OdtPat2DTblEntRG34;
2950 #define PSC_TBL_OR_RDIMM3_ODT_PAT____G34 &OdtPat2DTblEntRG34,
2951 extern PSC_TBL_ENTRY OdtPat3DTblEntRG34;
2952 #define PSC_TBL_OR_RDIMM3_ODT_PAT_3D_G34 &OdtPat3DTblEntRG34,
2953 extern PSC_TBL_ENTRY SAOTblEntRG34;
2954 #define PSC_TBL_OR_RDIMM3_SAO_G34 &SAOTblEntRG34,
2955 extern PSC_TBL_ENTRY RC2IBTTblEntRG34;
2956 #define PSC_TBL_OR_RDIMM3_RC2IBT_G34 &RC2IBTTblEntRG34,
2957 extern PSC_TBL_ENTRY RC10OpSpdTblEntRG34;
2958 #define PSC_TBL_OR_RDIMM3_RC10OPSPD_G34 &RC10OpSpdTblEntRG34,
2959 extern PSC_TBL_ENTRY ClkDisMapEntRG34;
2960 #define PSC_TBL_OR_RDIMM3_CLK_DIS_G34 &ClkDisMapEntRG34,
2961 extern PSC_TBL_ENTRY S__TblEntRG34;
2962 #define PSC_TBL_OR_RDIMM3_S___G34 &S__TblEntRG34,
2963 extern PSC_TBL_ENTRY WLPass1SeedEntRG34;
2964 #define PSC_TBL_OR_RDIMM3_WL_SEED_G34 &WLPass1SeedEntRG34,
2965 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntRG34;
2966 #define PSC_TBL_OR_RDIMM3_HWRXEN_SEED_G34 &HWRxEnPass1SeedEntRG34,
2969 //#if OPTION_SODIMMS
2972 #if OPTION_C32_SOCKET_SUPPORT
2973 extern PSC_TBL_ENTRY MaxFreqTblEntLRC32;
2974 #define PSC_TBL_OR_LRDIMM3_MAX_FREQ_C32 &MaxFreqTblEntLRC32,
2975 extern PSC_TBL_ENTRY DramTermTblEntLRC32;
2976 #define PSC_TBL_OR_LRDIMM3_DRAM_TERM_C32 &DramTermTblEntLRC32,
2977 extern PSC_TBL_ENTRY OdtPat1DTblEntLRC32;
2978 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_C32 &OdtPat1DTblEntLRC32,
2979 extern PSC_TBL_ENTRY OdtPat2DTblEntLRC32;
2980 #define PSC_TBL_OR_LRDIMM3_ODT_PAT____C32 &OdtPat2DTblEntLRC32,
2981 extern PSC_TBL_ENTRY OdtPat3DTblEntLRC32;
2982 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_C32 &OdtPat3DTblEntLRC32,
2983 extern PSC_TBL_ENTRY SAOTblEntLRC32;
2984 #define PSC_TBL_OR_LRDIMM3_SAO_C32 &SAOTblEntLRC32,
2985 extern PSC_TBL_ENTRY IBTTblEntLRC32;
2986 #define PSC_TBL_OR_LRDIMM3_IBT_C32 &IBTTblEntLRC32,
2987 extern PSC_TBL_ENTRY ClkDisMapEntLRC32;
2988 #define PSC_TBL_OR_LRDIMM3_CLK_DIS_C32 &ClkDisMapEntLRC32,
2989 extern PSC_TBL_ENTRY S__TblEntLRC32;
2990 #define PSC_TBL_OR_LRDIMM3_S___C32 &S__TblEntLRC32,
2991 extern PSC_TBL_ENTRY WLPass1SeedEntLRC32;
2992 #define PSC_TBL_OR_LRDIMM3_WL_SEED_C32 &WLPass1SeedEntLRC32,
2993 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntLRC32;
2994 #define PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_C32 &HWRxEnPass1SeedEntLRC32,
2996 #if OPTION_G34_SOCKET_SUPPORT
2997 extern PSC_TBL_ENTRY MaxFreqTblEntLRG34;
2998 #define PSC_TBL_OR_LRDIMM3_MAX_FREQ_G34 &MaxFreqTblEntLRG34,
2999 extern PSC_TBL_ENTRY DramTermTblEntLRG34;
3000 #define PSC_TBL_OR_LRDIMM3_DRAM_TERM_G34 &DramTermTblEntLRG34,
3001 extern PSC_TBL_ENTRY OdtPat1DTblEntLRG34;
3002 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_G34 &OdtPat1DTblEntLRG34,
3003 extern PSC_TBL_ENTRY OdtPat2DTblEntLRG34;
3004 #define PSC_TBL_OR_LRDIMM3_ODT_PAT____G34 &OdtPat2DTblEntLRG34,
3005 extern PSC_TBL_ENTRY OdtPat3DTblEntLRG34;
3006 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_G34 &OdtPat3DTblEntLRG34,
3007 extern PSC_TBL_ENTRY SAOTblEntLRG34;
3008 #define PSC_TBL_OR_LRDIMM3_SAO_G34 &SAOTblEntLRG34,
3009 extern PSC_TBL_ENTRY IBTTblEntLRG34;
3010 #define PSC_TBL_OR_LRDIMM3_IBT_G34 &IBTTblEntLRG34,
3011 extern PSC_TBL_ENTRY ClkDisMapEntLRG34;
3012 #define PSC_TBL_OR_LRDIMM3_CLK_DIS_G34 &ClkDisMapEntLRG34,
3013 extern PSC_TBL_ENTRY S__TblEntLRG34;
3014 #define PSC_TBL_OR_LRDIMM3_S___G34 &S__TblEntLRG34,
3015 extern PSC_TBL_ENTRY WLPass1SeedEntLRG34;
3016 #define PSC_TBL_OR_LRDIMM3_WL_SEED_G34 &WLPass1SeedEntLRG34,
3017 extern PSC_TBL_ENTRY HWRxEnPass1SeedEntLRG34;
3018 #define PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_G34 &HWRxEnPass1SeedEntLRG34,
3021 extern PSC_TBL_ENTRY MR0WrTblEntry;
3022 #define PSC_TBL_OR_MR0_WR &MR0WrTblEntry,
3023 extern PSC_TBL_ENTRY MR0CLTblEntry;
3024 #define PSC_TBL_OR_MR0_CL &MR0CLTblEntry,
3025 extern PSC_TBL_ENTRY OrDdr3CKETriEnt;
3026 #define PSC_TBL_OR_CKE_TRI &OrDdr3CKETriEnt,
3027 extern PSC_TBL_ENTRY OrDdr3ODTTri3DEnt;
3028 #define PSC_TBL_OR_ODT_TRI_3D &OrDdr3ODTTri3DEnt,
3029 extern PSC_TBL_ENTRY OrDdr3ODTTriEnt;
3030 #define PSC_TBL_OR_ODT_TRI &OrDdr3ODTTriEnt,
3031 extern PSC_TBL_ENTRY OrUDdr3CSTriEnt;
3032 #define PSC_TBL_OR_UDIMM3_CS_TRI &OrUDdr3CSTriEnt,
3033 extern PSC_TBL_ENTRY OrDdr3CSTriEnt;
3034 #define PSC_TBL_OR_CS_TRI &OrDdr3CSTriEnt,
3035 extern PSC_TBL_ENTRY OrLRDdr3ODTTri3DEnt;
3036 #define PSC_TBL_OR_LRDIMM3_ODT_TRI_3D &OrLRDdr3ODTTri3DEnt,
3037 extern PSC_TBL_ENTRY OrLRDdr3ODTTriEnt;
3038 #define PSC_TBL_OR_LRDIMM3_ODT_TRI &OrLRDdr3ODTTriEnt,
3040 #ifndef PSC_TBL_OR_UDIMM3_MAX_FREQ_AM3
3041 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_AM3
3043 #ifndef PSC_TBL_OR_UDIMM3_MAX_FREQ_C32
3044 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_C32
3046 #ifndef PSC_TBL_OR_UDIMM3_MAX_FREQ_G34
3047 #define PSC_TBL_OR_UDIMM3_MAX_FREQ_G34
3049 #ifndef PSC_TBL_OR_UDIMM3_DRAM_TERM_AM3
3050 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_AM3
3052 #ifndef PSC_TBL_OR_UDIMM3_DRAM_TERM_C32
3053 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_C32
3055 #ifndef PSC_TBL_OR_UDIMM3_DRAM_TERM_G34
3056 #define PSC_TBL_OR_UDIMM3_DRAM_TERM_G34
3058 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_1D_AM3
3059 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_AM3
3061 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_1D_C32
3062 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_C32
3064 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_1D_G34
3065 #define PSC_TBL_OR_UDIMM3_ODT_PAT_1D_G34
3067 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT____AM3
3068 #define PSC_TBL_OR_UDIMM3_ODT_PAT____AM3
3070 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT____C32
3071 #define PSC_TBL_OR_UDIMM3_ODT_PAT____C32
3073 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT____G34
3074 #define PSC_TBL_OR_UDIMM3_ODT_PAT____G34
3076 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_3D_AM3
3077 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_AM3
3079 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_3D_C32
3080 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_C32
3082 #ifndef PSC_TBL_OR_UDIMM3_ODT_PAT_3D_G34
3083 #define PSC_TBL_OR_UDIMM3_ODT_PAT_3D_G34
3085 #ifndef PSC_TBL_OR_UDIMM3_SAO_AM3
3086 #define PSC_TBL_OR_UDIMM3_SAO_AM3
3088 #ifndef PSC_TBL_OR_UDIMM3_SAO_C32
3089 #define PSC_TBL_OR_UDIMM3_SAO_C32
3091 #ifndef PSC_TBL_OR_UDIMM3_SAO_G34
3092 #define PSC_TBL_OR_UDIMM3_SAO_G34
3094 #ifndef PSC_TBL_OR_UDIMM3_S___AM3
3095 #define PSC_TBL_OR_UDIMM3_S___AM3
3097 #ifndef PSC_TBL_OR_UDIMM3_S___C32
3098 #define PSC_TBL_OR_UDIMM3_S___C32
3100 #ifndef PSC_TBL_OR_UDIMM3_S___G34
3101 #define PSC_TBL_OR_UDIMM3_S___G34
3103 #ifndef PSC_TBL_OR_UDIMM3_WL_SEED_AM3
3104 #define PSC_TBL_OR_UDIMM3_WL_SEED_AM3
3106 #ifndef PSC_TBL_OR_UDIMM3_WL_SEED_C32
3107 #define PSC_TBL_OR_UDIMM3_WL_SEED_C32
3109 #ifndef PSC_TBL_OR_UDIMM3_WL_SEED_G34
3110 #define PSC_TBL_OR_UDIMM3_WL_SEED_G34
3112 #ifndef PSC_TBL_OR_UDIMM3_HWRXEN_SEED_AM3
3113 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_AM3
3115 #ifndef PSC_TBL_OR_UDIMM3_HWRXEN_SEED_C32
3116 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_C32
3118 #ifndef PSC_TBL_OR_UDIMM3_HWRXEN_SEED_G34
3119 #define PSC_TBL_OR_UDIMM3_HWRXEN_SEED_G34
3121 #ifndef PSC_TBL_OR_RDIMM3_MAX_FREQ_AM3
3122 #define PSC_TBL_OR_RDIMM3_MAX_FREQ_AM3
3124 #ifndef PSC_TBL_OR_RDIMM3_MAX_FREQ_C32
3125 #define PSC_TBL_OR_RDIMM3_MAX_FREQ_C32
3127 #ifndef PSC_TBL_OR_RDIMM3_MAX_FREQ_G34
3128 #define PSC_TBL_OR_RDIMM3_MAX_FREQ_G34
3130 #ifndef PSC_TBL_OR_RDIMM3_DRAM_TERM_AM3
3131 #define PSC_TBL_OR_RDIMM3_DRAM_TERM_AM3
3133 #ifndef PSC_TBL_OR_RDIMM3_DRAM_TERM_C32
3134 #define PSC_TBL_OR_RDIMM3_DRAM_TERM_C32
3136 #ifndef PSC_TBL_OR_RDIMM3_DRAM_TERM_G34
3137 #define PSC_TBL_OR_RDIMM3_DRAM_TERM_G34
3139 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_1D_AM3
3140 #define PSC_TBL_OR_RDIMM3_ODT_PAT_1D_AM3
3142 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_1D_C32
3143 #define PSC_TBL_OR_RDIMM3_ODT_PAT_1D_C32
3145 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_1D_G34
3146 #define PSC_TBL_OR_RDIMM3_ODT_PAT_1D_G34
3148 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT____AM3
3149 #define PSC_TBL_OR_RDIMM3_ODT_PAT____AM3
3151 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT____C32
3152 #define PSC_TBL_OR_RDIMM3_ODT_PAT____C32
3154 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT____G34
3155 #define PSC_TBL_OR_RDIMM3_ODT_PAT____G34
3157 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_3D_AM3
3158 #define PSC_TBL_OR_RDIMM3_ODT_PAT_3D_AM3
3160 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_3D_C32
3161 #define PSC_TBL_OR_RDIMM3_ODT_PAT_3D_C32
3163 #ifndef PSC_TBL_OR_RDIMM3_ODT_PAT_3D_G34
3164 #define PSC_TBL_OR_RDIMM3_ODT_PAT_3D_G34
3166 #ifndef PSC_TBL_OR_RDIMM3_SAO_AM3
3167 #define PSC_TBL_OR_RDIMM3_SAO_AM3
3169 #ifndef PSC_TBL_OR_RDIMM3_SAO_C32
3170 #define PSC_TBL_OR_RDIMM3_SAO_C32
3172 #ifndef PSC_TBL_OR_RDIMM3_SAO_G34
3173 #define PSC_TBL_OR_RDIMM3_SAO_G34
3175 #ifndef PSC_TBL_OR_RDIMM3_S___AM3
3176 #define PSC_TBL_OR_RDIMM3_S___AM3
3178 #ifndef PSC_TBL_OR_RDIMM3_S___C32
3179 #define PSC_TBL_OR_RDIMM3_S___C32
3181 #ifndef PSC_TBL_OR_RDIMM3_S___G34
3182 #define PSC_TBL_OR_RDIMM3_S___G34
3184 #ifndef PSC_TBL_OR_RDIMM3_RC2IBT_AM3
3185 #define PSC_TBL_OR_RDIMM3_RC2IBT_AM3
3187 #ifndef PSC_TBL_OR_RDIMM3_RC2IBT_C32
3188 #define PSC_TBL_OR_RDIMM3_RC2IBT_C32
3190 #ifndef PSC_TBL_OR_RDIMM3_RC2IBT_G34
3191 #define PSC_TBL_OR_RDIMM3_RC2IBT_G34
3193 #ifndef PSC_TBL_OR_RDIMM3_RC10OPSPD_AM3
3194 #define PSC_TBL_OR_RDIMM3_RC10OPSPD_AM3
3196 #ifndef PSC_TBL_OR_RDIMM3_RC10OPSPD_C32
3197 #define PSC_TBL_OR_RDIMM3_RC10OPSPD_C32
3199 #ifndef PSC_TBL_OR_RDIMM3_RC10OPSPD_G34
3200 #define PSC_TBL_OR_RDIMM3_RC10OPSPD_G34
3202 #ifndef PSC_TBL_OR_RDIMM3_WL_SEED_AM3
3203 #define PSC_TBL_OR_RDIMM3_WL_SEED_AM3
3205 #ifndef PSC_TBL_OR_RDIMM3_WL_SEED_C32
3206 #define PSC_TBL_OR_RDIMM3_WL_SEED_C32
3208 #ifndef PSC_TBL_OR_RDIMM3_WL_SEED_G34
3209 #define PSC_TBL_OR_RDIMM3_WL_SEED_G34
3211 #ifndef PSC_TBL_OR_RDIMM3_HWRXEN_SEED_AM3
3212 #define PSC_TBL_OR_RDIMM3_HWRXEN_SEED_AM3
3214 #ifndef PSC_TBL_OR_RDIMM3_HWRXEN_SEED_C32
3215 #define PSC_TBL_OR_RDIMM3_HWRXEN_SEED_C32
3217 #ifndef PSC_TBL_OR_RDIMM3_HWRXEN_SEED_G34
3218 #define PSC_TBL_OR_RDIMM3_HWRXEN_SEED_G34
3220 #ifndef PSC_TBL_OR_LRDIMM3_MAX_FREQ_C32
3221 #define PSC_TBL_OR_LRDIMM3_MAX_FREQ_C32
3223 #ifndef PSC_TBL_OR_LRDIMM3_MAX_FREQ_G34
3224 #define PSC_TBL_OR_LRDIMM3_MAX_FREQ_G34
3226 #ifndef PSC_TBL_OR_LRDIMM3_DRAM_TERM_C32
3227 #define PSC_TBL_OR_LRDIMM3_DRAM_TERM_C32
3229 #ifndef PSC_TBL_OR_LRDIMM3_DRAM_TERM_G34
3230 #define PSC_TBL_OR_LRDIMM3_DRAM_TERM_G34
3232 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_C32
3233 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_C32
3235 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_G34
3236 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_G34
3238 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT____C32
3239 #define PSC_TBL_OR_LRDIMM3_ODT_PAT____C32
3241 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT____G34
3242 #define PSC_TBL_OR_LRDIMM3_ODT_PAT____G34
3244 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_C32
3245 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_C32
3247 #ifndef PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_G34
3248 #define PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_G34
3250 #ifndef PSC_TBL_OR_LRDIMM3_SAO_C32
3251 #define PSC_TBL_OR_LRDIMM3_SAO_C32
3253 #ifndef PSC_TBL_OR_LRDIMM3_SAO_G34
3254 #define PSC_TBL_OR_LRDIMM3_SAO_G34
3256 #ifndef PSC_TBL_OR_LRDIMM3_S___C32
3257 #define PSC_TBL_OR_LRDIMM3_S___C32
3259 #ifndef PSC_TBL_OR_LRDIMM3_S___G34
3260 #define PSC_TBL_OR_LRDIMM3_S___G34
3262 #ifndef PSC_TBL_OR_LRDIMM3_IBT_C32
3263 #define PSC_TBL_OR_LRDIMM3_IBT_C32
3265 #ifndef PSC_TBL_OR_LRDIMM3_IBT_G34
3266 #define PSC_TBL_OR_LRDIMM3_IBT_G34
3268 #ifndef PSC_TBL_OR_UDIMM3_CLK_DIS_AM3
3269 #define PSC_TBL_OR_UDIMM3_CLK_DIS_AM3
3271 #ifndef PSC_TBL_OR_UDIMM3_CLK_DIS_C32
3272 #define PSC_TBL_OR_UDIMM3_CLK_DIS_C32
3274 #ifndef PSC_TBL_OR_UDIMM3_CLK_DIS_3D_C32
3275 #define PSC_TBL_OR_UDIMM3_CLK_DIS_3D_C32
3277 #ifndef PSC_TBL_OR_UDIMM3_CLK_DIS_G34
3278 #define PSC_TBL_OR_UDIMM3_CLK_DIS_G34
3280 #ifndef PSC_TBL_OR_RDIMM3_CLK_DIS_C32
3281 #define PSC_TBL_OR_RDIMM3_CLK_DIS_C32
3283 #ifndef PSC_TBL_OR_RDIMM3_CLK_DIS_G34
3284 #define PSC_TBL_OR_RDIMM3_CLK_DIS_G34
3286 #ifndef PSC_TBL_OR_LRDIMM3_CLK_DIS_C32
3287 #define PSC_TBL_OR_LRDIMM3_CLK_DIS_C32
3289 #ifndef PSC_TBL_OR_LRDIMM3_CLK_DIS_G34
3290 #define PSC_TBL_OR_LRDIMM3_CLK_DIS_G34
3292 #ifndef PSC_TBL_OR_LRDIMM3_WL_SEED_AM3
3293 #define PSC_TBL_OR_LRDIMM3_WL_SEED_AM3
3295 #ifndef PSC_TBL_OR_LRDIMM3_WL_SEED_C32
3296 #define PSC_TBL_OR_LRDIMM3_WL_SEED_C32
3298 #ifndef PSC_TBL_OR_LRDIMM3_WL_SEED_G34
3299 #define PSC_TBL_OR_LRDIMM3_WL_SEED_G34
3301 #ifndef PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_AM3
3302 #define PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_AM3
3304 #ifndef PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_C32
3305 #define PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_C32
3307 #ifndef PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_G34
3308 #define PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_G34
3312 PSC_TBL_ENTRY* memPSCTblMaxFreqArrayOR[] = {
3313 PSC_TBL_OR_UDIMM3_MAX_FREQ_AM3
3314 PSC_TBL_OR_UDIMM3_MAX_FREQ_C32
3315 PSC_TBL_OR_UDIMM3_MAX_FREQ_G34
3316 PSC_TBL_OR_RDIMM3_MAX_FREQ_AM3
3317 PSC_TBL_OR_RDIMM3_MAX_FREQ_C32
3318 PSC_TBL_OR_RDIMM3_MAX_FREQ_G34
3319 PSC_TBL_OR_LRDIMM3_MAX_FREQ_C32
3320 PSC_TBL_OR_LRDIMM3_MAX_FREQ_G34
3324 PSC_TBL_ENTRY* memPSCTblDramTermArrayOR[] = {
3325 PSC_TBL_OR_UDIMM3_DRAM_TERM_AM3
3326 PSC_TBL_OR_UDIMM3_DRAM_TERM_C32
3327 PSC_TBL_OR_UDIMM3_DRAM_TERM_G34
3328 PSC_TBL_OR_RDIMM3_DRAM_TERM_AM3
3329 PSC_TBL_OR_RDIMM3_DRAM_TERM_C32
3330 PSC_TBL_OR_RDIMM3_DRAM_TERM_G34
3331 PSC_TBL_OR_LRDIMM3_DRAM_TERM_C32
3332 PSC_TBL_OR_LRDIMM3_DRAM_TERM_G34
3336 PSC_TBL_ENTRY* memPSCTblODTPatArrayOR[] = {
3337 PSC_TBL_OR_UDIMM3_ODT_PAT_1D_AM3
3338 PSC_TBL_OR_UDIMM3_ODT_PAT____AM3
3339 PSC_TBL_OR_UDIMM3_ODT_PAT_3D_AM3
3340 PSC_TBL_OR_RDIMM3_ODT_PAT_1D_AM3
3341 PSC_TBL_OR_RDIMM3_ODT_PAT____AM3
3342 PSC_TBL_OR_RDIMM3_ODT_PAT_3D_AM3
3343 PSC_TBL_OR_UDIMM3_ODT_PAT_1D_C32
3344 PSC_TBL_OR_UDIMM3_ODT_PAT____C32
3345 PSC_TBL_OR_UDIMM3_ODT_PAT_3D_C32
3346 PSC_TBL_OR_RDIMM3_ODT_PAT_1D_C32
3347 PSC_TBL_OR_RDIMM3_ODT_PAT____C32
3348 PSC_TBL_OR_RDIMM3_ODT_PAT_3D_C32
3349 PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_C32
3350 PSC_TBL_OR_LRDIMM3_ODT_PAT____C32
3351 PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_C32
3352 PSC_TBL_OR_UDIMM3_ODT_PAT_1D_G34
3353 PSC_TBL_OR_UDIMM3_ODT_PAT____G34
3354 PSC_TBL_OR_UDIMM3_ODT_PAT_3D_G34
3355 PSC_TBL_OR_RDIMM3_ODT_PAT_1D_G34
3356 PSC_TBL_OR_RDIMM3_ODT_PAT____G34
3357 PSC_TBL_OR_RDIMM3_ODT_PAT_3D_G34
3358 PSC_TBL_OR_LRDIMM3_ODT_PAT_1D_G34
3359 PSC_TBL_OR_LRDIMM3_ODT_PAT____G34
3360 PSC_TBL_OR_LRDIMM3_ODT_PAT_3D_G34
3364 PSC_TBL_ENTRY* memPSCTblSAOArrayOR[] = {
3365 PSC_TBL_OR_UDIMM3_SAO_AM3
3366 PSC_TBL_OR_UDIMM3_SAO_C32
3367 PSC_TBL_OR_UDIMM3_SAO_G34
3368 PSC_TBL_OR_RDIMM3_SAO_AM3
3369 PSC_TBL_OR_RDIMM3_SAO_C32
3370 PSC_TBL_OR_RDIMM3_SAO_G34
3371 PSC_TBL_OR_LRDIMM3_SAO_C32
3372 PSC_TBL_OR_LRDIMM3_SAO_G34
3376 PSC_TBL_ENTRY* memPSCTblS__ArrayOR[] = {
3377 PSC_TBL_OR_UDIMM3_S___AM3
3378 PSC_TBL_OR_UDIMM3_S___C32
3379 PSC_TBL_OR_UDIMM3_S___G34
3380 PSC_TBL_OR_RDIMM3_S___AM3
3381 PSC_TBL_OR_RDIMM3_S___C32
3382 PSC_TBL_OR_RDIMM3_S___G34
3383 PSC_TBL_OR_LRDIMM3_S___C32
3384 PSC_TBL_OR_LRDIMM3_S___G34
3388 PSC_TBL_ENTRY* memPSCTblMR0WRArrayOR[] = {
3393 PSC_TBL_ENTRY* memPSCTblMR0CLArrayOR[] = {
3398 PSC_TBL_ENTRY* memPSCTblRC2IBTArrayOR[] = {
3399 PSC_TBL_OR_RDIMM3_RC2IBT_AM3
3400 PSC_TBL_OR_RDIMM3_RC2IBT_C32
3401 PSC_TBL_OR_RDIMM3_RC2IBT_G34
3405 PSC_TBL_ENTRY* memPSCTblRC10OPSPDArrayOR[] = {
3406 PSC_TBL_OR_RDIMM3_RC10OPSPD_AM3
3407 PSC_TBL_OR_RDIMM3_RC10OPSPD_C32
3408 PSC_TBL_OR_RDIMM3_RC10OPSPD_G34
3412 PSC_TBL_ENTRY* memPSCTblLRIBTArrayOR[] = {
3413 PSC_TBL_OR_LRDIMM3_IBT_C32
3414 PSC_TBL_OR_LRDIMM3_IBT_G34
3418 PSC_TBL_ENTRY* memPSCTblGenArrayOR[] = {
3419 PSC_TBL_OR_UDIMM3_CLK_DIS_AM3
3420 PSC_TBL_OR_UDIMM3_CLK_DIS_C32
3421 PSC_TBL_OR_UDIMM3_CLK_DIS_3D_C32
3422 PSC_TBL_OR_UDIMM3_CLK_DIS_G34
3423 PSC_TBL_OR_RDIMM3_CLK_DIS_C32
3424 PSC_TBL_OR_RDIMM3_CLK_DIS_G34
3425 PSC_TBL_OR_LRDIMM3_CLK_DIS_C32
3426 PSC_TBL_OR_LRDIMM3_CLK_DIS_G34
3428 PSC_TBL_OR_ODT_TRI_3D
3430 PSC_TBL_OR_LRDIMM3_ODT_TRI_3D
3431 PSC_TBL_OR_LRDIMM3_ODT_TRI
3432 PSC_TBL_OR_UDIMM3_CS_TRI
3437 PSC_TBL_ENTRY* memPSCTblWLSeedArrayOR[] = {
3438 PSC_TBL_OR_UDIMM3_WL_SEED_AM3
3439 PSC_TBL_OR_UDIMM3_WL_SEED_C32
3440 PSC_TBL_OR_UDIMM3_WL_SEED_G34
3441 PSC_TBL_OR_RDIMM3_WL_SEED_AM3
3442 PSC_TBL_OR_RDIMM3_WL_SEED_C32
3443 PSC_TBL_OR_RDIMM3_WL_SEED_G34
3444 PSC_TBL_OR_LRDIMM3_WL_SEED_AM3
3445 PSC_TBL_OR_LRDIMM3_WL_SEED_C32
3446 PSC_TBL_OR_LRDIMM3_WL_SEED_G34
3450 PSC_TBL_ENTRY* memPSCTblHWRxEnSeedArrayOR[] = {
3451 PSC_TBL_OR_UDIMM3_HWRXEN_SEED_AM3
3452 PSC_TBL_OR_UDIMM3_HWRXEN_SEED_C32
3453 PSC_TBL_OR_UDIMM3_HWRXEN_SEED_G34
3454 PSC_TBL_OR_RDIMM3_HWRXEN_SEED_AM3
3455 PSC_TBL_OR_RDIMM3_HWRXEN_SEED_C32
3456 PSC_TBL_OR_RDIMM3_HWRXEN_SEED_G34
3457 PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_AM3
3458 PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_C32
3459 PSC_TBL_OR_LRDIMM3_HWRXEN_SEED_G34
3463 MEM_PSC_TABLE_BLOCK memPSCTblBlockOr = {
3464 (PSC_TBL_ENTRY **)&memPSCTblMaxFreqArrayOR,
3465 (PSC_TBL_ENTRY **)&memPSCTblDramTermArrayOR,
3466 (PSC_TBL_ENTRY **)&memPSCTblODTPatArrayOR,
3467 (PSC_TBL_ENTRY **)&memPSCTblSAOArrayOR,
3468 (PSC_TBL_ENTRY **)&memPSCTblMR0WRArrayOR,
3469 (PSC_TBL_ENTRY **)&memPSCTblMR0CLArrayOR,
3470 (PSC_TBL_ENTRY **)&memPSCTblRC2IBTArrayOR,
3471 (PSC_TBL_ENTRY **)&memPSCTblRC10OPSPDArrayOR,
3472 (PSC_TBL_ENTRY **)&memPSCTblLRIBTArrayOR,
3475 (PSC_TBL_ENTRY **)&memPSCTblGenArrayOR,
3476 (PSC_TBL_ENTRY **)&memPSCTblS__ArrayOR,
3477 (PSC_TBL_ENTRY **)&memPSCTblWLSeedArrayOR,
3478 (PSC_TBL_ENTRY **)&memPSCTblHWRxEnSeedArrayOR
3481 extern MEM_PSC_FLOW MemPGetMaxFreqSupported;
3482 #define PSC_FLOW_OR_MAX_FREQ MemPGetMaxFreqSupported
3483 extern MEM_PSC_FLOW MemPGetRttNomWr;
3484 #define PSC_FLOW_OR_DRAM_TERM MemPGetRttNomWr
3485 extern MEM_PSC_FLOW MemPGetODTPattern;
3486 #define PSC_FLOW_OR_ODT_PATTERN MemPGetODTPattern
3487 extern MEM_PSC_FLOW MemPGetSAO;
3488 #define PSC_FLOW_OR_SAO MemPGetSAO
3489 extern MEM_PSC_FLOW MemPGetMR0WrCL;
3490 #define PSC_FLOW_OR_MR0_WRCL MemPGetMR0WrCL
3491 extern MEM_PSC_FLOW MemPGetS__;
3492 #define PSC_FLOW_OR_S__ MemPGetS__
3493 extern MEM_PSC_FLOW MemPGetTrainingSeeds;
3494 #define PSC_FLOW_OR_SEED MemPGetTrainingSeeds
3496 extern MEM_PSC_FLOW MemPGetRC2IBT;
3497 #define PSC_FLOW_OR_RC2_IBT MemPGetRC2IBT
3498 extern MEM_PSC_FLOW MemPGetRC10OpSpd;
3499 #define PSC_FLOW_OR_RC10_OPSPD MemPGetRC10OpSpd
3502 extern MEM_PSC_FLOW MemPGetLRIBT;
3503 #define PSC_FLOW_OR_LR_IBT MemPGetLRIBT
3504 extern MEM_PSC_FLOW MemPGetLRNPR;
3505 #define PSC_FLOW_OR_LR_NPR MemPGetLRNPR
3506 extern MEM_PSC_FLOW MemPGetLRNLR;
3507 #define PSC_FLOW_OR_LR_NLR MemPGetLRNLR
3509 #ifndef PSC_FLOW_OR_MAX_FREQ
3510 #define PSC_FLOW_OR_MAX_FREQ MEM_PSC_FLOW_DEFTRUE
3512 #ifndef PSC_FLOW_OR_DRAM_TERM
3513 #define PSC_FLOW_OR_DRAM_TERM MEM_PSC_FLOW_DEFTRUE
3515 #ifndef PSC_FLOW_OR_ODT_PATTERN
3516 #define PSC_FLOW_OR_ODT_PATTERN MEM_PSC_FLOW_DEFTRUE
3518 #ifndef PSC_FLOW_OR_SAO
3519 #define PSC_FLOW_OR_SAO MEM_PSC_FLOW_DEFTRUE
3521 #ifndef PSC_FLOW_OR_MR0_WRCL
3522 #define PSC_FLOW_OR_MR0_WRCL MEM_PSC_FLOW_DEFTRUE
3524 #ifndef PSC_FLOW_OR_RC2_IBT
3525 #define PSC_FLOW_OR_RC2_IBT MEM_PSC_FLOW_DEFTRUE
3527 #ifndef PSC_FLOW_OR_RC10_OPSPD
3528 #define PSC_FLOW_OR_RC10_OPSPD MEM_PSC_FLOW_DEFTRUE
3530 #ifndef PSC_FLOW_OR_LR_IBT
3531 #define PSC_FLOW_OR_LR_IBT MEM_PSC_FLOW_DEFTRUE
3533 #ifndef PSC_FLOW_OR_LR_NPR
3534 #define PSC_FLOW_OR_LR_NPR MEM_PSC_FLOW_DEFTRUE
3536 #ifndef PSC_FLOW_OR_LR_NLR
3537 #define PSC_FLOW_OR_LR_NLR MEM_PSC_FLOW_DEFTRUE
3539 #ifndef PSC_FLOW_OR_S__
3540 #define PSC_FLOW_OR_S__ MEM_PSC_FLOW_DEFTRUE
3542 #ifndef PSC_FLOW_OR_SEED
3543 #define PSC_FLOW_OR_SEED MEM_PSC_FLOW_DEFTRUE
3546 MEM_PSC_FLOW_BLOCK memPlatSpecFlowOR = {
3548 PSC_FLOW_OR_MAX_FREQ,
3549 PSC_FLOW_OR_DRAM_TERM,
3550 PSC_FLOW_OR_ODT_PATTERN,
3552 PSC_FLOW_OR_MR0_WRCL,
3553 PSC_FLOW_OR_RC2_IBT,
3554 PSC_FLOW_OR_RC10_OPSPD,
3561 #define MEM_PSC_FLOW_BLOCK_OR &memPlatSpecFlowOR,
3563 #define MEM_PSC_FLOW_BLOCK_OR
3566 MEM_PSC_FLOW_BLOCK* memPlatSpecFlowArray[] = {
3567 MEM_PSC_FLOW_BLOCK_OR
3568 MEM_PSC_FLOW_BLOCK_END
3571 /*---------------------------------------------------------------------------------------------------
3575 *---------------------------------------------------------------------------------------------------
3577 #if (OPTION_LRDIMMS == TRUE)
3578 #if ((OPTION_MEMCTLR_OR == TRUE))
3579 #define MEM_TECH_FEATURE_LRDIMM_INIT &MemTLrdimmConstructor3
3580 #else //#if ((OPTION_MEMCTLR_OR == FALSE))
3581 #define MEM_TECH_FEATURE_LRDIMM_INIT MemTFeatDef
3583 #else //#if (OPTION_LRDIMMS == FALSE)
3584 #define MEM_TECH_FEATURE_LRDIMM_INIT MemTFeatDef
3586 MEM_TECH_LRDIMM memLrdimmSupported = {
3587 MEM_TECH_LRDIMM_STRUCT_VERSION,
3588 MEM_TECH_FEATURE_LRDIMM_INIT
3591 /*---------------------------------------------------------------------------------------------------
3595 *---------------------------------------------------------------------------------------------------
3597 MEM_FLOW_CFG* memFlowControlInstalled[] = {
3600 /*---------------------------------------------------------------------------------------------------
3601 * NB TRAINING FLOW CONTROL
3604 *---------------------------------------------------------------------------------------------------
3606 OPTION_MEM_FEATURE_NB* memNTrainFlowControl[] = { // Training flow control
3609 /*---------------------------------------------------------------------------------------------------
3610 * DEFAULT TECHNOLOGY BLOCK
3613 *---------------------------------------------------------------------------------------------------
3615 MEM_TECH_CONSTRUCTOR* memTechInstalled[] = { // Types of technology installed
3619 /*---------------------------------------------------------------------------------------------------
3620 * DEFAULT TECHNOLOGY MAP
3623 *---------------------------------------------------------------------------------------------------
3625 UINT8 MemoryTechnologyMap[MAX_SOCKETS_SUPPORTED] = {0, 0, 0, 0, 0, 0, 0, 0};
3627 /*---------------------------------------------------------------------------------------------------
3628 * DEFAULT MAIN FEATURE BLOCK
3629 *---------------------------------------------------------------------------------------------------
3631 MEM_FEAT_BLOCK_MAIN MemFeatMain = {
3635 /*---------------------------------------------------------------------------------------------------
3636 * DEFAULT NORTHBRIDGE SUPPORT LIST
3639 *---------------------------------------------------------------------------------------------------
3641 #if (OPTION_MEMCTLR_DR == TRUE)
3642 #undef MEM_NB_SUPPORT_DR
3643 #define MEM_NB_SUPPORT_DR { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DR, MEM_IDENDIMM_DR },
3645 #if (OPTION_MEMCTLR_RB == TRUE)
3646 #undef MEM_NB_SUPPORT_RB
3647 #define MEM_NB_SUPPORT_RB { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_RB, MEM_IDENDIMM_RB },
3649 #if (OPTION_MEMCTLR_DA == TRUE)
3650 #undef MEM_NB_SUPPORT_DA
3651 #define MEM_NB_SUPPORT_DA { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_DA, MEM_IDENDIMM_DA },
3653 #if (OPTION_MEMCTLR_PH == TRUE)
3654 #undef MEM_NB_SUPPORT_PH
3655 #define MEM_NB_SUPPORT_PH { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_PH, MEM_IDENDIMM_PH },
3657 #if (OPTION_MEMCTLR_HY == TRUE)
3658 #undef MEM_NB_SUPPORT_HY
3659 #define MEM_NB_SUPPORT_HY { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_HY, MEM_IDENDIMM_HY },
3661 #if (OPTION_MEMCTLR_C32 == TRUE)
3662 #undef MEM_NB_SUPPORT_C32
3663 #define MEM_NB_SUPPORT_C32 { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_C32, MEM_IDENDIMM_C32 },
3665 #if (OPTION_MEMCTLR_OR == TRUE)
3666 #undef MEM_NB_SUPPORT_OR
3667 #define MEM_NB_SUPPORT_OR { MEM_NB_SUPPORT_STRUCT_VERSION, NULL, NULL, NULL, MEM_FEATURE_S3_RESUME_CONSTRUCTOR_OR, MEM_IDENDIMM_OR },
3669 /*---------------------------------------------------------------------------------------------------
3670 * DEFAULT Technology Training
3673 *---------------------------------------------------------------------------------------------------
3676 MEM_TECH_FEAT_BLOCK memTechTrainingFeatDDR2 = {
3679 MEM_FEAT_TRAIN_SEQ memTrainSequenceDDR2[] = {
3684 MEM_TECH_FEAT_BLOCK memTechTrainingFeatDDR3 = {
3687 MEM_FEAT_TRAIN_SEQ memTrainSequenceDDR3[] = {
3691 /*---------------------------------------------------------------------------------------------------
3692 * DEFAULT Platform Specific list
3695 *---------------------------------------------------------------------------------------------------
3697 #if (OPTION_MEMCTLR_DR == TRUE)
3698 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledDr[MAX_FF_TYPES] = {
3702 #if (OPTION_MEMCTLR_RB == TRUE)
3703 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledRb[MAX_FF_TYPES] = {
3707 #if (OPTION_MEMCTLR_DA == TRUE)
3708 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledDA[MAX_FF_TYPES] = {
3712 #if (OPTION_MEMCTLR_Ni == TRUE)
3713 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledNi[MAX_FF_TYPES] = {
3717 #if (OPTION_MEMCTLR_PH == TRUE)
3718 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledPh[MAX_FF_TYPES] = {
3722 #if (OPTION_MEMCTLR_HY == TRUE)
3723 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledHy[MAX_FF_TYPES] = {
3727 #if (OPTION_MEMCTLR_OR == TRUE)
3728 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledOr[MAX_FF_TYPES] = {
3732 #if (OPTION_MEMCTLR_C32 == TRUE)
3733 MEM_PLAT_SPEC_CFG* memPlatSpecFFInstalledC32[MAX_FF_TYPES] = {
3737 /*----------------------------------------------------------------------
3738 * DEFAULT PSCFG DEFINITIONS
3740 *----------------------------------------------------------------------
3742 MEM_PLATFORM_CFG* memPlatformTypeInstalled[] = {
3746 /*----------------------------------------------------------------------
3747 * EXTRACTABLE PLATFORM SPECIFIC CONFIGURATION
3749 *----------------------------------------------------------------------
3751 MEM_PSC_FLOW_BLOCK* memPlatSpecFlowArray[] = {
3755 MEM_TECH_LRDIMM memLrdimmSupported = {
3756 MEM_TECH_LRDIMM_STRUCT_VERSION,
3761 /*---------------------------------------------------------------------------------------------------
3762 * NORTHBRIDGE SUPPORT LIST
3765 *---------------------------------------------------------------------------------------------------
3767 MEM_NB_SUPPORT memNBInstalled[] = {
3778 #endif // _OPTION_MEMORY_INSTALL_H_