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