m5a99x-evo: grml, strange romstage ld warning... dunno why :/
[coreboot.git] / src / vendorcode / amd / agesa / f12 / Include / OptionIdsInstall.h
1 /* $NoKeywords:$ */
2 /**
3  * @file
4  *
5  * IDS Option Install File
6  *
7  * This file generates the defaults tables for family 10h model 5 processors.
8  *
9  * @xrefitem bom "File Content Label" "Release Content"
10  * @e project:      AGESA
11  * @e sub-project:  Core
12  * @e \$Revision: 47940 $   @e \$Date: 2011-03-02 14:25:35 +0800 (Wed, 02 Mar 2011) $
13  */
14 /*****************************************************************************
15  *
16  * Copyright (c) 2011, Advanced Micro Devices, Inc.
17  * All rights reserved.
18  * 
19  * Redistribution and use in source and binary forms, with or without
20  * modification, are permitted provided that the following conditions are met:
21  *     * Redistributions of source code must retain the above copyright
22  *       notice, this list of conditions and the following disclaimer.
23  *     * Redistributions in binary form must reproduce the above copyright
24  *       notice, this list of conditions and the following disclaimer in the
25  *       documentation and/or other materials provided with the distribution.
26  *     * Neither the name of Advanced Micro Devices, Inc. nor the names of 
27  *       its contributors may be used to endorse or promote products derived 
28  *       from this software without specific prior written permission.
29  * 
30  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
31  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
32  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33  * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
34  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
35  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
37  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
39  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  ***************************************************************************/
42 #ifndef _OPTION_IDS_INSTALL_H_
43 #define _OPTION_IDS_INSTALL_H_
44 #include "Ids.h"
45 #include "IdsHt.h"
46 #include "IdsLib.h"
47 #ifdef __IDS_EXTENDED__
48   #include OPTION_IDS_EXT_INSTALL_FILE
49 #endif
50
51 #define IDS_LATE_RUN_AP_TASK
52
53 #define M_HTIDS_PORT_OVERRIDE_HOOK (PF_HtIdsGetPortOverride)CommonVoid
54 #if (IDSOPT_IDS_ENABLED == TRUE)
55   #if (IDSOPT_CONTROL_ENABLED == TRUE)
56     // Check for all families which include HT Features.
57     #if (OPTION_FAMILY10H == TRUE) && (AGESA_ENTRY_INIT_POST == TRUE)
58       #undef M_HTIDS_PORT_OVERRIDE_HOOK
59       #define M_HTIDS_PORT_OVERRIDE_HOOK HtIdsGetPortOverride
60     #endif
61   #endif
62 #endif // OPTION_IDS_LEVEL
63 CONST PF_HtIdsGetPortOverride ROMDATA pf_HtIdsGetPortOverride = M_HTIDS_PORT_OVERRIDE_HOOK;
64
65 #if (IDSOPT_IDS_ENABLED == TRUE)
66   #if (AGESA_ENTRY_INIT_LATE == TRUE)
67     #undef IDS_LATE_RUN_AP_TASK
68     #define IDS_LATE_RUN_AP_TASK
69   #endif
70 #endif // OPTION_IDS_LEVEL
71
72 #if (IDSOPT_TRACING_ENABLED == TRUE)
73   #if (AGESA_ENTRY_INIT_POST == TRUE)
74     #include <mu.h>
75     CONST SCRIPT_FUNCTION ROMDATA ScriptFuncList[] = {
76       { (UINT32) (UINT64) MemUWriteCachelines, "WriteCl(PhyAddrLo,BufferAddr,ClCnt)"},
77       { (UINT32) (UINT64) MemUReadCachelines,  "ReadCl(BufferAddr,PhyAddrLo,ClCnt)"},
78       { (UINT32) (UINT64) MemUFlushPattern,    "FlushCl(PhyAddrLo,ClCnt)"}
79     };
80   #elif (AGESA_ENTRY_INIT_RECOVERY == TRUE)
81     #include <mru.h>
82     CONST SCRIPT_FUNCTION ROMDATA ScriptFuncList[] = {
83       { (UINT32) (UINT64) MemRecUWrite1CL, "Write1Cl(PhyAddrLo,BufferAddr)"},
84       { (UINT32) (UINT64) MemRecURead1CL,  "Read1Cl(BufferAddr,PhyAddrLo)"},
85       { (UINT32) (UINT64) MemRecUFlushPattern,    "Flush1Cl(PhyAddrLo)"}
86     };
87   #else
88     CONST SCRIPT_FUNCTION ROMDATA ScriptFuncList[] = {
89       { (UINT32) (UINT64) CommonReturnFalse, "DefRet()"},
90       { (UINT32) (UINT64) CommonReturnFalse,  "DefRet()"},
91       { (UINT32) (UINT64) CommonReturnFalse,    "DefRet()"}
92     };
93   #endif
94 #endif
95
96
97 ///Ids Feat Options
98 #if (IDSOPT_IDS_ENABLED == TRUE)
99   #if (IDSOPT_CONTROL_ENABLED == TRUE)
100
101     #ifndef OPTION_IDS_EXTEND_FEATS
102       #define OPTION_IDS_EXTEND_FEATS
103     #endif
104
105     #define OPTION_IDS_FEAT_ECCCTRL\
106                 OPTION_IDS_FEAT_ECCCTRL_F10 \
107                 OPTION_IDS_FEAT_ECCCTRL_F12 \
108                 OPTION_IDS_FEAT_ECCCTRL_F15_OR
109
110     #define OPTION_IDS_FEAT_GNB_PLATFORMCFG\
111                 OPTION_IDS_FEAT_GNB_PLATFORMCFGF12 \
112                 OPTION_IDS_FEAT_GNB_PLATFORMCFGF14
113
114     #define OPTION_IDS_FEAT_CPB_CTRL\
115                 OPTION_IDS_FEAT_CPB_CTRL_F12
116
117     #define OPTION_IDS_FEAT_HTC_CTRL\
118                 OPTION_IDS_FEAT_HTC_CTRL_F15
119
120     #define OPTION_IDS_FEAT_MEMORY_MAPPING\
121                 OPTION_IDS_FEAT_MEMORY_MAPPING_F12 \
122                 OPTION_IDS_FEAT_MEMORY_MAPPING_F15_OR 
123     #define OPTION_IDS_FEAT_HT_ASSIST\
124                 OPTION_IDS_FEAT_HT_ASSIST_F10HY \
125                 OPTION_IDS_FEAT_HT_ASSIST_F15_OR
126
127     #define OPTION_IDS_FEAT_ECCSYMBOLSIZE\
128                 OPTION_IDS_FEAT_ECCSYMBOLSIZE_F10 \
129                 OPTION_IDS_FEAT_ECCSYMBOLSIZE_F15_OR
130
131 /*----------------------------------------------------------------------------
132  *                        Family 10 feat blocks
133  *
134  *----------------------------------------------------------------------------
135  */
136     #define OPTION_IDS_FEAT_ECCSYMBOLSIZE_F10
137     #define OPTION_IDS_FEAT_ECCCTRL_F10
138     #ifdef OPTION_FAMILY10H
139       #if OPTION_FAMILY10H == TRUE
140 //Ecc symbol size
141         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatEccSymbolSizeBlockF10;
142         #undef OPTION_IDS_FEAT_ECCSYMBOLSIZE_F10
143         #define OPTION_IDS_FEAT_ECCSYMBOLSIZE_F10 &IdsFeatEccSymbolSizeBlockF10,
144
145 //ECC scrub control
146         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatEccCtrlBlockF10;
147         #undef OPTION_IDS_FEAT_ECCCTRL_F10
148         #define OPTION_IDS_FEAT_ECCCTRL_F10 &IdsFeatEccCtrlBlockF10,
149       #endif
150     #endif
151
152     //Misc Features
153     #define OPTION_IDS_FEAT_HT_ASSIST_F10HY
154     #ifdef OPTION_FAMILY10H_HY
155       #if OPTION_FAMILY10H_HY == TRUE
156         #undef OPTION_IDS_FEAT_HT_ASSIST_F10HY
157         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHtAssistBlockPlatformCfgF10Hy;
158
159         #define OPTION_IDS_FEAT_HT_ASSIST_F10HY \
160                     &IdsFeatHtAssistBlockPlatformCfgF10Hy,
161       #endif
162     #endif
163 /*----------------------------------------------------------------------------
164  *                        Family 12 feat blocks
165  *
166  *----------------------------------------------------------------------------
167  */
168     #define OPTION_IDS_FEAT_GNB_PLATFORMCFGF12
169     #define OPTION_IDS_FEAT_ECCCTRL_F12
170     #define OPTION_IDS_FEAT_CPB_CTRL_F12
171     #ifdef OPTION_FAMILY12H
172       #if OPTION_FAMILY12H == TRUE
173         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatGnbPlatformCfgBlockF12;
174         #undef OPTION_IDS_FEAT_GNB_PLATFORMCFGF12
175         #define OPTION_IDS_FEAT_GNB_PLATFORMCFGF12 &IdsFeatGnbPlatformCfgBlockF12,
176
177         //ECC scrub control
178         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatEccCtrlBlockF12;
179         #undef OPTION_IDS_FEAT_ECCCTRL_F12
180         #define OPTION_IDS_FEAT_ECCCTRL_F12 &IdsFeatEccCtrlBlockF12,
181
182         #undef OPTION_IDS_FEAT_CPB_CTRL_F12
183         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatCpbCtrlBlockF12;
184         #define OPTION_IDS_FEAT_CPB_CTRL_F12 &IdsFeatCpbCtrlBlockF12,
185
186       #endif
187     #endif
188
189 /*----------------------------------------------------------------------------
190  *                        Family 14 feat blocks
191  *
192  *----------------------------------------------------------------------------
193  */
194     #define OPTION_IDS_FEAT_GNB_PLATFORMCFGF14
195     #ifdef OPTION_FAMILY14H
196       #if OPTION_FAMILY14H == TRUE
197         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatGnbPlatformCfgBlockF14;
198         #undef OPTION_IDS_FEAT_GNB_PLATFORMCFGF14
199         #define OPTION_IDS_FEAT_GNB_PLATFORMCFGF14 &IdsFeatGnbPlatformCfgBlockF14,
200       #endif
201     #endif
202
203 /*----------------------------------------------------------------------------
204  *                        Family 15 OR feat blocks
205  *
206  *----------------------------------------------------------------------------
207  */
208     #define OPTION_IDS_FEAT_HTC_CTRL_F15_OR
209     #define OPTION_IDS_FEAT_MEMORY_MAPPING_F15_OR
210     #define OPTION_IDS_FEAT_HT_ASSIST_F15_OR
211     #define OPTION_IDS_FEAT_ECCCTRL_F15_OR
212     #define OPTION_IDS_FEAT_ECCSYMBOLSIZE_F15_OR
213     #ifdef OPTION_FAMILY15H_OR
214       #if OPTION_FAMILY15H_OR == TRUE
215         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHtcControlBlockF15Or;
216         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHtcControlLateBlockF15Or;
217         #undef OPTION_IDS_FEAT_HTC_CTRL_F15_OR
218         #define OPTION_IDS_FEAT_HTC_CTRL_F15_OR\
219                     &IdsFeatHtcControlBlockF15Or,\
220                     &IdsFeatHtcControlLateBlockF15Or,
221
222         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatMemoryMappingPostBeforeBlockF15Or;
223         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatMemoryMappingChIntlvBlockF15Or;
224         #undef OPTION_IDS_FEAT_MEMORY_MAPPING_F15_OR
225         #define OPTION_IDS_FEAT_MEMORY_MAPPING_F15_OR\
226         &IdsFeatMemoryMappingPostBeforeBlockF15Or,\
227         &IdsFeatMemoryMappingChIntlvBlockF15Or,
228
229         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHtAssistBlockPlatformCfgF15Or;
230         #undef OPTION_IDS_FEAT_HT_ASSIST_F15_OR
231         #define OPTION_IDS_FEAT_HT_ASSIST_F15_OR\
232         &IdsFeatHtAssistBlockPlatformCfgF15Or,
233
234         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatEccCtrlBlockF15Or;
235         #undef OPTION_IDS_FEAT_ECCCTRL_F15_OR
236         #define OPTION_IDS_FEAT_ECCCTRL_F15_OR &IdsFeatEccCtrlBlockF15Or,
237
238         extern CONST IDS_FEAT_STRUCT ROMDATA IdsFeatEccSymbolSizeBlockF15Or;
239         #undef OPTION_IDS_FEAT_ECCSYMBOLSIZE_F15_OR
240         #define OPTION_IDS_FEAT_ECCSYMBOLSIZE_F15_OR &IdsFeatEccSymbolSizeBlockF15Or,
241
242       #endif
243     #endif
244
245
246
247     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatUcodeBlock =
248     {
249       IDS_FEAT_UCODE_UPDATE,
250       IDS_ALL_CORES,
251       IDS_UCODE,
252       IDS_FAMILY_ALL,
253       IdsSubUCode
254     };
255
256     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatPowerPolicyBlock =
257     {
258       IDS_FEAT_POWER_POLICY,
259       IDS_ALL_CORES,
260       IDS_PLATFORMCFG_OVERRIDE,
261       IDS_FAMILY_ALL,
262       IdsSubPowerPolicyOverride
263     };
264
265     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatTargetPstateBlock =
266     {
267       IDS_FEAT_TARGET_PSTATE,
268       IDS_BSP_ONLY,
269       IDS_INIT_LATE_AFTER,
270       IDS_FAMILY_ALL,
271       IdsSubTargetPstate
272     };
273
274     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatPostPstateBlock =
275     {
276       IDS_FEAT_POSTPSTATE,
277       IDS_ALL_CORES,
278       IDS_CPU_Early_Override,
279       IDS_FAMILY_ALL,
280       IdsSubPostPState
281     };
282
283     //Dram controller Features
284     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctAllMemClkBlock =
285     {
286       IDS_FEAT_DCT_ALLMEMCLK,
287       IDS_BSP_ONLY,
288       IDS_ALL_MEMORY_CLOCK,
289       IDS_FAMILY_ALL,
290       IdsSubAllMemClkEn
291     };
292
293     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctGangModeBlock =
294     {
295       IDS_FEAT_DCT_GANGMODE,
296       IDS_BSP_ONLY,
297       IDS_GANGING_MODE,
298       IDS_FAMILY_ALL,
299       IdsSubGangingMode
300     };
301
302     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctBurstLengthBlock =
303     {
304       IDS_FEAT_DCT_BURSTLENGTH,
305       IDS_BSP_ONLY,
306       IDS_BURST_LENGTH32,
307       AMD_FAMILY_10,
308       IdsSubBurstLength32
309     };
310
311     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctPowerDownCtrlBlock =
312     {
313       IDS_FEAT_DCT_POWERDOWN,
314       IDS_BSP_ONLY,
315       IDS_INIT_POST_BEFORE,
316       IDS_FAMILY_ALL,
317       IdsSubPowerDownCtrl
318     };
319
320     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctDllShutDownBlock =
321     {
322       IDS_FEAT_DCT_DLLSHUTDOWN,
323       IDS_BSP_ONLY,
324       IDS_DLL_SHUT_DOWN,
325       IDS_FAMILY_ALL,
326       IdsSubDllShutDownSR
327     };
328
329
330     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatDctPowerDownModeBlock =
331     {
332       IDS_FEAT_DCT_POWERDOWN,
333       IDS_BSP_ONLY,
334       IDS_POWERDOWN_MODE,
335       IDS_FAMILY_ALL,
336       IdsSubPowerDownMode
337     };
338
339     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHdtOutBlock =
340     {
341       IDS_FEAT_HDTOUT,
342       IDS_BSP_ONLY,
343       IDS_INIT_EARLY_BEFORE,
344       IDS_FAMILY_ALL,
345       IdsSubHdtOut
346     };
347
348     CONST IDS_FEAT_STRUCT ROMDATA IdsFeatHtSettingBlock =
349     {
350       IDS_FEAT_HT_SETTING,
351       IDS_BSP_ONLY,
352       IDS_HT_CONTROL,
353       IDS_FAMILY_ALL,
354       IdsSubHtLinkControl
355     };
356
357     CONST IDS_FEAT_STRUCT* ROMDATA IdsCommonFeats[] =
358     {
359       &IdsFeatUcodeBlock,
360       &IdsFeatPowerPolicyBlock,
361
362       &IdsFeatTargetPstateBlock,
363
364       &IdsFeatPostPstateBlock,
365
366       OPTION_IDS_FEAT_ECCSYMBOLSIZE
367
368       OPTION_IDS_FEAT_ECCCTRL
369
370       &IdsFeatDctAllMemClkBlock,
371
372       &IdsFeatDctGangModeBlock,
373
374       &IdsFeatDctBurstLengthBlock,
375
376       &IdsFeatDctPowerDownCtrlBlock,
377
378       &IdsFeatDctPowerDownModeBlock,
379
380       &IdsFeatDctPowerDownModeBlock,
381
382       OPTION_IDS_FEAT_HT_ASSIST
383
384       &IdsFeatHdtOutBlock,
385
386       &IdsFeatHtSettingBlock,
387
388       OPTION_IDS_FEAT_GNB_PLATFORMCFG
389
390       OPTION_IDS_FEAT_CPB_CTRL
391
392       OPTION_IDS_FEAT_HTC_CTRL
393
394       OPTION_IDS_FEAT_MEMORY_MAPPING
395
396       OPTION_IDS_EXTEND_FEATS
397
398       NULL
399     };
400   #else
401     CONST IDS_FEAT_STRUCT* ROMDATA IdsCommonFeats[] =
402     {
403       NULL
404     };
405   #endif//IDSOPT_CONTROL_ENABLED
406 #else
407   CONST IDS_FEAT_STRUCT* ROMDATA IdsCommonFeats[] =
408   {
409     NULL
410   };
411 #endif// IDSOPT_IDS_ENABLED
412
413
414 #endif