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