]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassProcessor.h
1 /*++
2
3 Copyright (c) 2004 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 DataHubSubClassProcessor.h
15
16 Abstract:
17
18 Definitions for processor sub class data records
19
20 Revision History
21
22 --*/
23
24 #ifndef _DATAHUB_SUBCLASS_PROCESSOR_H_
25 #define _DATAHUB_SUBCLASS_PROCESSOR_H_
26
27 #define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000
28
29 #define EFI_PROCESSOR_SUBCLASS_GUID \
30 { 0x26fdeb7e, 0xb8af, 0x4ccf, 0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 }
31
32
33 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;
34
35 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
36
37 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
38
39 typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;
40
41 typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;
42
43 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;
44
45 typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;
46
47 typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;
48
49 typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;
50
51 typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;
52
53 typedef struct {
54 UINT32 ProcessorSteppingId:4;
55 UINT32 ProcessorModel: 4;
56 UINT32 ProcessorFamily: 4;
57 UINT32 ProcessorType: 2;
58 UINT32 ProcessorReserved1: 2;
59 UINT32 ProcessorXModel: 4;
60 UINT32 ProcessorXFamily: 8;
61 UINT32 ProcessorReserved2: 4;
62 } EFI_PROCESSOR_SIGNATURE;
63
64 typedef struct {
65 UINT32 ProcessorBrandIndex :8;
66 UINT32 ProcessorClflush :8;
67 UINT32 ProcessorReserved :8;
68 UINT32 ProcessorDfltApicId :8;
69 } EFI_PROCESSOR_MISC_INFO;
70
71 typedef struct {
72 UINT32 ProcessorFpu: 1;
73 UINT32 ProcessorVme: 1;
74 UINT32 ProcessorDe: 1;
75 UINT32 ProcessorPse: 1;
76 UINT32 ProcessorTsc: 1;
77 UINT32 ProcessorMsr: 1;
78 UINT32 ProcessorPae: 1;
79 UINT32 ProcessorMce: 1;
80 UINT32 ProcessorCx8: 1;
81 UINT32 ProcessorApic: 1;
82 UINT32 ProcessorReserved1: 1;
83 UINT32 ProcessorSep: 1;
84 UINT32 ProcessorMtrr: 1;
85 UINT32 ProcessorPge: 1;
86 UINT32 ProcessorMca: 1;
87 UINT32 ProcessorCmov: 1;
88 UINT32 ProcessorPat: 1;
89 UINT32 ProcessorPse36: 1;
90 UINT32 ProcessorPsn: 1;
91 UINT32 ProcessorClfsh: 1;
92 UINT32 ProcessorReserved2: 1;
93 UINT32 ProcessorDs: 1;
94 UINT32 ProcessorAcpi: 1;
95 UINT32 ProcessorMmx: 1;
96 UINT32 ProcessorFxsr: 1;
97 UINT32 ProcessorSse: 1;
98 UINT32 ProcessorSse2: 1;
99 UINT32 ProcessorSs: 1;
100 UINT32 ProcessorReserved3: 1;
101 UINT32 ProcessorTm: 1;
102 UINT32 ProcessorReserved4: 2;
103 } EFI_PROCESSOR_FEATURE_FLAGS;
104
105 typedef struct {
106 EFI_PROCESSOR_SIGNATURE Signature;
107 EFI_PROCESSOR_MISC_INFO MiscInfo;
108 UINT32 Reserved;
109 EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;
110 } EFI_PROCESSOR_ID_DATA;
111
112 typedef enum {
113 EfiProcessorOther = 1,
114 EfiProcessorUnknown = 2,
115 EfiCentralProcessor = 3,
116 EfiMathProcessor = 4,
117 EfiDspProcessor = 5,
118 EfiVideoProcessor = 6
119 } EFI_PROCESSOR_TYPE_DATA;
120
121 typedef enum {
122 EfiProcessorFamilyOther = 1,
123 EfiProcessorFamilyUnknown = 2,
124 EfiProcessorFamily8086 = 3,
125 EfiProcessorFamily80286 = 4,
126 EfiProcessorFamilyIntel386 = 5,
127 EfiProcessorFamilyIntel486 = 6,
128 EfiProcessorFamily8087 = 7,
129 EfiProcessorFamily80287 = 8,
130 EfiProcessorFamily80387 = 9,
131 EfiProcessorFamily80487 = 0x0A,
132 EfiProcessorFamilyPentium = 0x0B,
133 EfiProcessorFamilyPentiumPro = 0x0C,
134 EfiProcessorFamilyPentiumII = 0x0D,
135 EfiProcessorFamilyPentiumMMX = 0x0E,
136 EfiProcessorFamilyCeleron = 0x0F,
137 EfiProcessorFamilyPentiumIIXeon = 0x10,
138 EfiProcessorFamilyPentiumIII = 0x11,
139 EfiProcessorFamilyM1 = 0x12,
140 EfiProcessorFamilyM2 = 0x13,
141 EfiProcessorFamilyM1Reserved2 = 0x14,
142 EfiProcessorFamilyM1Reserved3 = 0x15,
143 EfiProcessorFamilyM1Reserved4 = 0x16,
144 EfiProcessorFamilyM1Reserved5 = 0x17,
145 EfiProcessorFamilyAmdDuron = 0x18,
146 EfiProcessorFamilyK5 = 0x19,
147 EfiProcessorFamilyK6 = 0x1A,
148 EfiProcessorFamilyK6_2 = 0x1B,
149 EfiProcessorFamilyK6_3 = 0x1C,
150 EfiProcessorFamilyAmdAthlon = 0x1D,
151 EfiProcessorFamilyK6_2Plus = 0x1E,
152 EfiProcessorFamilyK5Reserved6 = 0x1F,
153 EfiProcessorFamilyPowerPC = 0x20,
154 EfiProcessorFamilyPowerPC601 = 0x21,
155 EfiProcessorFamilyPowerPC603 = 0x22,
156 EfiProcessorFamilyPowerPC603Plus = 0x23,
157 EfiProcessorFamilyPowerPC604 = 0x24,
158 EfiProcessorFamilyPowerPC620 = 0x25,
159 EfiProcessorFamilyPowerPC704 = 0x26,
160 EfiProcessorFamilyPowerPC750 = 0x27,
161 EfiProcessorFamilyAlpha2 = 0x30,
162 EfiProcessorFamilyAlpha21064 = 0x31,
163 EfiProcessorFamilyAlpha21066 = 0x32,
164 EfiProcessorFamilyAlpha21164 = 0x33,
165 EfiProcessorFamilyAlpha21164PC = 0x34,
166 EfiProcessorFamilyAlpha21164a = 0x35,
167 EfiProcessorFamilyAlpha21264 = 0x36,
168 EfiProcessorFamilyAlpha21364 = 0x37,
169 EfiProcessorFamilyMips = 0x40,
170 EfiProcessorFamilyMIPSR4000 = 0x41,
171 EfiProcessorFamilyMIPSR4200 = 0x42,
172 EfiProcessorFamilyMIPSR4400 = 0x43,
173 EfiProcessorFamilyMIPSR4600 = 0x44,
174 EfiProcessorFamilyMIPSR10000 = 0x45,
175 EfiProcessorFamilySparc = 0x50,
176 EfiProcessorFamilySuperSparc = 0x51,
177 EfiProcessorFamilymicroSparcII = 0x52,
178 EfiProcessorFamilymicroSparcIIep = 0x53,
179 EfiProcessorFamilyUltraSparc = 0x54,
180 EfiProcessorFamilyUltraSparcII = 0x55,
181 EfiProcessorFamilyUltraSparcIIi = 0x56,
182 EfiProcessorFamilyUltraSparcIII = 0x57,
183 EfiProcessorFamilyUltraSparcIIIi = 0x58,
184 EfiProcessorFamily68040 = 0x60,
185 EfiProcessorFamily68xxx = 0x61,
186 EfiProcessorFamily68000 = 0x62,
187 EfiProcessorFamily68010 = 0x63,
188 EfiProcessorFamily68020 = 0x64,
189 EfiProcessorFamily68030 = 0x65,
190 EfiProcessorFamilyHobbit = 0x70,
191 EfiProcessorFamilyCrusoeTM5000 = 0x78,
192 EfiProcessorFamilyCrusoeTM3000 = 0x79,
193 EfiProcessorFamilyWeitek = 0x80,
194 EfiProcessorFamilyItanium = 0x82,
195 EfiProcessorFamilyAmdAthlon64 = 0x83,
196 EfiProcessorFamilyAmdOpteron = 0x84,
197 EfiProcessorFamilyPARISC = 0x90,
198 EfiProcessorFamilyPaRisc8500 = 0x91,
199 EfiProcessorFamilyPaRisc8000 = 0x92,
200 EfiProcessorFamilyPaRisc7300LC = 0x93,
201 EfiProcessorFamilyPaRisc7200 = 0x94,
202 EfiProcessorFamilyPaRisc7100LC = 0x95,
203 EfiProcessorFamilyPaRisc7100 = 0x96,
204 EfiProcessorFamilyV30 = 0xA0,
205 EfiProcessorFamilyPentiumIIIXeon = 0xB0,
206 EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,
207 EfiProcessorFamilyPentium4 = 0xB2,
208 EfiProcessorFamilyIntelXeon = 0xB3,
209 EfiProcessorFamilyAS400 = 0xB4,
210 EfiProcessorFamilyIntelXeonMP = 0xB5,
211 EfiProcessorFamilyAMDAthlonXP = 0xB6,
212 EfiProcessorFamilyAMDAthlonMP = 0xB7,
213 EfiProcessorFamilyIntelItanium2 = 0xB8,
214 EfiProcessorFamilyIntelPentiumM = 0xB9,
215 EfiProcessorFamilyIntelCeleronD = 0xBA,
216 EfiProcessorFamilyIntelPentiumD = 0xBB,
217 EfiProcessorFamilyIntelPentiumEx = 0xBC,
218 EfiProcessorFamilyIBM390 = 0xC8,
219 EfiProcessorFamilyG4 = 0xC9,
220 EfiProcessorFamilyG5 = 0xCA,
221 EfiProcessorFamilyi860 = 0xFA,
222 EfiProcessorFamilyi960 = 0xFB
223 } EFI_PROCESSOR_FAMILY_DATA;
224
225
226 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;
227
228 typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;
229
230 typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;
231
232 typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;
233
234 typedef enum {
235 EfiProcessorIa32Microcode = 1,
236 EfiProcessorIpfPalAMicrocode = 2,
237 EfiProcessorIpfPalBMicrocode = 3
238 } EFI_PROCESSOR_MICROCODE_TYPE;
239
240 typedef struct {
241 EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;
242 UINT32 ProcessorMicrocodeRevisionNumber;
243 } EFI_PROCESSOR_MICROCODE_REVISION_DATA;
244
245 typedef struct {
246 UINT32 CpuStatus :3;
247 UINT32 Reserved1 :3;
248 UINT32 SocketPopulated :1;
249 UINT32 Reserved2 :1;
250 UINT32 ApicEnable :1;
251 UINT32 BootApplicationProcessor :1;
252 UINT32 Reserved3 :22;
253 } EFI_PROCESSOR_STATUS_DATA;
254
255 typedef enum {
256 EfiCpuStatusUnknown = 0,
257 EfiCpuStatusEnabled = 1,
258 EfiCpuStatusDisabledByUser = 2,
259 EfiCpuStatusDisabledbyBios = 3,
260 EfiCpuStatusIdle = 4,
261 EfiCpuStatusOther = 7
262 } EFI_CPU_STATUS;
263
264 typedef enum {
265 EfiProcessorSocketOther = 1,
266 EfiProcessorSocketUnknown = 2,
267 EfiProcessorSocketDaughterBoard = 3,
268 EfiProcessorSocketZIF = 4,
269 EfiProcessorSocketReplacePiggyBack = 5,
270 EfiProcessorSocketNone = 6,
271 EfiProcessorSocketLIF = 7,
272 EfiProcessorSocketSlot1 = 8,
273 EfiProcessorSocketSlot2 = 9,
274 EfiProcessorSocket370Pin = 0xA,
275 EfiProcessorSocketSlotA = 0xB,
276 EfiProcessorSocketSlotM = 0xC,
277 EfiProcessorSocket423 = 0xD,
278 EfiProcessorSocketA462 = 0xE,
279 EfiProcessorSocket478 = 0xF,
280 EfiProcessorSocket754 = 0x10,
281 EfiProcessorSocket940 = 0x11,
282 EfiProcessorSocket939 = 0x12,
283 EfiProcessorSocketmPGA604 = 0x13,
284 EfiProcessorSocketLGA771 = 0x14,
285 EfiProcessorSocketLGA775 = 0x15
286 } EFI_PROCESSOR_SOCKET_TYPE_DATA;
287
288 typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
289
290 typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
291
292 typedef enum {
293 EfiProcessorHealthy = 1,
294 EfiProcessorPerfRestricted = 2,
295 EfiProcessorFuncRestricted = 3
296 } EFI_PROCESSOR_HEALTH_STATUS;
297
298 typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
299
300 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
301
302 typedef enum {
303 ProcessorCoreFrequencyRecordType = 1,
304 ProcessorFsbFrequencyRecordType = 2,
305 ProcessorVersionRecordType = 3,
306 ProcessorManufacturerRecordType = 4,
307 ProcessorSerialNumberRecordType = 5,
308 ProcessorIdRecordType = 6,
309 ProcessorTypeRecordType = 7,
310 ProcessorFamilyRecordType = 8,
311 ProcessorVoltageRecordType = 9,
312 ProcessorApicBaseAddressRecordType = 10,
313 ProcessorApicIdRecordType = 11,
314 ProcessorApicVersionNumberRecordType = 12,
315 CpuUcodeRevisionDataRecordType = 13,
316 ProcessorStatusRecordType = 14,
317 ProcessorSocketTypeRecordType = 15,
318 ProcessorSocketNameRecordType = 16,
319 CacheAssociationRecordType = 17,
320 ProcessorMaxCoreFrequencyRecordType = 18,
321 ProcessorAssetTagRecordType = 19,
322 ProcessorMaxFsbFrequencyRecordType = 20,
323 ProcessorPackageNumberRecordType = 21,
324 ProcessorCoreFrequencyListRecordType = 22,
325 ProcessorFsbFrequencyListRecordType = 23,
326 ProcessorHealthStatusRecordType = 24
327 } EFI_CPU_VARIABLE_RECORD_TYPE;
328
329 typedef union {
330 EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;
331 EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;
332 EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;
333 EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;
334 EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;
335 EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;
336 EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;
337 EFI_PROCESSOR_VERSION_DATA ProcessorVersion;
338 EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;
339 EFI_PROCESSOR_ID_DATA ProcessorId;
340 EFI_PROCESSOR_TYPE_DATA ProcessorType;
341 EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;
342 EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;
343 EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;
344 EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;
345 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;
346 EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;
347 EFI_PROCESSOR_STATUS_DATA ProcessorStatus;
348 EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
349 EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
350 EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
351 EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
352 EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
353 } EFI_CPU_VARIABLE_RECORD;
354
355 typedef struct {
356 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
357 EFI_CPU_VARIABLE_RECORD VariableRecord;
358 } EFI_CPU_DATA_RECORD;
359
360 #endif