5 * AMD Family_15 Orochi specific feature leveling functions.
7 * Provides feature leveling functions specific to family 15h.
9 * @xrefitem bom "File Content Label" "Release Content"
11 * @e sub-project: CPU/Family/0x15/OR
12 * @e \$Revision: 45341 $ @e \$Date: 2011-01-14 15:49:18 -0700 (Fri, 14 Jan 2011) $
16 ******************************************************************************
18 * Copyright (C) 2012 Advanced Micro Devices, Inc.
19 * All rights reserved.
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions are met:
23 * * Redistributions of source code must retain the above copyright
24 * notice, this list of conditions and the following disclaimer.
25 * * Redistributions in binary form must reproduce the above copyright
26 * notice, this list of conditions and the following disclaimer in the
27 * documentation and/or other materials provided with the distribution.
28 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
29 * its contributors may be used to endorse or promote products derived
30 * from this software without specific prior written permission.
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
33 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
36 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
39 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43 ******************************************************************************
46 #ifndef _CPU_F15_OR_FEATURE_LEVELING_H_
47 #define _CPU_F15_OR_FEATURE_LEVELING_H_
49 #include "cpuFamilyTranslation.h"
50 #include "cpuPostInit.h"
51 /*---------------------------------------------------------------------------------------
52 * M I X E D (Definitions And Macros / Typedefs, Structures, Enums)
53 *---------------------------------------------------------------------------------------
57 /*---------------------------------------------------------------------------------------
58 * D E F I N I T I O N S A N D M A C R O S
59 *---------------------------------------------------------------------------------------
63 /*---------------------------------------------------------------------------------------
64 * T Y P E D E F S, S T R U C T U R E S, E N U M S
65 *---------------------------------------------------------------------------------------
67 /// F15 Orochi CPU Feature Low
69 UINT32 FPU:1; ///< Bit0
70 UINT32 VME:1; ///< Bit1
71 UINT32 DE:1; ///< Bit2
72 UINT32 PSE:1; ///< Bit3
73 UINT32 TimeStampCounter:1; ///< Bit4
74 UINT32 MSR:1; ///< Bit5
75 UINT32 PAE:1; ///< Bit6
76 UINT32 MCE:1; ///< Bit7
77 UINT32 CMPXCHG8B:1; ///< Bit8
78 UINT32 APIC:1; ///< Bit9
80 UINT32 SysEnterSysExit:1; ///< Bit11
81 UINT32 MTRR:1; ///< Bit12
82 UINT32 PGE:1; ///< Bit13
83 UINT32 MCA:1; ///< Bit14
84 UINT32 CMOV:1; ///< Bit15
85 UINT32 PAT:1; ///< Bit16
86 UINT32 PSE36:1; ///< Bit17
88 UINT32 CLFSH:1; ///< Bit19
89 UINT32 :3; ///< Bit20~22
90 UINT32 MMX:1; ///< Bit23
91 UINT32 FXSR:1; ///< Bit24
92 UINT32 SSE:1; ///< Bit25
93 UINT32 SSE2:1; ///< Bit26
95 UINT32 HTT:1; ///< Bit28
96 UINT32 :3; ///< Bit29~31
97 } CPU_F15_OR_FEATURES_LO;
99 /// F15 Orochi CPU Feature High
101 UINT32 SSE3:1; ///< Bit0
102 UINT32 PCLMULQDQ:1; ///< Bit1
104 UINT32 Monitor:1; ///< Bit3
105 UINT32 :5; ///< Bit4~8
106 UINT32 SSSE3:1; ///< Bit9
107 UINT32 :3; ///< Bit10~12
108 UINT32 CMPXCHG16B:1; ///< Bit13
109 UINT32 :5; ///< Bit14~18
110 UINT32 SSE41:1; ///< Bit19
111 UINT32 SSE42:1; ///< Bit20
112 UINT32 X2APIC:1; ///< Bit21
113 UINT32 :1; ///< Bit22
114 UINT32 POPCNT:1; ///< Bit23
115 UINT32 :1; ///< Bit24
116 UINT32 AES:1; ///< Bit25
117 UINT32 XSAVE:1; ///< Bit26
118 UINT32 OSXSAVE:1; ///< Bit27
119 UINT32 AVX:1; ///< Bit28
120 UINT32 :3; ///< Bit29~32
121 } CPU_F15_OR_FEATURES_HI;
123 /// F15 Orochi CPU Feature
125 CPU_F15_OR_FEATURES_LO CpuF15OrFeaturesLo; ///< Low
126 CPU_F15_OR_FEATURES_HI CpuF15OrFeaturesHi; ///< High
127 } CPU_F15_OR_FEATURES;
129 /// F15 Orochi CPU Extended Feature Low
131 UINT32 FPU:1; ///< Bit0
132 UINT32 VME:1; ///< Bit1
133 UINT32 DE:1; ///< Bit2
134 UINT32 PSE:1; ///< Bit3
135 UINT32 TimeStampCounter:1; ///< Bit4
136 UINT32 MSR:1; ///< Bit5
137 UINT32 PAE:1; ///< Bit6
138 UINT32 MCE:1; ///< Bit7
139 UINT32 CMPXCHG8B:1; ///< Bit8
140 UINT32 APIC:1; ///< Bit9
141 UINT32 :1; ///< Bit10
142 UINT32 SysCallSysRet:1; ///< Bit11
143 UINT32 MTRR:1; ///< Bit12
144 UINT32 PGE:1; ///< Bit13
145 UINT32 MCA:1; ///< Bit14
146 UINT32 CMOV:1; ///< Bit15
147 UINT32 PAT:1; ///< Bit16
148 UINT32 PSE36:1; ///< Bit17
149 UINT32 :2; ///< Bit18~19
150 UINT32 NX:1; ///< Bit20
151 UINT32 :1; ///< Bit21
152 UINT32 MmxExt:1; ///< Bit22
153 UINT32 MMX:1; ///< Bit23
154 UINT32 FXSR:1; ///< Bit24
155 UINT32 FFXSR:1; ///< Bit25
156 UINT32 Page1GB:1; ///< Bit26
157 UINT32 RDTSCP:1; ///< Bit27
158 UINT32 :1; ///< Bit28
159 UINT32 LM:1; ///< Bit29
160 UINT32 ThreeDNowExt:1; ///< Bit30
161 UINT32 ThreeDNow:1; ///< Bit31
162 } CPU_F15_OR_EXT_FEATURES_LO;
164 /// F15 Orochi CPU Extended Feature High
166 UINT32 LahfSahf:1; ///< Bit0
167 UINT32 CmpLegacy:1; ///< Bit1
168 UINT32 SVM:1; ///< Bit2
169 UINT32 ExtApicSpace:1; ///< Bit3
170 UINT32 AltMovCr8:1; ///< Bit4
171 UINT32 ABM:1; ///< Bit5
172 UINT32 SSE4A:1; ///< Bit6
173 UINT32 MisAlignSse:1; ///< Bit7
174 UINT32 ThreeDNowPrefetch:1; ///< Bit8
175 UINT32 OSVM:1; ///< Bit9
176 UINT32 IBS:1; ///< Bit10
177 UINT32 XOP:1; ///< Bit11
178 UINT32 SKINIT:1; ///< Bit12
179 UINT32 WDT:1; ///< Bit13
180 UINT32 TBM0:1; ///< Bit14
181 UINT32 LWP:1; ///< Bit15
182 UINT32 FMA4:1; ///< Bit16
183 UINT32 TCE:1; ///< Bit17
184 UINT32 :1; ///< Bit18
185 UINT32 NodeId:1; ///< Bit19
186 UINT32 :12; ///< Bit20~31
187 } CPU_F15_OR_EXT_FEATURES_HI;
189 /// F15 Orochi CPU Extended Feature
191 CPU_F15_OR_EXT_FEATURES_LO CpuF15OrExtFeaturesLo; ///< Low
192 CPU_F15_OR_EXT_FEATURES_HI CpuF15OrExtFeaturesHi; ///< High
193 } CPU_F15_OR_EXT_FEATURES;
194 /*---------------------------------------------------------------------------------------
195 * F U N C T I O N P R O T O T Y P E
196 *---------------------------------------------------------------------------------------
200 IN CPU_SPECIFIC_SERVICES *FamilySpecificServices,
201 IN OUT CPU_FEATURES_LIST *cpuFeatureList,
202 IN AMD_CONFIG_PARAMS *StdHeader
207 IN CPU_SPECIFIC_SERVICES *FamilySpecificServices,
208 IN OUT CPU_FEATURES_LIST *cpuFeatureList,
209 IN AMD_CONFIG_PARAMS *StdHeader
211 #endif // _CPU_F15_OR_FEATURE_LEVELING_H_