]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassProcessor.h
1 /*++
2
3 Copyright (c) 2004 - 2007, 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 EfiProcessorFamilyEfficeonTM8000 = 0x7A,
194 EfiProcessorFamilyWeitek = 0x80,
195 EfiProcessorFamilyItanium = 0x82,
196 EfiProcessorFamilyAmdAthlon64 = 0x83,
197 EfiProcessorFamilyAmdOpteron = 0x84,
198 EfiProcessorFamilyAmdSempron = 0x85,
199 EfiProcessorFamilyAmdTurion64Mobile = 0x86,
200 EfiProcessorFamilyDualCoreAmdOpteron = 0x87,
201 EfiProcessorFamilyAmdAthlon64X2DualCore = 0x88,
202 EfiProcessorFamilyAmdTurion64X2Mobile = 0x89,
203 EfiProcessorFamilyPARISC = 0x90,
204 EfiProcessorFamilyPaRisc8500 = 0x91,
205 EfiProcessorFamilyPaRisc8000 = 0x92,
206 EfiProcessorFamilyPaRisc7300LC = 0x93,
207 EfiProcessorFamilyPaRisc7200 = 0x94,
208 EfiProcessorFamilyPaRisc7100LC = 0x95,
209 EfiProcessorFamilyPaRisc7100 = 0x96,
210 EfiProcessorFamilyV30 = 0xA0,
211 EfiProcessorFamilyPentiumIIIXeon = 0xB0,
212 EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,
213 EfiProcessorFamilyPentium4 = 0xB2,
214 EfiProcessorFamilyIntelXeon = 0xB3,
215 EfiProcessorFamilyAS400 = 0xB4,
216 EfiProcessorFamilyIntelXeonMP = 0xB5,
217 EfiProcessorFamilyAMDAthlonXP = 0xB6,
218 EfiProcessorFamilyAMDAthlonMP = 0xB7,
219 EfiProcessorFamilyIntelItanium2 = 0xB8,
220 EfiProcessorFamilyIntelPentiumM = 0xB9,
221 EfiProcessorFamilyIntelCeleronD = 0xBA,
222 EfiProcessorFamilyIntelPentiumD = 0xBB,
223 EfiProcessorFamilyIntelPentiumEx = 0xBC,
224 EfiProcessorFamilyIntelCoreBrand = 0xBD,
225 EfiProcessorFamilyReserved = 0xBE,
226 EfiProcessorFamilyIntelCore2 = 0xBF,
227 EfiProcessorFamilyIBM390 = 0xC8,
228 EfiProcessorFamilyG4 = 0xC9,
229 EfiProcessorFamilyG5 = 0xCA,
230 EfiProcessorFamilyG6 = 0xCB,
231 EfiProcessorFamilyzArchitectur = 0xCC,
232 EfiProcessorFamilyViaC7M = 0xD2,
233 EfiProcessorFamilyViaC7D = 0xD3,
234 EfiProcessorFamilyViaC7 = 0xD4,
235 EfiProcessorFamilyViaEden = 0xD5,
236 EfiProcessorFamilyi860 = 0xFA,
237 EfiProcessorFamilyi960 = 0xFB,
238 EfiProcessorFamilyIndicatorFamily2 = 0xFE
239 } EFI_PROCESSOR_FAMILY_DATA;
240
241 typedef enum {
242 EfiProcessorFamilySh3 = 0x104,
243 EfiProcessorFamilySh4 = 0x105,
244 EfiProcessorFamilyArm = 0x118,
245 EfiProcessorFamilyStrongArm = 0x119,
246 EfiProcessorFamily6x86 = 0x12C,
247 EfiProcessorFamilyMediaGx = 0x12D,
248 EfiProcessorFamilyMii = 0x12E,
249 EfiProcessorFamilyWinChip = 0x140,
250 EfiProcessorFamilyDsp = 0x15E,
251 EfiProcessorFamilyVideo = 0x1F4
252 } EFI_PROCESSOR_FAMILY2_DATA;
253
254 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;
255
256 typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;
257
258 typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;
259
260 typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;
261
262 typedef enum {
263 EfiProcessorIa32Microcode = 1,
264 EfiProcessorIpfPalAMicrocode = 2,
265 EfiProcessorIpfPalBMicrocode = 3
266 } EFI_PROCESSOR_MICROCODE_TYPE;
267
268 typedef struct {
269 EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;
270 UINT32 ProcessorMicrocodeRevisionNumber;
271 } EFI_PROCESSOR_MICROCODE_REVISION_DATA;
272
273 typedef struct {
274 UINT32 CpuStatus :3;
275 UINT32 Reserved1 :3;
276 UINT32 SocketPopulated :1;
277 UINT32 Reserved2 :1;
278 UINT32 ApicEnable :1;
279 UINT32 BootApplicationProcessor :1;
280 UINT32 Reserved3 :22;
281 } EFI_PROCESSOR_STATUS_DATA;
282
283 typedef enum {
284 EfiCpuStatusUnknown = 0,
285 EfiCpuStatusEnabled = 1,
286 EfiCpuStatusDisabledByUser = 2,
287 EfiCpuStatusDisabledbyBios = 3,
288 EfiCpuStatusIdle = 4,
289 EfiCpuStatusOther = 7
290 } EFI_CPU_STATUS;
291
292 typedef enum {
293 EfiProcessorSocketOther = 1,
294 EfiProcessorSocketUnknown = 2,
295 EfiProcessorSocketDaughterBoard = 3,
296 EfiProcessorSocketZIF = 4,
297 EfiProcessorSocketReplacePiggyBack = 5,
298 EfiProcessorSocketNone = 6,
299 EfiProcessorSocketLIF = 7,
300 EfiProcessorSocketSlot1 = 8,
301 EfiProcessorSocketSlot2 = 9,
302 EfiProcessorSocket370Pin = 0xA,
303 EfiProcessorSocketSlotA = 0xB,
304 EfiProcessorSocketSlotM = 0xC,
305 EfiProcessorSocket423 = 0xD,
306 EfiProcessorSocketA462 = 0xE,
307 EfiProcessorSocket478 = 0xF,
308 EfiProcessorSocket754 = 0x10,
309 EfiProcessorSocket940 = 0x11,
310 EfiProcessorSocket939 = 0x12,
311 EfiProcessorSocketmPGA604 = 0x13,
312 EfiProcessorSocketLGA771 = 0x14,
313 EfiProcessorSocketLGA775 = 0x15,
314 EfiProcessorSocketS1 = 0x16,
315 EfiProcessorSocketAm2 = 0x17,
316 EfiProcessorSocketF = 0x18
317 } EFI_PROCESSOR_SOCKET_TYPE_DATA;
318
319 typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
320
321 typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
322
323 typedef enum {
324 EfiProcessorHealthy = 1,
325 EfiProcessorPerfRestricted = 2,
326 EfiProcessorFuncRestricted = 3
327 } EFI_PROCESSOR_HEALTH_STATUS;
328
329 typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
330
331 typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;
332 typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;
333 typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;
334
335 typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
336
337 typedef struct {
338 UINT16 Reserved :1;
339 UINT16 Unknown :1;
340 UINT16 Capable64Bit :1;
341 UINT16 Reserved2 :13;
342 } EFI_PROCESSOR_CHARACTERISTICS_DATA;
343
344 typedef enum {
345 ProcessorCoreFrequencyRecordType = 1,
346 ProcessorFsbFrequencyRecordType = 2,
347 ProcessorVersionRecordType = 3,
348 ProcessorManufacturerRecordType = 4,
349 ProcessorSerialNumberRecordType = 5,
350 ProcessorIdRecordType = 6,
351 ProcessorTypeRecordType = 7,
352 ProcessorFamilyRecordType = 8,
353 ProcessorVoltageRecordType = 9,
354 ProcessorApicBaseAddressRecordType = 10,
355 ProcessorApicIdRecordType = 11,
356 ProcessorApicVersionNumberRecordType = 12,
357 CpuUcodeRevisionDataRecordType = 13,
358 ProcessorStatusRecordType = 14,
359 ProcessorSocketTypeRecordType = 15,
360 ProcessorSocketNameRecordType = 16,
361 CacheAssociationRecordType = 17,
362 ProcessorMaxCoreFrequencyRecordType = 18,
363 ProcessorAssetTagRecordType = 19,
364 ProcessorMaxFsbFrequencyRecordType = 20,
365 ProcessorPackageNumberRecordType = 21,
366 ProcessorCoreFrequencyListRecordType = 22,
367 ProcessorFsbFrequencyListRecordType = 23,
368 ProcessorHealthStatusRecordType = 24,
369 ProcessorCoreCountRecordType = 25,
370 ProcessorEnabledCoreCountRecordType = 26,
371 ProcessorThreadCountRecordType = 27,
372 ProcessorCharacteristicsRecordType = 28,
373 ProcessorFamily2RecordType = 29
374 } EFI_CPU_VARIABLE_RECORD_TYPE;
375
376 typedef union {
377 EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;
378 EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;
379 EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;
380 EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;
381 EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;
382 EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;
383 EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;
384 EFI_PROCESSOR_VERSION_DATA ProcessorVersion;
385 EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;
386 EFI_PROCESSOR_ID_DATA ProcessorId;
387 EFI_PROCESSOR_TYPE_DATA ProcessorType;
388 EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;
389 EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;
390 EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;
391 EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;
392 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;
393 EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;
394 EFI_PROCESSOR_STATUS_DATA ProcessorStatus;
395 EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
396 EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
397 EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
398 EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
399 EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
400 EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;
401 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;
402 EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;
403 EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;
404 EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;
405 } EFI_CPU_VARIABLE_RECORD;
406
407 typedef struct {
408 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
409 EFI_CPU_VARIABLE_RECORD VariableRecord;
410 } EFI_CPU_DATA_RECORD;
411
412 #endif