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