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