AGESA F15: AMD family15 AGESA code
[coreboot.git] / src / vendorcode / amd / agesa / f15 / Include / OptionIoCstateInstall.h
1 /* $NoKeywords:$ */
2 /**
3  * @file
4  *
5  * Install of build option: IO C-state
6  *
7  * Contains AMD AGESA install macros and test conditions. Output is the
8  * defaults tables reflecting the User's build options selection.
9  *
10  * @xrefitem bom "File Content Label" "Release Content"
11  * @e project:      AGESA
12  * @e sub-project:  Options
13  * @e \$Revision: 44324 $   @e \$Date: 2010-12-22 02:16:51 -0700 (Wed, 22 Dec 2010) $
14  */
15 /*****************************************************************************
16  *
17  * Copyright (C) 2012 Advanced Micro Devices, Inc.
18  * All rights reserved.
19  *
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.
30  *
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.
41  *
42  *
43  ***************************************************************************/
44
45 #ifndef _OPTION_IO_CSTATE_INSTALL_H_
46 #define _OPTION_IO_CSTATE_INSTALL_H_
47
48 #include "cpuIoCstate.h"
49
50 /*  This option is designed to be included into the platform solution install
51  *  file. The platform solution install file will define the options status.
52  *  Check to validate the definition
53  */
54
55 #define OPTION_IO_CSTATE_FEAT
56 #define F10_IO_CSTATE_SUPPORT
57 #define F12_IO_CSTATE_SUPPORT
58 #define F14_IO_CSTATE_SUPPORT
59 #define F15_OR_IO_CSTATE_SUPPORT
60
61 #if OPTION_IO_CSTATE == TRUE
62   #if (AGESA_ENTRY_INIT_EARLY == TRUE) || (AGESA_ENTRY_INIT_POST == TRUE) || (AGESA_ENTRY_INIT_RESUME == TRUE) || (AGESA_ENTRY_INIT_LATE == TRUE)
63     #ifdef OPTION_FAMILY10H
64       #if OPTION_FAMILY10H == TRUE
65         #if OPTION_FAMILY10H_PH == TRUE
66           extern CONST CPU_FEATURE_DESCRIPTOR ROMDATA CpuFeatureIoCstate;
67           #undef OPTION_IO_CSTATE_FEAT
68           #define OPTION_IO_CSTATE_FEAT &CpuFeatureIoCstate,
69           extern CONST IO_CSTATE_FAMILY_SERVICES ROMDATA F10IoCstateSupport;
70           #undef F10_IO_CSTATE_SUPPORT
71           #define F10_IO_CSTATE_SUPPORT {AMD_FAMILY_10_PH, &F10IoCstateSupport},
72         #endif
73       #endif
74     #endif
75
76     #ifdef OPTION_FAMILY12H
77       #if OPTION_FAMILY12H == TRUE
78         #if OPTION_FAMILY12H_LN == TRUE
79           extern CONST CPU_FEATURE_DESCRIPTOR ROMDATA CpuFeatureIoCstate;
80           #undef OPTION_IO_CSTATE_FEAT
81           #define OPTION_IO_CSTATE_FEAT &CpuFeatureIoCstate,
82           extern CONST IO_CSTATE_FAMILY_SERVICES ROMDATA F12IoCstateSupport;
83           #undef F12_IO_CSTATE_SUPPORT
84           #define F12_IO_CSTATE_SUPPORT {AMD_FAMILY_12_LN, &F12IoCstateSupport},
85         #endif
86       #endif
87     #endif
88
89     #ifdef OPTION_FAMILY14H
90       #if OPTION_FAMILY14H == TRUE
91         #if (OPTION_FAMILY14H_ON == TRUE)
92           extern CONST CPU_FEATURE_DESCRIPTOR ROMDATA CpuFeatureIoCstate;
93           #undef OPTION_IO_CSTATE_FEAT
94           #define OPTION_IO_CSTATE_FEAT &CpuFeatureIoCstate,
95           extern CONST IO_CSTATE_FAMILY_SERVICES ROMDATA F14IoCstateSupport;
96           #undef F14_IO_CSTATE_SUPPORT
97           #define F14_IO_CSTATE_SUPPORT {AMD_FAMILY_14, &F14IoCstateSupport},
98         #endif
99       #endif
100     #endif
101
102     #ifdef OPTION_FAMILY15H
103       #if OPTION_FAMILY15H == TRUE
104         #if OPTION_FAMILY15H_OR == TRUE
105           extern CONST CPU_FEATURE_DESCRIPTOR ROMDATA CpuFeatureIoCstate;
106           #undef OPTION_IO_CSTATE_FEAT
107           #define OPTION_IO_CSTATE_FEAT &CpuFeatureIoCstate,
108           extern CONST IO_CSTATE_FAMILY_SERVICES ROMDATA F15OrIoCstateSupport;
109           #undef F15_OR_IO_CSTATE_SUPPORT
110           #define F15_OR_IO_CSTATE_SUPPORT {AMD_FAMILY_15_OR, &F15OrIoCstateSupport},
111         #endif
112       #endif
113     #endif
114
115   #endif
116 #endif
117
118 CONST CPU_SPECIFIC_SERVICES_XLAT ROMDATA IoCstateFamilyServiceArray[] =
119 {
120   F10_IO_CSTATE_SUPPORT
121   F12_IO_CSTATE_SUPPORT
122   F14_IO_CSTATE_SUPPORT
123   F15_OR_IO_CSTATE_SUPPORT
124   {0, NULL}
125 };
126
127 CONST CPU_FAMILY_SUPPORT_TABLE ROMDATA IoCstateFamilyServiceTable =
128 {
129   (sizeof (IoCstateFamilyServiceArray) / sizeof (CPU_SPECIFIC_SERVICES_XLAT)),
130   &IoCstateFamilyServiceArray[0]
131 };
132
133 #endif // _OPTION_IO_CSTATE_INSTALL_H_