]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - IntelFrameworkPkg/Include/Framework/DataHubRecords.h
Add more comments for IntelFramework's header files.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / DataHubRecords.h
... / ...
CommitLineData
1/** @file\r
2 This file defines GUIDs and associated data structures for records posted to the Data Hub.\r
3 The producers of these records use these definitions to construct records.\r
4 The consumers of these records use these definitions to retrieve, filter and parse records.\r
5\r
6 Copyright (c) 2007, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15 Module Name: DataHubRecords.h\r
16\r
17 @par Revision Reference:\r
18 DataHubRecord.h include all data hub sub class defitions from Cache subclass\r
19 spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor\r
20 Subclass spec 0.9,Misc SubClass spec 0.9.\r
21\r
22**/\r
23\r
24#ifndef _DATAHUB_RECORDS_H_\r
25#define _DATAHUB_RECORDS_H_\r
26\r
27#include <PiPei.h>\r
28#include <Protocol/DevicePath.h>\r
29\r
30#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
31\r
32#pragma pack(1)\r
33\r
34typedef struct _USB_PORT_DEVICE_PATH {\r
35 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
36 PCI_DEVICE_PATH PciBusDevicePath;\r
37 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
38} USB_PORT_DEVICE_PATH;\r
39\r
40//\r
41// IDE\r
42//\r
43typedef struct _IDE_DEVICE_PATH {\r
44 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
45 PCI_DEVICE_PATH PciBusDevicePath;\r
46 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
47} IDE_DEVICE_PATH;\r
48\r
49//\r
50// RMC Connector\r
51//\r
52typedef struct _RMC_CONN_DEVICE_PATH {\r
53 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
54 PCI_DEVICE_PATH PciBridgeDevicePath;\r
55 PCI_DEVICE_PATH PciBusDevicePath;\r
56 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
57} RMC_CONN_DEVICE_PATH;\r
58\r
59//\r
60// RIDE\r
61//\r
62typedef struct _RIDE_DEVICE_PATH {\r
63 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
64 PCI_DEVICE_PATH PciBridgeDevicePath;\r
65 PCI_DEVICE_PATH PciBusDevicePath;\r
66 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
67} RIDE_DEVICE_PATH;\r
68\r
69//\r
70// Gigabit NIC\r
71//\r
72typedef struct _GB_NIC_DEVICE_PATH {\r
73 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
74 PCI_DEVICE_PATH PciBridgeDevicePath;\r
75 PCI_DEVICE_PATH PciXBridgeDevicePath;\r
76 PCI_DEVICE_PATH PciXBusDevicePath;\r
77 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
78} GB_NIC_DEVICE_PATH;\r
79\r
80//\r
81// P/S2 Connector\r
82//\r
83typedef struct _PS2_CONN_DEVICE_PATH {\r
84 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
85 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
86 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
87 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
88} PS2_CONN_DEVICE_PATH;\r
89\r
90//\r
91// Serial Port Connector\r
92//\r
93typedef struct _SERIAL_CONN_DEVICE_PATH {\r
94 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
95 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
96 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
97 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
98} SERIAL_CONN_DEVICE_PATH;\r
99\r
100//\r
101// Parallel Port Connector\r
102//\r
103typedef struct _PARALLEL_CONN_DEVICE_PATH {\r
104 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
105 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
106 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
107 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
108} PARALLEL_CONN_DEVICE_PATH;\r
109\r
110//\r
111// Floopy Connector\r
112//\r
113typedef struct _FLOOPY_CONN_DEVICE_PATH {\r
114 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
115 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
116 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
117 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
118} FLOOPY_CONN_DEVICE_PATH;\r
119\r
120typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
121 USB_PORT_DEVICE_PATH UsbDevicePath;\r
122 IDE_DEVICE_PATH IdeDevicePath;\r
123 RMC_CONN_DEVICE_PATH RmcConnDevicePath;\r
124 RIDE_DEVICE_PATH RideDevicePath;\r
125 GB_NIC_DEVICE_PATH GbNicDevicePath;\r
126 PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;\r
127 SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;\r
128 PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;\r
129 FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;\r
130} EFI_MISC_PORT_DEVICE_PATH;\r
131\r
132#pragma pack()\r
133\r
134//\r
135// String Token Definition\r
136//\r
137#define EFI_STRING_TOKEN UINT16\r
138\r
139typedef struct {\r
140 UINT32 Version;\r
141 UINT32 HeaderSize;\r
142 UINT16 Instance;\r
143 UINT16 SubInstance;\r
144 UINT32 RecordType;\r
145} EFI_SUBCLASS_TYPE1_HEADER;\r
146\r
147typedef struct {\r
148 EFI_GUID ProducerName;\r
149 UINT16 Instance;\r
150 UINT16 SubInstance;\r
151} EFI_INTER_LINK_DATA;\r
152\r
153\r
154//\r
155// EXP data\r
156//\r
157\r
158typedef struct {\r
159 UINT16 Value;\r
160 UINT16 Exponent;\r
161} EFI_EXP_BASE2_DATA;\r
162\r
163\r
164typedef struct {\r
165 UINT16 Value;\r
166 UINT16 Exponent;\r
167} EFI_EXP_BASE10_DATA;\r
168\r
169typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
170\r
171typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
172\r
173typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
174\r
175typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
176\r
177typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
178\r
179typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
180\r
181typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;\r
182\r
183typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
184\r
185typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
186\r
187typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
188\r
189typedef struct {\r
190 UINT32 ProcessorSteppingId:4;\r
191 UINT32 ProcessorModel: 4;\r
192 UINT32 ProcessorFamily: 4;\r
193 UINT32 ProcessorType: 2;\r
194 UINT32 ProcessorReserved1: 2;\r
195 UINT32 ProcessorXModel: 4;\r
196 UINT32 ProcessorXFamily: 8;\r
197 UINT32 ProcessorReserved2: 4;\r
198} EFI_PROCESSOR_SIGNATURE;\r
199\r
200typedef struct {\r
201 UINT32 ProcessorBrandIndex :8;\r
202 UINT32 ProcessorClflush :8;\r
203 UINT32 ProcessorReserved :8;\r
204 UINT32 ProcessorDfltApicId :8;\r
205} EFI_PROCESSOR_MISC_INFO;\r
206\r
207typedef struct {\r
208 UINT32 ProcessorFpu: 1;\r
209 UINT32 ProcessorVme: 1;\r
210 UINT32 ProcessorDe: 1;\r
211 UINT32 ProcessorPse: 1;\r
212 UINT32 ProcessorTsc: 1;\r
213 UINT32 ProcessorMsr: 1;\r
214 UINT32 ProcessorPae: 1;\r
215 UINT32 ProcessorMce: 1;\r
216 UINT32 ProcessorCx8: 1;\r
217 UINT32 ProcessorApic: 1;\r
218 UINT32 ProcessorReserved1: 1;\r
219 UINT32 ProcessorSep: 1;\r
220 UINT32 ProcessorMtrr: 1;\r
221 UINT32 ProcessorPge: 1;\r
222 UINT32 ProcessorMca: 1;\r
223 UINT32 ProcessorCmov: 1;\r
224 UINT32 ProcessorPat: 1;\r
225 UINT32 ProcessorPse36: 1;\r
226 UINT32 ProcessorPsn: 1;\r
227 UINT32 ProcessorClfsh: 1;\r
228 UINT32 ProcessorReserved2: 1;\r
229 UINT32 ProcessorDs: 1;\r
230 UINT32 ProcessorAcpi: 1;\r
231 UINT32 ProcessorMmx: 1;\r
232 UINT32 ProcessorFxsr: 1;\r
233 UINT32 ProcessorSse: 1;\r
234 UINT32 ProcessorSse2: 1;\r
235 UINT32 ProcessorSs: 1;\r
236 UINT32 ProcessorReserved3: 1;\r
237 UINT32 ProcessorTm: 1;\r
238 UINT32 ProcessorReserved4: 2;\r
239} EFI_PROCESSOR_FEATURE_FLAGS;\r
240\r
241typedef struct {\r
242 EFI_PROCESSOR_SIGNATURE Signature;\r
243 EFI_PROCESSOR_MISC_INFO MiscInfo;\r
244 UINT32 Reserved;\r
245 EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
246} EFI_PROCESSOR_ID_DATA;\r
247\r
248typedef enum {\r
249 EfiProcessorOther = 1,\r
250 EfiProcessorUnknown = 2,\r
251 EfiCentralProcessor = 3,\r
252 EfiMathProcessor = 4,\r
253 EfiDspProcessor = 5,\r
254 EfiVideoProcessor = 6\r
255} EFI_PROCESSOR_TYPE_DATA;\r
256\r
257typedef enum {\r
258 EfiProcessorFamilyOther = 1,\r
259 EfiProcessorFamilyUnknown = 2,\r
260 EfiProcessorFamily8086 = 3,\r
261 EfiProcessorFamily80286 = 4,\r
262 EfiProcessorFamilyIntel386 = 5,\r
263 EfiProcessorFamilyIntel486 = 6,\r
264 EfiProcessorFamily8087 = 7,\r
265 EfiProcessorFamily80287 = 8,\r
266 EfiProcessorFamily80387 = 9,\r
267 EfiProcessorFamily80487 = 0x0A,\r
268 EfiProcessorFamilyPentium = 0x0B,\r
269 EfiProcessorFamilyPentiumPro = 0x0C,\r
270 EfiProcessorFamilyPentiumII = 0x0D,\r
271 EfiProcessorFamilyPentiumMMX = 0x0E,\r
272 EfiProcessorFamilyCeleron = 0x0F,\r
273 EfiProcessorFamilyPentiumIIXeon = 0x10,\r
274 EfiProcessorFamilyPentiumIII = 0x11,\r
275 EfiProcessorFamilyM1 = 0x12,\r
276 EfiProcessorFamilyM1Reserved1 = 0x13,\r
277 EfiProcessorFamilyM1Reserved2 = 0x14,\r
278 EfiProcessorFamilyM1Reserved3 = 0x15,\r
279 EfiProcessorFamilyM1Reserved4 = 0x16,\r
280 EfiProcessorFamilyM1Reserved5 = 0x17,\r
281 EfiProcessorFamilyM1Reserved6 = 0x18,\r
282 EfiProcessorFamilyK5 = 0x19,\r
283 EfiProcessorFamilyK5Reserved1 = 0x1A,\r
284 EfiProcessorFamilyK5Reserved2 = 0x1B,\r
285 EfiProcessorFamilyK5Reserved3 = 0x1C,\r
286 EfiProcessorFamilyK5Reserved4 = 0x1D,\r
287 EfiProcessorFamilyK5Reserved5 = 0x1E,\r
288 EfiProcessorFamilyK5Reserved6 = 0x1F,\r
289 EfiProcessorFamilyPowerPC = 0x20,\r
290 EfiProcessorFamilyPowerPC601 = 0x21,\r
291 EfiProcessorFamilyPowerPC603 = 0x22,\r
292 EfiProcessorFamilyPowerPC603Plus = 0x23,\r
293 EfiProcessorFamilyPowerPC604 = 0x24,\r
294 EfiProcessorFamilyAlpha2 = 0x30,\r
295 EfiProcessorFamilyMips = 0x40,\r
296 EfiProcessorFamilySparc = 0x50,\r
297 EfiProcessorFamily68040 = 0x60,\r
298 EfiProcessorFamily68xxx = 0x61,\r
299 EfiProcessorFamily68000 = 0x62,\r
300 EfiProcessorFamily68010 = 0x63,\r
301 EfiProcessorFamily68020 = 0x64,\r
302 EfiProcessorFamily68030 = 0x65,\r
303 EfiProcessorFamilyHobbit = 0x70,\r
304 EfiProcessorFamilyWeitek = 0x80,\r
305 EfiProcessorFamilyPARISC = 0x90,\r
306 EfiProcessorFamilyV30 = 0xA0,\r
307 EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
308 EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
309 EfiProcessorFamilyPentium4 = 0xB2,\r
310 EfiProcessorFamilyIntelXeon = 0xB3,\r
311 EfiProcessorFamilyAS400 = 0xB4,\r
312 EfiProcessorFamilyIntelXeonMP = 0xB5,\r
313 EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
314 EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
315 EfiProcessorFamilyIntelPentiumM = 0xB9,\r
316 EfiProcessorFamilyIntelCeleronD = 0xBA,\r
317 EfiProcessorFamilyIntelPentiumD = 0xBB,\r
318 EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
319 EfiProcessorFamilyIBM390 = 0xC8,\r
320 EfiProcessorFamilyG4 = 0xC9,\r
321 EfiProcessorFamilyG5 = 0xCA,\r
322 EfiProcessorFamilyi860 = 0xFA,\r
323 EfiProcessorFamilyi960 = 0xFB\r
324} EFI_PROCESSOR_FAMILY_DATA;\r
325\r
326typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
327\r
328typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
329\r
330typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
331\r
332typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
333\r
334typedef enum {\r
335 EfiProcessorIa32Microcode = 1,\r
336 EfiProcessorIpfPalAMicrocode = 2,\r
337 EfiProcessorIpfPalBMicrocode = 3\r
338} EFI_PROCESSOR_MICROCODE_TYPE;\r
339\r
340typedef struct {\r
341 EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
342 UINT32 ProcessorMicrocodeRevisionNumber;\r
343} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
344\r
345typedef struct {\r
346 UINT32 CpuStatus :3;\r
347 UINT32 Reserved1 :3;\r
348 UINT32 SocketPopulated :1;\r
349 UINT32 Reserved2 :1;\r
350 UINT32 ApicEnable :1;\r
351 UINT32 BootApplicationProcessor :1;\r
352 UINT32 Reserved3 :22;\r
353} EFI_PROCESSOR_STATUS_DATA;\r
354\r
355typedef enum {\r
356 EfiCpuStatusUnknown = 0,\r
357 EfiCpuStatusEnabled = 1,\r
358 EfiCpuStatusDisabledByUser = 2,\r
359 EfiCpuStatusDisabledbyBios = 3,\r
360 EfiCpuStatusIdle = 4,\r
361 EfiCpuStatusOther = 7\r
362} EFI_CPU_STATUS;\r
363\r
364typedef enum {\r
365 EfiProcessorSocketOther = 1,\r
366 EfiProcessorSocketUnknown = 2,\r
367 EfiProcessorSocketDaughterBoard = 3,\r
368 EfiProcessorSocketZIF = 4,\r
369 EfiProcessorSocketReplacePiggyBack = 5,\r
370 EfiProcessorSocketNone = 6,\r
371 EfiProcessorSocketLIF = 7,\r
372 EfiProcessorSocketSlot1 = 8,\r
373 EfiProcessorSocketSlot2 = 9,\r
374 EfiProcessorSocket370Pin = 0xA,\r
375 EfiProcessorSocketSlotA = 0xB,\r
376 EfiProcessorSocketSlotM = 0xC,\r
377 EfiProcessorSocket423 = 0xD,\r
378 EfiProcessorSocketA462 = 0xE,\r
379 EfiProcessorSocket478 = 0xF,\r
380 EfiProcessorSocket754 = 0x10,\r
381 EfiProcessorSocket940 = 0x11,\r
382 EfiProcessorSocket939 = 0x12,\r
383 EfiProcessorSocketmPGA604 = 0x13,\r
384 EfiProcessorSocketLGA771 = 0x14,\r
385 EfiProcessorSocketLGA775 = 0x15\r
386\r
387} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
388\r
389typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
390\r
391typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
392\r
393typedef enum {\r
394 EfiProcessorHealthy = 1,\r
395 EfiProcessorPerfRestricted = 2,\r
396 EfiProcessorFuncRestricted = 3\r
397} EFI_PROCESSOR_HEALTH_STATUS;\r
398\r
399typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
400\r
401\r
402typedef enum {\r
403 ProcessorCoreFrequencyRecordType = 1,\r
404 ProcessorFsbFrequencyRecordType = 2,\r
405 ProcessorVersionRecordType = 3,\r
406 ProcessorManufacturerRecordType = 4,\r
407 ProcessorSerialNumberRecordType = 5,\r
408 ProcessorIdRecordType = 6,\r
409 ProcessorTypeRecordType = 7,\r
410 ProcessorFamilyRecordType = 8,\r
411 ProcessorVoltageRecordType = 9,\r
412 ProcessorApicBaseAddressRecordType = 10,\r
413 ProcessorApicIdRecordType = 11,\r
414 ProcessorApicVersionNumberRecordType = 12,\r
415 CpuUcodeRevisionDataRecordType = 13,\r
416 ProcessorStatusRecordType = 14,\r
417 ProcessorSocketTypeRecordType = 15,\r
418 ProcessorSocketNameRecordType = 16,\r
419 CacheAssociationRecordType = 17,\r
420 ProcessorMaxCoreFrequencyRecordType = 18,\r
421 ProcessorAssetTagRecordType = 19,\r
422 ProcessorMaxFsbFrequencyRecordType = 20,\r
423 ProcessorPackageNumberRecordType = 21,\r
424 ProcessorCoreFrequencyListRecordType = 22,\r
425 ProcessorFsbFrequencyListRecordType = 23,\r
426 ProcessorHealthStatusRecordType = 24\r
427} EFI_CPU_VARIABLE_RECORD_TYPE;\r
428\r
429typedef union {\r
430 EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
431 EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
432 EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
433 EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
434 EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
435 EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;\r
436 EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;\r
437 EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
438 EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
439 EFI_PROCESSOR_ID_DATA ProcessorId;\r
440 EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
441 EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
442 EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
443 EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;\r
444 EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;\r
445 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;\r
446 EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;\r
447 EFI_PROCESSOR_STATUS_DATA ProcessorStatus;\r
448 EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
449 EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
450 EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
451 EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
452 EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
453} EFI_CPU_VARIABLE_RECORD;\r
454\r
455typedef struct {\r
456 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
457 EFI_CPU_VARIABLE_RECORD VariableRecord;\r
458} EFI_CPU_DATA_RECORD;\r
459\r
460#define EFI_CACHE_SUBCLASS_VERSION 0x00010000\r
461\r
462typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
463\r
464typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
465\r
466typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;\r
467\r
468typedef STRING_REF EFI_CACHE_SOCKET_DATA;\r
469\r
470typedef struct {\r
471 UINT32 Other :1;\r
472 UINT32 Unknown :1;\r
473 UINT32 NonBurst :1;\r
474 UINT32 Burst :1;\r
475 UINT32 PipelineBurst :1;\r
476 UINT32 Asynchronous :1;\r
477 UINT32 Synchronous :1;\r
478 UINT32 Reserved :25;\r
479} EFI_CACHE_SRAM_TYPE_DATA;\r
480\r
481typedef EFI_CACHE_SRAM_TYPE_DATA EFI_CACHE_SRAM_INSTALL_DATA;\r
482\r
483typedef enum {\r
484 EfiCacheErrorOther = 1,\r
485 EfiCacheErrorUnknown = 2,\r
486 EfiCacheErrorNone = 3,\r
487 EfiCacheErrorParity = 4,\r
488 EfiCacheErrorSingleBit = 5,\r
489 EfiCacheErrorMultiBit = 6\r
490} EFI_CACHE_ERROR_TYPE_DATA;\r
491\r
492typedef enum {\r
493 EfiCacheTypeOther = 1,\r
494 EfiCacheTypeUnknown = 2,\r
495 EfiCacheTypeInstruction = 3,\r
496 EfiCacheTypeData = 4,\r
497 EfiCacheTypeUnified = 5\r
498} EFI_CACHE_TYPE_DATA;\r
499\r
500typedef enum {\r
501 EfiCacheAssociativityOther = 1,\r
502 EfiCacheAssociativityUnknown = 2,\r
503 EfiCacheAssociativityDirectMapped = 3,\r
504 EfiCacheAssociativity2Way = 4,\r
505 EfiCacheAssociativity4Way = 5,\r
506 EfiCacheAssociativityFully = 6,\r
507 EfiCacheAssociativity8Way = 7,\r
508 EfiCacheAssociativity16Way = 8,\r
509 EfiCacheAssociativity24Way = 9\r
510} EFI_CACHE_ASSOCIATIVITY_DATA;\r
511\r
512typedef struct {\r
513 UINT32 Level :3;\r
514 UINT32 Socketed :1;\r
515 UINT32 Reserved2 :1;\r
516 UINT32 Location :2;\r
517 UINT32 Enable :1;\r
518 UINT32 OperationalMode :2;\r
519 UINT32 Reserved1 :22;\r
520} EFI_CACHE_CONFIGURATION_DATA;\r
521\r
522#define EFI_CACHE_L1 1\r
523#define EFI_CACHE_L2 2\r
524#define EFI_CACHE_L3 3\r
525#define EFI_CACHE_L4 4\r
526#define EFI_CACHE_LMAX EFI_CACHE_L4\r
527\r
528#define EFI_CACHE_SOCKETED 1\r
529#define EFI_CACHE_NOT_SOCKETED 0\r
530\r
531typedef enum {\r
532 EfiCacheInternal = 0,\r
533 EfiCacheExternal = 1,\r
534 EfiCacheReserved = 2,\r
535 EfiCacheUnknown = 3\r
536} EFI_CACHE_LOCATION;\r
537\r
538#define EFI_CACHE_ENABLED 1\r
539#define EFI_CACHE_DISABLED 0\r
540\r
541typedef enum {\r
542 EfiCacheWriteThrough = 0,\r
543 EfiCacheWriteBack = 1,\r
544 EfiCacheDynamicMode = 2,\r
545 EfiCacheUnknownMode = 3\r
546} EFI_CACHE_OPERATIONAL_MODE;\r
547\r
548\r
549\r
550typedef enum {\r
551 CacheSizeRecordType = 1,\r
552 MaximumSizeCacheRecordType = 2,\r
553 CacheSpeedRecordType = 3,\r
554 CacheSocketRecordType = 4,\r
555 CacheSramTypeRecordType = 5,\r
556 CacheInstalledSramTypeRecordType = 6,\r
557 CacheErrorTypeRecordType = 7,\r
558 CacheTypeRecordType = 8,\r
559 CacheAssociativityRecordType = 9,\r
560 CacheConfigRecordType = 10\r
561} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
562\r
563\r
564typedef union {\r
565 EFI_CACHE_SIZE_DATA CacheSize;\r
566 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
567 EFI_CACHE_SPEED_DATA CacheSpeed;\r
568 EFI_CACHE_SOCKET_DATA CacheSocket;\r
569 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
570 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
571 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
572 EFI_CACHE_TYPE_DATA CacheType;\r
573 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
574 EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
575 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
576} EFI_CACHE_VARIABLE_RECORD;\r
577\r
578typedef struct {\r
579 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
580 EFI_CACHE_VARIABLE_RECORD VariableRecord;\r
581} EFI_CACHE_DATA_RECORD;\r
582\r
583#define EFI_MEMORY_SUBCLASS_VERSION 0x0100\r
584\r
585\r
586#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001\r
587\r
588typedef enum _EFI_MEMORY_REGION_TYPE {\r
589 EfiMemoryRegionMemory = 0x01,\r
590 EfiMemoryRegionReserved = 0x02,\r
591 EfiMemoryRegionAcpi = 0x03,\r
592 EfiMemoryRegionNvs = 0x04\r
593} EFI_MEMORY_REGION_TYPE;\r
594\r
595typedef struct {\r
596 UINT32 ProcessorNumber;\r
597 UINT16 StartBusNumber;\r
598 UINT16 EndBusNumber;\r
599 EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
600 EFI_EXP_BASE2_DATA MemorySize;\r
601 EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
602} EFI_MEMORY_SIZE_DATA;\r
603\r
604\r
605#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002\r
606\r
607typedef enum _EFI_MEMORY_ARRAY_LOCATION {\r
608 EfiMemoryArrayLocationOther = 0x01,\r
609 EfiMemoryArrayLocationUnknown = 0x02,\r
610 EfiMemoryArrayLocationSystemBoard = 0x03,\r
611 EfiMemoryArrayLocationIsaAddonCard = 0x04,\r
612 EfiMemoryArrayLocationEisaAddonCard = 0x05,\r
613 EfiMemoryArrayLocationPciAddonCard = 0x06,\r
614 EfiMemoryArrayLocationMcaAddonCard = 0x07,\r
615 EfiMemoryArrayLocationPcmciaAddonCard = 0x08,\r
616 EfiMemoryArrayLocationProprietaryAddonCard = 0x09,\r
617 EfiMemoryArrayLocationNuBus = 0x0A,\r
618 EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,\r
619 EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,\r
620 EfiMemoryArrayLocationPc98EAddonCard = 0xA2,\r
621 EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3\r
622} EFI_MEMORY_ARRAY_LOCATION;\r
623\r
624typedef enum _EFI_MEMORY_ARRAY_USE {\r
625 EfiMemoryArrayUseOther = 0x01,\r
626 EfiMemoryArrayUseUnknown = 0x02,\r
627 EfiMemoryArrayUseSystemMemory = 0x03,\r
628 EfiMemoryArrayUseVideoMemory = 0x04,\r
629 EfiMemoryArrayUseFlashMemory = 0x05,\r
630 EfiMemoryArrayUseNonVolatileRam = 0x06,\r
631 EfiMemoryArrayUseCacheMemory = 0x07,\r
632} EFI_MEMORY_ARRAY_USE;\r
633\r
634typedef enum _EFI_MEMORY_ERROR_CORRECTION {\r
635 EfiMemoryErrorCorrectionOther = 0x01,\r
636 EfiMemoryErrorCorrectionUnknown = 0x02,\r
637 EfiMemoryErrorCorrectionNone = 0x03,\r
638 EfiMemoryErrorCorrectionParity = 0x04,\r
639 EfiMemoryErrorCorrectionSingleBitEcc = 0x05,\r
640 EfiMemoryErrorCorrectionMultiBitEcc = 0x06,\r
641 EfiMemoryErrorCorrectionCrc = 0x07,\r
642} EFI_MEMORY_ERROR_CORRECTION;\r
643\r
644typedef struct {\r
645 EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
646 EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
647 EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
648 EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
649 UINT16 NumberMemoryDevices;\r
650} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
651\r
652\r
653#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003\r
654\r
655typedef enum _EFI_MEMORY_FORM_FACTOR {\r
656 EfiMemoryFormFactorOther = 0x01,\r
657 EfiMemoryFormFactorUnknown = 0x02,\r
658 EfiMemoryFormFactorSimm = 0x03,\r
659 EfiMemoryFormFactorSip = 0x04,\r
660 EfiMemoryFormFactorChip = 0x05,\r
661 EfiMemoryFormFactorDip = 0x06,\r
662 EfiMemoryFormFactorZip = 0x07,\r
663 EfiMemoryFormFactorProprietaryCard = 0x08,\r
664 EfiMemoryFormFactorDimm = 0x09,\r
665 EfiMemoryFormFactorTsop = 0x0A,\r
666 EfiMemoryFormFactorRowOfChips = 0x0B,\r
667 EfiMemoryFormFactorRimm = 0x0C,\r
668 EfiMemoryFormFactorSodimm = 0x0D,\r
669 EfiMemoryFormFactorSrimm = 0x0E,\r
670 EfiMemoryFormFactorFbDimm = 0x0F\r
671} EFI_MEMORY_FORM_FACTOR;\r
672\r
673typedef enum _EFI_MEMORY_ARRAY_TYPE {\r
674 EfiMemoryTypeOther = 0x01,\r
675 EfiMemoryTypeUnknown = 0x02,\r
676 EfiMemoryTypeDram = 0x03,\r
677 EfiMemoryTypeEdram = 0x04,\r
678 EfiMemoryTypeVram = 0x05,\r
679 EfiMemoryTypeSram = 0x06,\r
680 EfiMemoryTypeRam = 0x07,\r
681 EfiMemoryTypeRom = 0x08,\r
682 EfiMemoryTypeFlash = 0x09,\r
683 EfiMemoryTypeEeprom = 0x0A,\r
684 EfiMemoryTypeFeprom = 0x0B,\r
685 EfiMemoryTypeEprom = 0x0C,\r
686 EfiMemoryTypeCdram = 0x0D,\r
687 EfiMemoryType3Dram = 0x0E,\r
688 EfiMemoryTypeSdram = 0x0F,\r
689 EfiMemoryTypeSgram = 0x10,\r
690 EfiMemoryTypeRdram = 0x11,\r
691 EfiMemoryTypeDdr = 0x12,\r
692 EfiMemoryTypeDdr2 = 0x13,\r
693 EfiMemoryTypeDdr2FbDimm = 0x14\r
694} EFI_MEMORY_ARRAY_TYPE;\r
695\r
696typedef struct {\r
697 UINT32 Reserved :1;\r
698 UINT32 Other :1;\r
699 UINT32 Unknown :1;\r
700 UINT32 FastPaged :1;\r
701 UINT32 StaticColumn :1;\r
702 UINT32 PseudoStatic :1;\r
703 UINT32 Rambus :1;\r
704 UINT32 Synchronous :1;\r
705 UINT32 Cmos :1;\r
706 UINT32 Edo :1;\r
707 UINT32 WindowDram :1;\r
708 UINT32 CacheDram :1;\r
709 UINT32 Nonvolatile :1;\r
710 UINT32 Reserved1 :19;\r
711} EFI_MEMORY_TYPE_DETAIL;\r
712\r
713typedef enum {\r
714 EfiMemoryStateEnabled = 0,\r
715 EfiMemoryStateUnknown = 1,\r
716 EfiMemoryStateUnsupported = 2,\r
717 EfiMemoryStateError = 3,\r
718 EfiMemoryStateAbsent = 4,\r
719 EfiMemoryStateDisabled = 5,\r
720 EfiMemoryStatePartial = 6\r
721} EFI_MEMORY_STATE;\r
722\r
723typedef struct {\r
724 STRING_REF MemoryDeviceLocator;\r
725 STRING_REF MemoryBankLocator;\r
726 STRING_REF MemoryManufacturer;\r
727 STRING_REF MemorySerialNumber;\r
728 STRING_REF MemoryAssetTag;\r
729 STRING_REF MemoryPartNumber;\r
730 EFI_INTER_LINK_DATA MemoryArrayLink;\r
731 EFI_INTER_LINK_DATA MemorySubArrayLink;\r
732 UINT16 MemoryTotalWidth;\r
733 UINT16 MemoryDataWidth;\r
734 EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
735 EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
736 UINT8 MemoryDeviceSet;\r
737 EFI_MEMORY_ARRAY_TYPE MemoryType;\r
738 EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
739 EFI_EXP_BASE10_DATA MemorySpeed;\r
740 EFI_MEMORY_STATE MemoryState;\r
741} EFI_MEMORY_ARRAY_LINK_DATA;\r
742\r
743\r
744#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
745\r
746typedef struct {\r
747 EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
748 EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
749 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
750 UINT16 MemoryArrayPartitionWidth;\r
751} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
752\r
753\r
754#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
755\r
756typedef struct {\r
757 EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
758 EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
759 EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
760 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
761 UINT8 MemoryDevicePartitionRowPosition;\r
762 UINT8 MemoryDeviceInterleavePosition;\r
763 UINT8 MemoryDeviceInterleaveDataDepth;\r
764} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
765\r
766\r
767//\r
768// Memory. Channel Device Type - SMBIOS Type 37\r
769//\r
770\r
771#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006\r
772\r
773typedef enum _EFI_MEMORY_CHANNEL_TYPE {\r
774 EfiMemoryChannelTypeOther = 1,\r
775 EfiMemoryChannelTypeUnknown = 2,\r
776 EfiMemoryChannelTypeRambus = 3,\r
777 EfiMemoryChannelTypeSyncLink = 4\r
778} EFI_MEMORY_CHANNEL_TYPE;\r
779\r
780typedef struct {\r
781 EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
782 UINT8 MemoryChannelMaximumLoad;\r
783 UINT8 MemoryChannelDeviceCount;\r
784} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
785\r
786#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
787\r
788typedef struct {\r
789 UINT8 DeviceId;\r
790 EFI_INTER_LINK_DATA DeviceLink;\r
791 UINT8 MemoryChannelDeviceLoad;\r
792} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
793\r
794//\r
795// Memory. Controller Information - SMBIOS Type 5\r
796//\r
797#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008\r
798\r
799typedef enum { \r
800 EfiErrorDetectingMethodOther = 1,\r
801 EfiErrorDetectingMethodUnknown = 2,\r
802 EfiErrorDetectingMethodNone = 3,\r
803 EfiErrorDetectingMethodParity = 4,\r
804 EfiErrorDetectingMethod32Ecc = 5,\r
805 EfiErrorDetectingMethod64Ecc = 6,\r
806 EfiErrorDetectingMethod128Ecc = 7,\r
807 EfiErrorDetectingMethodCrc = 8\r
808} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;\r
809\r
810typedef struct {\r
811 UINT8 Other :1;\r
812 UINT8 Unknown :1;\r
813 UINT8 None :1;\r
814 UINT8 SingleBitErrorCorrect :1;\r
815 UINT8 DoubleBitErrorCorrect :1;\r
816 UINT8 ErrorScrubbing :1;\r
817 UINT8 Reserved :2;\r
818} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;\r
819\r
820typedef enum { \r
821 EfiMemoryInterleaveOther = 1,\r
822 EfiMemoryInterleaveUnknown = 2,\r
823 EfiMemoryInterleaveOneWay = 3,\r
824 EfiMemoryInterleaveTwoWay = 4,\r
825 EfiMemoryInterleaveFourWay = 5,\r
826 EfiMemoryInterleaveEightWay = 6,\r
827 EfiMemoryInterleaveSixteenWay = 7\r
828} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;\r
829\r
830typedef struct {\r
831 UINT16 Other :1;\r
832 UINT16 Unknown :1;\r
833 UINT16 SeventyNs :1;\r
834 UINT16 SixtyNs :1;\r
835 UINT16 FiftyNs :1;\r
836 UINT16 Reserved :11;\r
837} EFI_MEMORY_SPEED_TYPE;\r
838\r
839typedef struct {\r
840 UINT16 Other :1;\r
841 UINT16 Unknown :1;\r
842 UINT16 Standard :1;\r
843 UINT16 FastPageMode :1;\r
844 UINT16 EDO :1;\r
845 UINT16 Parity :1;\r
846 UINT16 ECC :1;\r
847 UINT16 SIMM :1;\r
848 UINT16 DIMM :1;\r
849 UINT16 BurstEdo :1;\r
850 UINT16 SDRAM :1;\r
851 UINT16 Reserved :5;\r
852} EFI_MEMORY_SUPPORTED_TYPE;\r
853\r
854typedef struct {\r
855 UINT8 Five :1;\r
856 UINT8 There :1;\r
857 UINT8 Two :1;\r
858 UINT8 Reserved :5;\r
859} EFI_MEMORY_MODULE_VOLTAGE_TYPE;\r
860\r
861typedef struct {\r
862 EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;\r
863 EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;\r
864 EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemorySupportedInterleave;\r
865 EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemoryCurrentInterleave;\r
866 UINT8 MaxMemoryModuleSize;\r
867 EFI_MEMORY_SPEED_TYPE MemorySpeedType;\r
868 EFI_MEMORY_SUPPORTED_TYPE MemorySupportedType;\r
869 EFI_MEMORY_MODULE_VOLTAGE_TYPE MemoryModuleVoltage;\r
870 UINT8 NumberofMemorySlot;\r
871 EFI_MEMORY_ERROR_CORRECT_CAPABILITY EnabledCorrectingCapability;\r
872 UINT16 *MemoryModuleConfigHandles;\r
873} EFI_MEMORY_CONTROLLER_INFORMATION;\r
874\r
875//\r
876// Memory. Error Information - SMBIOS Type 18\r
877//\r
878#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009\r
879\r
880typedef enum { \r
881 EfiMemoryErrorOther = 1,\r
882 EfiMemoryErrorUnknown = 2,\r
883 EfiMemoryErrorOk = 3,\r
884 EfiMemoryErrorBadRead = 4,\r
885 EfiMemoryErrorParity = 5,\r
886 EfiMemoryErrorSigleBit = 6,\r
887 EfiMemoryErrorDoubleBit = 7,\r
888 EfiMemoryErrorMultiBit = 8,\r
889 EfiMemoryErrorNibble = 9,\r
890 EfiMemoryErrorChecksum = 10,\r
891 EfiMemoryErrorCrc = 11,\r
892 EfiMemoryErrorCorrectSingleBit = 12,\r
893 EfiMemoryErrorCorrected = 13,\r
894 EfiMemoryErrorUnCorrectable = 14\r
895} EFI_MEMORY_ERROR_TYPE;\r
896\r
897typedef enum { \r
898 EfiMemoryGranularityOther = 1,\r
899 EfiMemoryGranularityOtherUnknown = 2,\r
900 EfiMemoryGranularityDeviceLevel = 3,\r
901 EfiMemoryGranularityMemPartitionLevel = 4\r
902} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
903\r
904typedef enum { \r
905 EfiMemoryErrorOperationOther = 1,\r
906 EfiMemoryErrorOperationUnknown = 2,\r
907 EfiMemoryErrorOperationRead = 3,\r
908 EfiMemoryErrorOperationWrite = 4,\r
909 EfiMemoryErrorOperationPartialWrite = 5\r
910} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
911\r
912typedef struct {\r
913 EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
914 EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
915 EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;\r
916 UINT32 VendorSyndrome;\r
917 UINT32 MemoryArrayErrorAddress;\r
918 UINT32 DeviceErrorAddress;\r
919 UINT32 DeviceErrorResolution;\r
920} EFI_MEMORY_32BIT_ERROR_INFORMATION;\r
921\r
922//\r
923// Memory. Error Information - SMBIOS Type 33\r
924//\r
925#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A\r
926\r
927typedef struct {\r
928 EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
929 EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
930 EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;\r
931 UINT32 VendorSyndrome;\r
932 UINT64 MemoryArrayErrorAddress;\r
933 UINT64 DeviceErrorAddress;\r
934 UINT32 DeviceErrorResolution;\r
935} EFI_MEMORY_64BIT_ERROR_INFORMATION;\r
936\r
937typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
938 EFI_MEMORY_SIZE_DATA SizeData;\r
939 EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
940 EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;\r
941 EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;\r
942 EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;\r
943 EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;\r
944 EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;\r
945 EFI_MEMORY_CONTROLLER_INFORMATION MemoryControllerInfo;\r
946 EFI_MEMORY_32BIT_ERROR_INFORMATION Memory32bitErrorInfo;\r
947 EFI_MEMORY_64BIT_ERROR_INFORMATION Memory64bitErrorInfo;\r
948} EFI_MEMORY_SUBCLASS_RECORDS;\r
949\r
950typedef struct {\r
951 EFI_SUBCLASS_TYPE1_HEADER Header;\r
952 EFI_MEMORY_SUBCLASS_RECORDS Record;\r
953} EFI_MEMORY_SUBCLASS_DRIVER_DATA;\r
954\r
955#define EFI_MISC_SUBCLASS_VERSION 0x0100\r
956\r
957#pragma pack(1)\r
958//\r
959//////////////////////////////////////////////////////////////////////////////\r
960//\r
961// Last PCI Bus Number\r
962//\r
963#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001\r
964\r
965typedef struct {\r
966 UINT8 LastPciBus;\r
967} EFI_MISC_LAST_PCI_BUS_DATA;\r
968\r
969//\r
970//////////////////////////////////////////////////////////////////////////////\r
971//\r
972// Misc. BIOS Vendor - SMBIOS Type 0\r
973//\r
974#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002\r
975\r
976typedef struct {\r
977 UINT64 Reserved1 :2;\r
978 UINT64 Unknown :1;\r
979 UINT64 BiosCharacteristicsNotSupported :1;\r
980 UINT64 IsaIsSupported :1;\r
981 UINT64 McaIsSupported :1;\r
982 UINT64 EisaIsSupported :1;\r
983 UINT64 PciIsSupported :1;\r
984 UINT64 PcmciaIsSupported :1;\r
985 UINT64 PlugAndPlayIsSupported :1;\r
986 UINT64 ApmIsSupported :1;\r
987 UINT64 BiosIsUpgradable :1;\r
988 UINT64 BiosShadowingAllowed :1;\r
989 UINT64 VlVesaIsSupported :1;\r
990 UINT64 EscdSupportIsAvailable :1;\r
991 UINT64 BootFromCdIsSupported :1;\r
992 UINT64 SelectableBootIsSupported :1;\r
993 UINT64 RomBiosIsSocketed :1;\r
994 UINT64 BootFromPcmciaIsSupported :1;\r
995 UINT64 EDDSpecificationIsSupported :1;\r
996 UINT64 JapaneseNecFloppyIsSupported :1;\r
997 UINT64 JapaneseToshibaFloppyIsSupported :1;\r
998 UINT64 Floppy525_360IsSupported :1;\r
999 UINT64 Floppy525_12IsSupported :1;\r
1000 UINT64 Floppy35_720IsSupported :1;\r
1001 UINT64 Floppy35_288IsSupported :1;\r
1002 UINT64 PrintScreenIsSupported :1;\r
1003 UINT64 Keyboard8042IsSupported :1;\r
1004 UINT64 SerialIsSupported :1;\r
1005 UINT64 PrinterIsSupported :1;\r
1006 UINT64 CgaMonoIsSupported :1;\r
1007 UINT64 NecPc98 :1;\r
1008 UINT64 AcpiIsSupported :1;\r
1009 UINT64 UsbLegacyIsSupported :1;\r
1010 UINT64 AgpIsSupported :1;\r
1011 UINT64 I20BootIsSupported :1;\r
1012 UINT64 Ls120BootIsSupported :1;\r
1013 UINT64 AtapiZipDriveBootIsSupported :1;\r
1014 UINT64 Boot1394IsSupported :1;\r
1015 UINT64 SmartBatteryIsSupported :1;\r
1016 UINT64 BiosBootSpecIsSupported :1;\r
1017 UINT64 FunctionKeyNetworkBootIsSupported :1;\r
1018 UINT64 Reserved :22;\r
1019} EFI_MISC_BIOS_CHARACTERISTICS;\r
1020\r
1021typedef struct {\r
1022 UINT64 BiosReserved :16;\r
1023 UINT64 SystemReserved :16;\r
1024 UINT64 Reserved :32;\r
1025} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;\r
1026\r
1027typedef struct {\r
1028 STRING_REF BiosVendor;\r
1029 STRING_REF BiosVersion;\r
1030 STRING_REF BiosReleaseDate;\r
1031 EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
1032 EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
1033 EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
1034 EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;\r
1035 UINT8 BiosMajorRelease;\r
1036 UINT8 BiosMinorRelease;\r
1037 UINT8 BiosEmbeddedFirmwareMajorRelease;\r
1038 UINT8 BiosEmbeddedFirmwareMinorRelease;\r
1039} EFI_MISC_BIOS_VENDOR_DATA;\r
1040\r
1041//\r
1042//////////////////////////////////////////////////////////////////////////////\r
1043//\r
1044// Misc. System Manufacturer - SMBIOS Type 1\r
1045//\r
1046#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003\r
1047\r
1048typedef enum {\r
1049 EfiSystemWakeupTypeReserved = 0,\r
1050 EfiSystemWakeupTypeOther = 1,\r
1051 EfiSystemWakeupTypeUnknown = 2,\r
1052 EfiSystemWakeupTypeApmTimer = 3,\r
1053 EfiSystemWakeupTypeModemRing = 4,\r
1054 EfiSystemWakeupTypeLanRemote = 5,\r
1055 EfiSystemWakeupTypePowerSwitch = 6,\r
1056 EfiSystemWakeupTypePciPme = 7,\r
1057 EfiSystemWakeupTypeAcPowerRestored = 8,\r
1058} EFI_MISC_SYSTEM_WAKEUP_TYPE;\r
1059\r
1060typedef struct {\r
1061 STRING_REF SystemManufacturer;\r
1062 STRING_REF SystemProductName;\r
1063 STRING_REF SystemVersion;\r
1064 STRING_REF SystemSerialNumber;\r
1065 EFI_GUID SystemUuid;\r
1066 EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
1067 STRING_REF SystemSKUNumber;\r
1068 STRING_REF SystemFamily;\r
1069} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
1070\r
1071//\r
1072//////////////////////////////////////////////////////////////////////////////\r
1073//\r
1074// Misc. Base Board Manufacturer - SMBIOS Type 2\r
1075//\r
1076#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004\r
1077\r
1078typedef struct {\r
1079 UINT32 Motherboard :1;\r
1080 UINT32 RequiresDaughterCard :1;\r
1081 UINT32 Removable :1;\r
1082 UINT32 Replaceable :1;\r
1083 UINT32 HotSwappable :1;\r
1084 UINT32 Reserved :27;\r
1085} EFI_BASE_BOARD_FEATURE_FLAGS;\r
1086\r
1087typedef enum {\r
1088 EfiBaseBoardTypeUnknown = 1,\r
1089 EfiBaseBoardTypeOther = 2,\r
1090 EfiBaseBoardTypeServerBlade = 3,\r
1091 EfiBaseBoardTypeConnectivitySwitch = 4,\r
1092 EfiBaseBoardTypeSystemManagementModule = 5,\r
1093 EfiBaseBoardTypeProcessorModule = 6,\r
1094 EfiBaseBoardTypeIOModule = 7,\r
1095 EfiBaseBoardTypeMemoryModule = 8,\r
1096 EfiBaseBoardTypeDaughterBoard = 9,\r
1097 EfiBaseBoardTypeMotherBoard = 0xA,\r
1098 EfiBaseBoardTypeProcessorMemoryModule = 0xB,\r
1099 EfiBaseBoardTypeProcessorIOModule = 0xC,\r
1100 EfiBaseBoardTypeInterconnectBoard = 0xD,\r
1101} EFI_BASE_BOARD_TYPE;\r
1102\r
1103typedef struct {\r
1104 STRING_REF BaseBoardManufacturer;\r
1105 STRING_REF BaseBoardProductName;\r
1106 STRING_REF BaseBoardVersion;\r
1107 STRING_REF BaseBoardSerialNumber;\r
1108 STRING_REF BaseBoardAssetTag;\r
1109 STRING_REF BaseBoardChassisLocation;\r
1110 EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;\r
1111 EFI_BASE_BOARD_TYPE BaseBoardType;\r
1112 EFI_INTER_LINK_DATA BaseBoardChassisLink;\r
1113 UINT32 BaseBoardNumberLinks;\r
1114 EFI_INTER_LINK_DATA LinkN;\r
1115} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;\r
1116\r
1117//\r
1118//////////////////////////////////////////////////////////////////////////////\r
1119//\r
1120// Misc. System/Chassis Enclosure - SMBIOS Type 3\r
1121//\r
1122#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005\r
1123\r
1124typedef enum {\r
1125 EfiMiscChassisTypeOther = 0x1,\r
1126 EfiMiscChassisTypeUnknown = 0x2,\r
1127 EfiMiscChassisTypeDeskTop = 0x3,\r
1128 EfiMiscChassisTypeLowProfileDesktop = 0x4,\r
1129 EfiMiscChassisTypePizzaBox = 0x5,\r
1130 EfiMiscChassisTypeMiniTower = 0x6,\r
1131 EfiMiscChassisTypeTower = 0x7,\r
1132 EfiMiscChassisTypePortable = 0x8,\r
1133 EfiMiscChassisTypeLapTop = 0x9,\r
1134 EfiMiscChassisTypeNotebook = 0xA,\r
1135 EfiMiscChassisTypeHandHeld = 0xB,\r
1136 EfiMiscChassisTypeDockingStation = 0xC,\r
1137 EfiMiscChassisTypeAllInOne = 0xD,\r
1138 EfiMiscChassisTypeSubNotebook = 0xE,\r
1139 EfiMiscChassisTypeSpaceSaving = 0xF,\r
1140 EfiMiscChassisTypeLunchBox = 0x10,\r
1141 EfiMiscChassisTypeMainServerChassis = 0x11,\r
1142 EfiMiscChassisTypeExpansionChassis = 0x12,\r
1143 EfiMiscChassisTypeSubChassis = 0x13,\r
1144 EfiMiscChassisTypeBusExpansionChassis = 0x14,\r
1145 EfiMiscChassisTypePeripheralChassis = 0x15,\r
1146 EfiMiscChassisTypeRaidChassis = 0x16,\r
1147 EfiMiscChassisTypeRackMountChassis = 0x17,\r
1148 EfiMiscChassisTypeSealedCasePc = 0x18,\r
1149 EfiMiscChassisMultiSystemChassis = 0x19,\r
1150} EFI_MISC_CHASSIS_TYPE;\r
1151\r
1152typedef struct {\r
1153 UINT32 ChassisType :16;\r
1154 UINT32 ChassisLockPresent:1;\r
1155 UINT32 Reserved :15;\r
1156} EFI_MISC_CHASSIS_STATUS;\r
1157\r
1158typedef enum {\r
1159 EfiChassisStateOther = 0x01,\r
1160 EfiChassisStateUnknown = 0x02,\r
1161 EfiChassisStateSafe = 0x03,\r
1162 EfiChassisStateWarning = 0x04,\r
1163 EfiChassisStateCritical = 0x05,\r
1164 EfiChassisStateNonRecoverable = 0x06,\r
1165} EFI_MISC_CHASSIS_STATE;\r
1166\r
1167typedef enum {\r
1168 EfiChassisSecurityStatusOther = 0x01,\r
1169 EfiChassisSecurityStatusUnknown = 0x02,\r
1170 EfiChassisSecurityStatusNone = 0x03,\r
1171 EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,\r
1172 EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05,\r
1173} EFI_MISC_CHASSIS_SECURITY_STATE;\r
1174\r
1175typedef struct {\r
1176 UINT32 RecordType :1;\r
1177 UINT32 Reserved :24;\r
1178} EFI_MISC_ELEMENT_TYPE;\r
1179\r
1180typedef struct {\r
1181 EFI_MISC_ELEMENT_TYPE ChassisElementType;\r
1182 EFI_INTER_LINK_DATA ChassisElementStructure;\r
1183 EFI_BASE_BOARD_TYPE ChassisBaseBoard;\r
1184 UINT32 ChassisElementMinimum;\r
1185 UINT32 ChassisElementMaximum;\r
1186} EFI_MISC_ELEMENTS;\r
1187\r
1188typedef struct {\r
1189 STRING_REF ChassisManufacturer;\r
1190 STRING_REF ChassisVersion;\r
1191 STRING_REF ChassisSerialNumber;\r
1192 STRING_REF ChassisAssetTag;\r
1193 EFI_MISC_CHASSIS_STATUS ChassisType;\r
1194 EFI_MISC_CHASSIS_STATE ChassisBootupState;\r
1195 EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;\r
1196 EFI_MISC_CHASSIS_STATE ChassisThermalState;\r
1197 EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;\r
1198 UINT32 ChassisOemDefined;\r
1199 UINT32 ChassisHeight;\r
1200 UINT32 ChassisNumberPowerCords;\r
1201 UINT32 ChassisElementCount;\r
1202 UINT32 ChassisElementRecordLength;//\r
1203 EFI_MISC_ELEMENTS ChassisElements;\r
1204} EFI_MISC_CHASSIS_MANUFACTURER_DATA;\r
1205\r
1206//\r
1207//////////////////////////////////////////////////////////////////////////////\r
1208//\r
1209// Misc. Port Connector Information - SMBIOS Type 8\r
1210//\r
1211#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006\r
1212\r
1213typedef enum {\r
1214 EfiPortConnectorTypeNone = 0x00,\r
1215 EfiPortConnectorTypeCentronics = 0x01,\r
1216 EfiPortConnectorTypeMiniCentronics = 0x02,\r
1217 EfiPortConnectorTypeProprietary = 0x03,\r
1218 EfiPortConnectorTypeDB25Male = 0x04,\r
1219 EfiPortConnectorTypeDB25Female = 0x05,\r
1220 EfiPortConnectorTypeDB15Male = 0x06,\r
1221 EfiPortConnectorTypeDB15Female = 0x07,\r
1222 EfiPortConnectorTypeDB9Male = 0x08,\r
1223 EfiPortConnectorTypeDB9Female = 0x09,\r
1224 EfiPortConnectorTypeRJ11 = 0x0A,\r
1225 EfiPortConnectorTypeRJ45 = 0x0B,\r
1226 EfiPortConnectorType50PinMiniScsi = 0x0C,\r
1227 EfiPortConnectorTypeMiniDin = 0x0D,\r
1228 EfiPortConnectorTypeMicriDin = 0x0E,\r
1229 EfiPortConnectorTypePS2 = 0x0F,\r
1230 EfiPortConnectorTypeInfrared = 0x10,\r
1231 EfiPortConnectorTypeHpHil = 0x11,\r
1232 EfiPortConnectorTypeUsb = 0x12,\r
1233 EfiPortConnectorTypeSsaScsi = 0x13,\r
1234 EfiPortConnectorTypeCircularDin8Male = 0x14,\r
1235 EfiPortConnectorTypeCircularDin8Female = 0x15,\r
1236 EfiPortConnectorTypeOnboardIde = 0x16,\r
1237 EfiPortConnectorTypeOnboardFloppy = 0x17,\r
1238 EfiPortConnectorType9PinDualInline = 0x18,\r
1239 EfiPortConnectorType25PinDualInline = 0x19,\r
1240 EfiPortConnectorType50PinDualInline = 0x1A,\r
1241 EfiPortConnectorType68PinDualInline = 0x1B,\r
1242 EfiPortConnectorTypeOnboardSoundInput = 0x1C,\r
1243 EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,\r
1244 EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,\r
1245 EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
1246 EfiPortConnectorTypeBNC = 0x20,\r
1247 EfiPortConnectorType1394 = 0x21,\r
1248 EfiPortConnectorTypePC98 = 0xA0,\r
1249 EfiPortConnectorTypePC98Hireso = 0xA1,\r
1250 EfiPortConnectorTypePCH98 = 0xA2,\r
1251 EfiPortConnectorTypePC98Note = 0xA3,\r
1252 EfiPortConnectorTypePC98Full = 0xA4,\r
1253 EfiPortConnectorTypeOther = 0xFF,\r
1254} EFI_MISC_PORT_CONNECTOR_TYPE;\r
1255\r
1256typedef enum {\r
1257 EfiPortTypeNone = 0x00,\r
1258 EfiPortTypeParallelXtAtCompatible = 0x01,\r
1259 EfiPortTypeParallelPortPs2 = 0x02,\r
1260 EfiPortTypeParallelPortEcp = 0x03,\r
1261 EfiPortTypeParallelPortEpp = 0x04,\r
1262 EfiPortTypeParallelPortEcpEpp = 0x05,\r
1263 EfiPortTypeSerialXtAtCompatible = 0x06,\r
1264 EfiPortTypeSerial16450Compatible = 0x07,\r
1265 EfiPortTypeSerial16550Compatible = 0x08,\r
1266 EfiPortTypeSerial16550ACompatible = 0x09,\r
1267 EfiPortTypeScsi = 0x0A,\r
1268 EfiPortTypeMidi = 0x0B,\r
1269 EfiPortTypeJoyStick = 0x0C,\r
1270 EfiPortTypeKeyboard = 0x0D,\r
1271 EfiPortTypeMouse = 0x0E,\r
1272 EfiPortTypeSsaScsi = 0x0F,\r
1273 EfiPortTypeUsb = 0x10,\r
1274 EfiPortTypeFireWire = 0x11,\r
1275 EfiPortTypePcmciaTypeI = 0x12,\r
1276 EfiPortTypePcmciaTypeII = 0x13,\r
1277 EfiPortTypePcmciaTypeIII = 0x14,\r
1278 EfiPortTypeCardBus = 0x15,\r
1279 EfiPortTypeAccessBusPort = 0x16,\r
1280 EfiPortTypeScsiII = 0x17,\r
1281 EfiPortTypeScsiWide = 0x18,\r
1282 EfiPortTypePC98 = 0x19,\r
1283 EfiPortTypePC98Hireso = 0x1A,\r
1284 EfiPortTypePCH98 = 0x1B,\r
1285 EfiPortTypeVideoPort = 0x1C,\r
1286 EfiPortTypeAudioPort = 0x1D,\r
1287 EfiPortTypeModemPort = 0x1E,\r
1288 EfiPortTypeNetworkPort = 0x1F,\r
1289 EfiPortType8251Compatible = 0xA0,\r
1290 EfiPortType8251FifoCompatible = 0xA1,\r
1291 EfiPortTypeOther = 0xFF,\r
1292} EFI_MISC_PORT_TYPE;\r
1293\r
1294typedef struct {\r
1295 STRING_REF PortInternalConnectorDesignator;\r
1296 STRING_REF PortExternalConnectorDesignator;\r
1297 EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
1298 EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
1299 EFI_MISC_PORT_TYPE PortType;\r
1300 EFI_MISC_PORT_DEVICE_PATH PortPath;\r
1301} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
1302\r
1303//\r
1304//////////////////////////////////////////////////////////////////////////////\r
1305//\r
1306// Misc. System Slots - SMBIOS Type 9\r
1307//\r
1308#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007\r
1309\r
1310typedef enum {\r
1311 EfiSlotTypeOther = 0x01,\r
1312 EfiSlotTypeUnknown = 0x02,\r
1313 EfiSlotTypeIsa = 0x03,\r
1314 EfiSlotTypeMca = 0x04,\r
1315 EfiSlotTypeEisa = 0x05,\r
1316 EfiSlotTypePci = 0x06,\r
1317 EfiSlotTypePcmcia = 0x07,\r
1318 EfiSlotTypeVlVesa = 0x08,\r
1319 EfiSlotTypeProprietary = 0x09,\r
1320 EfiSlotTypeProcessorCardSlot = 0x0A,\r
1321 EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,\r
1322 EfiSlotTypeIORiserCardSlot = 0x0C,\r
1323 EfiSlotTypeNuBus = 0x0D,\r
1324 EfiSlotTypePci66MhzCapable = 0x0E,\r
1325 EfiSlotTypeAgp = 0x0F,\r
1326 EfiSlotTypeApg2X = 0x10,\r
1327 EfiSlotTypeAgp4X = 0x11,\r
1328 EfiSlotTypePciX = 0x12,\r
1329 EfiSlotTypeAgp4x = 0x13,\r
1330 EfiSlotTypePC98C20 = 0xA0,\r
1331 EfiSlotTypePC98C24 = 0xA1,\r
1332 EfiSlotTypePC98E = 0xA2,\r
1333 EfiSlotTypePC98LocalBus = 0xA3,\r
1334 EfiSlotTypePC98Card = 0xA4,\r
1335 EfiSlotTypePciExpress = 0xA5\r
1336} EFI_MISC_SLOT_TYPE;\r
1337\r
1338typedef enum {\r
1339 EfiSlotDataBusWidthOther = 0x01,\r
1340 EfiSlotDataBusWidthUnknown = 0x02,\r
1341 EfiSlotDataBusWidth8Bit = 0x03,\r
1342 EfiSlotDataBusWidth16Bit = 0x04,\r
1343 EfiSlotDataBusWidth32Bit = 0x05,\r
1344 EfiSlotDataBusWidth64Bit = 0x06,\r
1345 EfiSlotDataBusWidth128Bit = 0x07,\r
1346} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
1347\r
1348typedef enum {\r
1349 EfiSlotUsageOther = 1,\r
1350 EfiSlotUsageUnknown = 2,\r
1351 EfiSlotUsageAvailable = 3,\r
1352 EfiSlotUsageInUse = 4,\r
1353} EFI_MISC_SLOT_USAGE;\r
1354\r
1355typedef enum {\r
1356 EfiSlotLengthOther = 1,\r
1357 EfiSlotLengthUnknown = 2,\r
1358 EfiSlotLengthShort = 3,\r
1359 EfiSlotLengthLong = 4\r
1360} EFI_MISC_SLOT_LENGTH;\r
1361\r
1362typedef struct {\r
1363 UINT32 CharacteristicsUnknown :1;\r
1364 UINT32 Provides50Volts :1;\r
1365 UINT32 Provides33Volts :1;\r
1366 UINT32 SharedSlot :1;\r
1367 UINT32 PcCard16Supported :1;\r
1368 UINT32 CardBusSupported :1;\r
1369 UINT32 ZoomVideoSupported :1;\r
1370 UINT32 ModemRingResumeSupported:1;\r
1371 UINT32 PmeSignalSupported :1;\r
1372 UINT32 HotPlugDevicesSupported :1;\r
1373 UINT32 SmbusSignalSupported :1;\r
1374 UINT32 Reserved :21;\r
1375} EFI_MISC_SLOT_CHARACTERISTICS;\r
1376\r
1377typedef struct {\r
1378 STRING_REF SlotDesignation;\r
1379 EFI_MISC_SLOT_TYPE SlotType;\r
1380 EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;\r
1381 EFI_MISC_SLOT_USAGE SlotUsage;\r
1382 EFI_MISC_SLOT_LENGTH SlotLength;\r
1383 UINT16 SlotId;\r
1384 EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;\r
1385 EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;\r
1386} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;\r
1387\r
1388//\r
1389//////////////////////////////////////////////////////////////////////////////\r
1390//\r
1391// Misc. Onboard Device - SMBIOS Type 10\r
1392//\r
1393#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008\r
1394\r
1395typedef enum {\r
1396 EfiOnBoardDeviceTypeOther = 1,\r
1397 EfiOnBoardDeviceTypeUnknown = 2,\r
1398 EfiOnBoardDeviceTypeVideo = 3,\r
1399 EfiOnBoardDeviceTypeScsiController = 4,\r
1400 EfiOnBoardDeviceTypeEthernet = 5,\r
1401 EfiOnBoardDeviceTypeTokenRing = 6,\r
1402 EfiOnBoardDeviceTypeSound = 7,\r
1403} EFI_MISC_ONBOARD_DEVICE_TYPE;\r
1404\r
1405typedef struct {\r
1406 UINT32 DeviceType :16;\r
1407 UINT32 DeviceEnabled :1;\r
1408 UINT32 Reserved :15;\r
1409} EFI_MISC_ONBOARD_DEVICE_STATUS;\r
1410\r
1411typedef struct {\r
1412 STRING_REF OnBoardDeviceDescription;\r
1413 EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
1414 EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
1415} EFI_MISC_ONBOARD_DEVICE_DATA;\r
1416\r
1417//\r
1418//////////////////////////////////////////////////////////////////////////////\r
1419//\r
1420// Misc. BIOS Language Information - SMBIOS Type 11\r
1421//\r
1422#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009\r
1423\r
1424typedef struct {\r
1425 STRING_REF OemStringRef[1];\r
1426} EFI_MISC_OEM_STRING_DATA;\r
1427\r
1428//\r
1429//////////////////////////////////////////////////////////////////////////////\r
1430//\r
1431// Misc. System Options - SMBIOS Type 12\r
1432//\r
1433typedef struct {\r
1434 STRING_REF SystemOptionStringRef[1];\r
1435} EFI_MISC_SYSTEM_OPTION_STRING_DATA;\r
1436\r
1437#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A\r
1438\r
1439//\r
1440//////////////////////////////////////////////////////////////////////////////\r
1441//\r
1442// Misc. Number of Installable Languages - SMBIOS Type 13\r
1443//\r
1444#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B\r
1445\r
1446typedef struct {\r
1447 UINT32 AbbreviatedLanguageFormat :1;\r
1448 UINT32 Reserved :31;\r
1449} EFI_MISC_LANGUAGE_FLAGS;\r
1450\r
1451typedef struct {\r
1452 UINT16 NumberOfInstallableLanguages;\r
1453 EFI_MISC_LANGUAGE_FLAGS LanguageFlags;\r
1454 UINT16 CurrentLanguageNumber;\r
1455} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;\r
1456\r
1457//\r
1458//////////////////////////////////////////////////////////////////////////////\r
1459//\r
1460// Misc. System Language String\r
1461//\r
1462#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C\r
1463\r
1464typedef struct {\r
1465 UINT16 LanguageId;\r
1466 STRING_REF SystemLanguageString;\r
1467} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;\r
1468\r
1469//\r
1470//////////////////////////////////////////////////////////////////////////////\r
1471//\r
1472// Group Associations - SMBIOS Type 14\r
1473//\r
1474#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D\r
1475\r
1476typedef struct {\r
1477 STRING_REF GroupName;\r
1478 UINT16 NumberGroupItems;\r
1479 UINT16 GroupId;\r
1480} EFI_MISC_GROUP_NAME_DATA;\r
1481\r
1482//\r
1483//////////////////////////////////////////////////////////////////////////////\r
1484//\r
1485// Group Item Set Element\r
1486//\r
1487#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E\r
1488\r
1489typedef struct {\r
1490 EFI_GUID SubClass;\r
1491 EFI_INTER_LINK_DATA GroupLink;\r
1492 UINT16 GroupId;\r
1493 UINT16 GroupElementId;\r
1494} EFI_MISC_GROUP_ITEM_SET_DATA;\r
1495\r
1496//\r
1497//////////////////////////////////////////////////////////////////////////////\r
1498//\r
1499// Misc. Pointing Device Type - SMBIOS Type 21\r
1500//\r
1501#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F\r
1502\r
1503typedef enum {\r
1504 EfiPointingDeviceTypeOther = 0x01,\r
1505 EfiPointingDeviceTypeUnknown = 0x02,\r
1506 EfiPointingDeviceTypeMouse = 0x03,\r
1507 EfiPointingDeviceTypeTrackBall = 0x04,\r
1508 EfiPointingDeviceTypeTrackPoint = 0x05,\r
1509 EfiPointingDeviceTypeGlidePoint = 0x06,\r
1510 EfiPointingDeviceTouchPad = 0x07,\r
1511 EfiPointingDeviceTouchScreen = 0x08,\r
1512 EfiPointingDeviceOpticalSensor = 0x09,\r
1513} EFI_MISC_POINTING_DEVICE_TYPE;\r
1514\r
1515typedef enum {\r
1516 EfiPointingDeviceInterfaceOther = 0x01,\r
1517 EfiPointingDeviceInterfaceUnknown = 0x02,\r
1518 EfiPointingDeviceInterfaceSerial = 0x03,\r
1519 EfiPointingDeviceInterfacePs2 = 0x04,\r
1520 EfiPointingDeviceInterfaceInfrared = 0x05,\r
1521 EfiPointingDeviceInterfaceHpHil = 0x06,\r
1522 EfiPointingDeviceInterfaceBusMouse = 0x07,\r
1523 EfiPointingDeviceInterfaceADB = 0x08,\r
1524 EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,\r
1525 EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,\r
1526 EfiPointingDeviceInterfaceUsb = 0xA2,\r
1527} EFI_MISC_POINTING_DEVICE_INTERFACE;\r
1528\r
1529typedef struct {\r
1530 EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;\r
1531 EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
1532 UINT16 NumberPointingDeviceButtons;\r
1533 EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
1534} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
1535\r
1536//\r
1537//////////////////////////////////////////////////////////////////////////////\r
1538//\r
1539// Portable Battery - SMBIOS Type 22\r
1540//\r
1541#define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010\r
1542\r
1543typedef enum { \r
1544 EfiPortableBatteryDeviceChemistryOther = 1,\r
1545 EfiPortableBatteryDeviceChemistryUnknown = 2,\r
1546 EfiPortableBatteryDeviceChemistryLeadAcid = 3,\r
1547 EfiPortableBatteryDeviceChemistryNickelCadmium = 4,\r
1548 EfiPortableBatteryDeviceChemistryNickelMetalHydride = 5,\r
1549 EfiPortableBatteryDeviceChemistryLithiumIon = 6,\r
1550 EfiPortableBatteryDeviceChemistryZincAir = 7,\r
1551 EfiPortableBatteryDeviceChemistryLithiumPolymer = 8,\r
1552} EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;\r
1553\r
1554typedef struct {\r
1555 STRING_REF Location;\r
1556 STRING_REF Manufacturer;\r
1557 STRING_REF ManufactureDate;\r
1558 STRING_REF SerialNumber;\r
1559 STRING_REF DeviceName;\r
1560 EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY DeviceChemistry;\r
1561 UINT16 DesignCapacity;\r
1562 UINT16 DesignVoltage;\r
1563 STRING_REF SBDSVersionNumber;\r
1564 UINT8 MaximumError;\r
1565 UINT16 SBDSSerialNumber;\r
1566 UINT16 SBDSManufactureDate;\r
1567 STRING_REF SBDSDeviceChemistry;\r
1568 UINT8 DesignCapacityMultiplier;\r
1569 UINT32 OEMSpecific; \r
1570 UINT8 BatteryNumber; // Temporary \r
1571 BOOLEAN Valid; // Is entry valid - Temporary\r
1572} EFI_MISC_PORTABLE_BATTERY;\r
1573\r
1574//\r
1575//////////////////////////////////////////////////////////////////////////////\r
1576//\r
1577// Misc. Reset Capabilities - SMBIOS Type 23\r
1578//\r
1579#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011\r
1580\r
1581typedef struct {\r
1582 UINT32 Status :1;\r
1583 UINT32 BootOption :2;\r
1584 UINT32 BootOptionOnLimit :2;\r
1585 UINT32 WatchdogTimerPresent:1;\r
1586 UINT32 Reserved :26;\r
1587} EFI_MISC_RESET_CAPABILITIES_TYPE;\r
1588\r
1589typedef struct {\r
1590 EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;\r
1591 UINT16 ResetCount;\r
1592 UINT16 ResetLimit;\r
1593 UINT16 ResetTimerInterval;\r
1594 UINT16 ResetTimeout;\r
1595} EFI_MISC_RESET_CAPABILITIES;\r
1596\r
1597typedef struct {\r
1598 EFI_MISC_RESET_CAPABILITIES ResetCapabilities;\r
1599 UINT16 ResetCount;\r
1600 UINT16 ResetLimit;\r
1601 UINT16 ResetTimerInterval;\r
1602 UINT16 ResetTimeout;\r
1603} EFI_MISC_RESET_CAPABILITIES_DATA;\r
1604\r
1605//\r
1606//////////////////////////////////////////////////////////////////////////////\r
1607//\r
1608// Misc. Hardware Security - SMBIOS Type 24\r
1609//\r
1610#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012\r
1611\r
1612typedef enum {\r
1613 EfiHardwareSecurityStatusDisabled = 0,\r
1614 EfiHardwareSecurityStatusEnabled = 1,\r
1615 EfiHardwareSecurityStatusNotImplemented = 2,\r
1616 EfiHardwareSecurityStatusUnknown = 3\r
1617} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
1618\r
1619typedef struct {\r
1620 EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
1621 EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
1622 EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
1623 EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
1624 EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
1625} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
1626\r
1627typedef struct {\r
1628 EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;\r
1629} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;\r
1630\r
1631//\r
1632//////////////////////////////////////////////////////////////////////////////\r
1633//\r
1634// System Power Controls - SMBIOS Type 25\r
1635//\r
1636#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013\r
1637\r
1638typedef struct {\r
1639 UINT16 ScheduledPoweronMonth;\r
1640 UINT16 ScheduledPoweronDayOfMonth;\r
1641 UINT16 ScheduledPoweronHour;\r
1642 UINT16 ScheduledPoweronMinute;\r
1643 UINT16 ScheduledPoweronSecond;\r
1644} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;\r
1645\r
1646//\r
1647//////////////////////////////////////////////////////////////////////////////\r
1648//\r
1649// Voltage Probe - SMBIOS Type 26\r
1650//\r
1651#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014\r
1652\r
1653typedef struct {\r
1654 UINT32 VoltageProbeSite :5;\r
1655 UINT32 VoltageProbeStatus :3;\r
1656 UINT32 Reserved :24;\r
1657} EFI_MISC_VOLTAGE_PROBE_LOCATION;\r
1658\r
1659typedef struct {\r
1660 STRING_REF VoltageProbeDescription;\r
1661 EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;\r
1662 EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;\r
1663 EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;\r
1664 EFI_EXP_BASE10_DATA VoltageProbeResolution;\r
1665 EFI_EXP_BASE10_DATA VoltageProbeTolerance;\r
1666 EFI_EXP_BASE10_DATA VoltageProbeAccuracy;\r
1667 EFI_EXP_BASE10_DATA VoltageProbeNominalValue;\r
1668 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1669 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1670 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1671 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1672 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1673 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1674 UINT32 VoltageProbeOemDefined;\r
1675} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;\r
1676\r
1677//\r
1678//////////////////////////////////////////////////////////////////////////////\r
1679//\r
1680// Cooling Device - SMBIOS Type 27\r
1681//\r
1682#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015\r
1683\r
1684typedef struct {\r
1685 UINT32 CoolingDevice :5;\r
1686 UINT32 CoolingDeviceStatus :3;\r
1687 UINT32 Reserved :24;\r
1688} EFI_MISC_COOLING_DEVICE_TYPE;\r
1689\r
1690typedef struct {\r
1691 EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
1692 EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
1693 UINT16 CoolingDeviceUnitGroup;\r
1694 EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
1695 UINT32 CoolingDeviceOemDefined;\r
1696} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
1697\r
1698//\r
1699//////////////////////////////////////////////////////////////////////////////\r
1700//\r
1701// Temperature Probe - SMBIOS Type 28\r
1702//\r
1703#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016\r
1704\r
1705typedef struct {\r
1706 UINT32 TemperatureProbeSite :5;\r
1707 UINT32 TemperatureProbeStatus :3;\r
1708 UINT32 Reserved :24;\r
1709} EFI_MISC_TEMPERATURE_PROBE_LOCATION;\r
1710\r
1711typedef struct {\r
1712 STRING_REF TemperatureProbeDescription;\r
1713 EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
1714 TemperatureProbeLocation;\r
1715 EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
1716 EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
1717 EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
1718 EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
1719 EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
1720 EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
1721 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1722 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1723 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1724 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1725 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1726 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1727 UINT32 TemperatureProbeOemDefined;\r
1728} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
1729\r
1730//\r
1731//////////////////////////////////////////////////////////////////////////////\r
1732//\r
1733// Electrical Current Probe - SMBIOS Type 29\r
1734//\r
1735\r
1736#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017\r
1737\r
1738typedef struct {\r
1739 UINT32 ElectricalCurrentProbeSite :5;\r
1740 UINT32 ElectricalCurrentProbeStatus :3;\r
1741 UINT32 Reserved :24;\r
1742} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;\r
1743\r
1744typedef struct {\r
1745 STRING_REF ElectricalCurrentProbeDescription;\r
1746 EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION\r
1747 ElectricalCurrentProbeLocation;\r
1748 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;\r
1749 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;\r
1750 EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;\r
1751 EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;\r
1752 EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;\r
1753 EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;\r
1754 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1755 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1756 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1757 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1758 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1759 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1760 UINT32 ElectricalCurrentProbeOemDefined;\r
1761} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;\r
1762\r
1763//\r
1764//////////////////////////////////////////////////////////////////////////////\r
1765//\r
1766// Out-of-Band Remote Access - SMBIOS Type 30\r
1767//\r
1768\r
1769#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018\r
1770\r
1771typedef struct {\r
1772 UINT32 InboundConnectionEnabled :1;\r
1773 UINT32 OutboundConnectionEnabled :1;\r
1774 UINT32 Reserved :30;\r
1775} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;\r
1776\r
1777typedef struct {\r
1778 STRING_REF RemoteAccessManufacturerNameDescription;\r
1779 EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;\r
1780} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;\r
1781\r
1782//\r
1783//////////////////////////////////////////////////////////////////////////////\r
1784//\r
1785// Misc. BIS Entry Point - SMBIOS Type 31\r
1786//\r
1787#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019\r
1788\r
1789typedef struct {\r
1790 EFI_PHYSICAL_ADDRESS BisEntryPoint;\r
1791} EFI_MISC_BIS_ENTRY_POINT_DATA;\r
1792\r
1793//\r
1794//////////////////////////////////////////////////////////////////////////////\r
1795//\r
1796// Misc. Boot Information - SMBIOS Type 32\r
1797//\r
1798#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
1799\r
1800typedef enum {\r
1801 EfiBootInformationStatusNoError = 0x00,\r
1802 EfiBootInformationStatusNoBootableMedia = 0x01,\r
1803 EfiBootInformationStatusNormalOSFailedLoading = 0x02,\r
1804 EfiBootInformationStatusFirmwareDetectedFailure = 0x03,\r
1805 EfiBootInformationStatusOSDetectedFailure = 0x04,\r
1806 EfiBootInformationStatusUserRequestedBoot = 0x05,\r
1807 EfiBootInformationStatusSystemSecurityViolation = 0x06,\r
1808 EfiBootInformationStatusPreviousRequestedImage = 0x07,\r
1809 EfiBootInformationStatusWatchdogTimerExpired = 0x08,\r
1810 EfiBootInformationStatusStartReserved = 0x09,\r
1811 EfiBootInformationStatusStartOemSpecific = 0x80,\r
1812 EfiBootInformationStatusStartProductSpecific = 0xC0,\r
1813} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
1814\r
1815typedef struct {\r
1816 EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
1817 UINT8 BootInformationData[9];\r
1818} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
1819\r
1820//\r
1821//////////////////////////////////////////////////////////////////////////////\r
1822//\r
1823// Management Device - SMBIOS Type 34\r
1824//\r
1825#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B\r
1826\r
1827typedef enum {\r
1828 EfiManagementDeviceTypeOther = 0x01,\r
1829 EfiManagementDeviceTypeUnknown = 0x02,\r
1830 EfiManagementDeviceTypeLm75 = 0x03,\r
1831 EfiManagementDeviceTypeLm78 = 0x04,\r
1832 EfiManagementDeviceTypeLm79 = 0x05,\r
1833 EfiManagementDeviceTypeLm80 = 0x06,\r
1834 EfiManagementDeviceTypeLm81 = 0x07,\r
1835 EfiManagementDeviceTypeAdm9240 = 0x08,\r
1836 EfiManagementDeviceTypeDs1780 = 0x09,\r
1837 EfiManagementDeviceTypeMaxim1617 = 0x0A,\r
1838 EfiManagementDeviceTypeGl518Sm = 0x0B,\r
1839 EfiManagementDeviceTypeW83781D = 0x0C,\r
1840 EfiManagementDeviceTypeHt82H791 = 0x0D,\r
1841} EFI_MISC_MANAGEMENT_DEVICE_TYPE;\r
1842\r
1843typedef enum {\r
1844 EfiManagementDeviceAddressTypeOther = 1,\r
1845 EfiManagementDeviceAddressTypeUnknown = 2,\r
1846 EfiManagementDeviceAddressTypeIOPort = 3,\r
1847 EfiManagementDeviceAddressTypeMemory = 4,\r
1848 EfiManagementDeviceAddressTypeSmbus = 5\r
1849} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;\r
1850\r
1851typedef struct {\r
1852 STRING_REF ManagementDeviceDescription;\r
1853 EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;\r
1854 UINTN ManagementDeviceAddress;\r
1855 EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE\r
1856 ManagementDeviceAddressType;\r
1857} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;\r
1858\r
1859//\r
1860//////////////////////////////////////////////////////////////////////////////\r
1861//\r
1862// Management Device Component - SMBIOS Type 35\r
1863//\r
1864\r
1865#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C\r
1866\r
1867typedef struct {\r
1868 STRING_REF ManagementDeviceComponentDescription;\r
1869 EFI_INTER_LINK_DATA ManagementDeviceLink;\r
1870 EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
1871 EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
1872} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
1873\r
1874//\r
1875//////////////////////////////////////////////////////////////////////////////\r
1876//\r
1877// IPMI Data Record - SMBIOS Type 38\r
1878//\r
1879typedef enum {\r
1880 EfiIpmiOther = 0,\r
1881 EfiIpmiKcs = 1,\r
1882 EfiIpmiSmic = 2,\r
1883 EfiIpmiBt = 3,\r
1884} EFI_MISC_IPMI_INTERFACE_TYPE;\r
1885\r
1886typedef struct {\r
1887 UINT16 IpmiSpecLeastSignificantDigit:4;\r
1888 UINT16 IpmiSpecMostSignificantDigit: 4;\r
1889 UINT16 Reserved: 8;\r
1890} EFI_MISC_IPMI_SPECIFICATION_REVISION;\r
1891\r
1892typedef struct {\r
1893 EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
1894 EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;\r
1895 UINT16 IpmiI2CSlaveAddress;\r
1896 UINT16 IpmiNvDeviceAddress;\r
1897 UINT64 IpmiBaseAddress;\r
1898 EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;\r
1899} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
1900\r
1901#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
1902\r
1903//\r
1904//////////////////////////////////////////////////////////////////////////////\r
1905//\r
1906//System Power supply Record - SMBIOS Type 39\r
1907//\r
1908typedef struct {\r
1909 UINT16 PowerSupplyHotReplaceable :1;\r
1910 UINT16 PowerSupplyPresent :1;\r
1911 UINT16 PowerSupplyUnplugged :1;\r
1912 UINT16 InputVoltageRangeSwitch :4;\r
1913 UINT16 PowerSupplyStatus :3;\r
1914 UINT16 PowerSupplyType :4;\r
1915 UINT16 Reserved :2;\r
1916} POWER_SUPPLY_CHARACTERISTICS;\r
1917\r
1918typedef struct {\r
1919 UINT16 PowerUnitGroup;\r
1920 STRING_REF PowerSupplyLocation;\r
1921 STRING_REF PowerSupplyDeviceName;\r
1922 STRING_REF PowerSupplyManufacturer;\r
1923 STRING_REF PowerSupplySerialNumber;\r
1924 STRING_REF PowerSupplyAssetTagNumber;\r
1925 STRING_REF PowerSupplyModelPartNumber;\r
1926 STRING_REF PowerSupplyRevisionLevel;\r
1927 UINT16 PowerSupplyMaxPowerCapacity;\r
1928 POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
1929 EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
1930 EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
1931 EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
1932} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\r
1933\r
1934#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
1935\r
1936//\r
1937//////////////////////////////////////////////////////////////////////////////\r
1938//\r
1939// OEM Data Record - SMBIOS Type 0x80-0xFF\r
1940//\r
1941typedef struct {\r
1942 UINT8 Type;\r
1943 UINT8 Length;\r
1944 UINT16 Handle;\r
1945} SMBIOS_STRUCTURE_HDR;\r
1946\r
1947typedef struct {\r
1948 SMBIOS_STRUCTURE_HDR Header;\r
1949 UINT8 RawData[1];\r
1950} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
1951\r
1952#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
1953\r
1954//\r
1955//////////////////////////////////////////////////////////////////////////////\r
1956//\r
1957// Misc. System Event Log - SMBIOS Type 15\r
1958//\r
1959#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020\r
1960typedef struct {\r
1961 //SMBIOS_STRUCTURE_HDR Header;\r
1962 UINT16 LogAreaLength;\r
1963 UINT16 LogHeaderStartOffset;\r
1964 UINT16 LogDataStartOffset;\r
1965 UINT8 AccessMethod;\r
1966 UINT8 LogStatus;\r
1967 UINT32 LogChangeToken;\r
1968 UINT32 AccessMethodAddress;\r
1969 UINT8 LogHeaderFormat;\r
1970 UINT8 NumberOfSupportedLogType;\r
1971 UINT8 LengthOfLogDescriptor;\r
1972} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
1973\r
1974//\r
1975// Access Method.\r
1976// 0x00~0x04: as following definition\r
1977// 0x05~0x7f: Available for future assignment.\r
1978// 0x80~0xff: BIOS Vendor/OEM-specific.\r
1979// \r
1980#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
1981#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
1982#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
1983#define ACCESS_MEMORY_MAPPED 0x03\r
1984#define ACCESS_GPNV 0x04\r
1985\r
1986//\r
1987//////////////////////////////////////////////////////////////////////////////\r
1988//\r
1989//Management Device Threshold Data Record - SMBIOS Type 36\r
1990//\r
1991#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021\r
1992\r
1993typedef struct {\r
1994 UINT16 LowerThresNonCritical;\r
1995 UINT16 UpperThresNonCritical;\r
1996 UINT16 LowerThresCritical;\r
1997 UINT16 UpperThresCritical;\r
1998 UINT16 LowerThresNonRecover;\r
1999 UINT16 UpperThresNonRecover;\r
2000} EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD;\r
2001\r
2002//\r
2003// Declare the following strutures alias to use them more conviniently.\r
2004//\r
2005typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;\r
2006typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;\r
2007typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;\r
2008typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;\r
2009typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;\r
2010typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
2011typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
2012typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
2013typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
2014typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
2015typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
2016typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\r
2017typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;\r
2018typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;\r
2019typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;\r
2020typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;\r
2021typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
2022typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;\r
2023typedef EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA EFI_MISC_SCHEDULED_POWER_ON_MONTH;\r
2024typedef EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;\r
2025typedef EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA EFI_MISC_COOLING_DEVICE_TEMP_LINK;\r
2026typedef EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION;\r
2027typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA \r
2028 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;\r
2029typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;\r
2030typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;\r
2031\r
2032typedef union {\r
2033 EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
2034 EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
2035 EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;\r
2036 EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;\r
2037 EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;\r
2038 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;\r
2039 EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;\r
2040 EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;\r
2041 EFI_MISC_OEM_STRING_DATA MiscOemString;\r
2042 EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;\r
2043 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;\r
2044 EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;\r
2045 EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
2046 EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
2047 EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
2048 EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
2049 EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
2050 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
2051 EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
2052 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;\r
2053 EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;\r
2054 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;\r
2055 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;\r
2056 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
2057 MiscRemoteAccessManufacturerDescriptionData;\r
2058 EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;\r
2059 EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;\r
2060 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;\r
2061 EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
2062 MiscmangementDeviceComponentDescriptionData;\r
2063 EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
2064 EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
2065 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;\r
2066 EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;\r
2067} EFI_MISC_SUBCLASS_RECORDS;\r
2068\r
2069//\r
2070//\r
2071//\r
2072typedef struct {\r
2073 EFI_SUBCLASS_TYPE1_HEADER Header;\r
2074 EFI_MISC_SUBCLASS_RECORDS Record;\r
2075} EFI_MISC_SUBCLASS_DRIVER_DATA;\r
2076\r
2077#pragma pack()\r
2078\r
2079//\r
2080// Sub Class Header type1\r
2081//\r
2082\r
2083#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
2084#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
2085\r
2086#endif\r