]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h
901a464487c53f24efeba0224c51fcc2acf595f6
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassMisc.h
1 /*++
2
3 Copyright (c) 2004 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 DataHubSubClassMisc.h
15
16 Abstract:
17
18 Definitions for Misc sub class data records
19
20 Revision History
21
22 --*/
23
24 #ifndef _DATAHUB_SUBCLASS_MISC_H_
25 #define _DATAHUB_SUBCLASS_MISC_H_
26
27 #include EFI_GUID_DEFINITION(DataHubRecords)
28
29 #define EFI_MISC_SUBCLASS_GUID \
30 { 0x772484B2, 0x7482, 0x4b91, 0x9F, 0x9A, 0xAD, 0x43, 0xF8, 0x1C, 0x58, 0x81 }
31
32 #define EFI_MISC_SUBCLASS_VERSION 0x0100
33
34 #pragma pack(1)
35 //
36 //////////////////////////////////////////////////////////////////////////////
37 //
38 // Last PCI Bus Number
39 //
40 #define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001
41
42 typedef struct {
43 UINT8 LastPciBus;
44 } EFI_MISC_LAST_PCI_BUS;
45
46 //
47 //////////////////////////////////////////////////////////////////////////////
48 //
49 // Misc. BIOS Vendor - SMBIOS Type 0
50 //
51 #define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002
52
53 typedef struct {
54 UINT32 Reserved1 :2;
55 UINT32 Unknown :1;
56 UINT32 BiosCharacteristicsNotSupported :1;
57 UINT32 IsaIsSupported :1;
58 UINT32 McaIsSupported :1;
59 UINT32 EisaIsSupported :1;
60 UINT32 PciIsSupported :1;
61 UINT32 PcmciaIsSupported :1;
62 UINT32 PlugAndPlayIsSupported :1;
63 UINT32 ApmIsSupported :1;
64 UINT32 BiosIsUpgradable :1;
65 UINT32 BiosShadowingAllowed :1;
66 UINT32 VlVesaIsSupported :1;
67 UINT32 EscdSupportIsAvailable :1;
68 UINT32 BootFromCdIsSupported :1;
69 UINT32 SelectableBootIsSupported :1;
70 UINT32 RomBiosIsSocketed :1;
71 UINT32 BootFromPcmciaIsSupported :1;
72 UINT32 EDDSpecificationIsSupported :1;
73 UINT32 JapaneseNecFloppyIsSupported :1;
74 UINT32 JapaneseToshibaFloppyIsSupported :1;
75 UINT32 Floppy525_360IsSupported :1;
76 UINT32 Floppy525_12IsSupported :1;
77 UINT32 Floppy35_720IsSupported :1;
78 UINT32 Floppy35_288IsSupported :1;
79 UINT32 PrintScreenIsSupported :1;
80 UINT32 Keyboard8042IsSupported :1;
81 UINT32 SerialIsSupported :1;
82 UINT32 PrinterIsSupported :1;
83 UINT32 CgaMonoIsSupported :1;
84 UINT32 NecPc98 :1;
85 UINT32 AcpiIsSupported :1;
86 UINT32 UsbLegacyIsSupported :1;
87 UINT32 AgpIsSupported :1;
88 UINT32 I20BootIsSupported :1;
89 UINT32 Ls120BootIsSupported :1;
90 UINT32 AtapiZipDriveBootIsSupported :1;
91 UINT32 Boot1394IsSupported :1;
92 UINT32 SmartBatteryIsSupported :1;
93 UINT32 BiosBootSpecIsSupported :1;
94 UINT32 FunctionKeyNetworkBootIsSupported :1;
95 UINT32 TargetContentDistributionEnabled :1;
96 UINT32 Reserved :21;
97 } EFI_MISC_BIOS_CHARACTERISTICS;
98
99 typedef struct {
100 UINT32 BiosReserved :16;
101 UINT32 SystemReserved :16;
102 UINT32 Reserved :32;
103 } EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;
104
105 typedef struct {
106 STRING_REF BiosVendor;
107 STRING_REF BiosVersion;
108 STRING_REF BiosReleaseDate;
109 EFI_PHYSICAL_ADDRESS BiosStartingAddress;
110 EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;
111 EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;
112 EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;
113 UINT8 BiosMajorRelease;
114 UINT8 BiosMinorRelease;
115 UINT8 BiosEmbeddedFirmwareMajorRelease;
116 UINT8 BiosEmbeddedFirmwareMinorRelease;
117 } EFI_MISC_BIOS_VENDOR;
118
119 //
120 //////////////////////////////////////////////////////////////////////////////
121 //
122 // Misc. System Manufacturer - SMBIOS Type 1
123 //
124 #define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003
125
126 typedef enum {
127 EfiSystemWakeupTypeReserved = 0,
128 EfiSystemWakeupTypeOther = 1,
129 EfiSystemWakeupTypeUnknown = 2,
130 EfiSystemWakeupTypeApmTimer = 3,
131 EfiSystemWakeupTypeModemRing = 4,
132 EfiSystemWakeupTypeLanRemote = 5,
133 EfiSystemWakeupTypePowerSwitch = 6,
134 EfiSystemWakeupTypePciPme = 7,
135 EfiSystemWakeupTypeAcPowerRestored = 8,
136 } EFI_MISC_SYSTEM_WAKEUP_TYPE;
137
138 typedef struct {
139 STRING_REF SystemManufacturer;
140 STRING_REF SystemProductName;
141 STRING_REF SystemVersion;
142 STRING_REF SystemSerialNumber;
143 EFI_GUID SystemUuid;
144 EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;
145 STRING_REF SystemSKUNumber;
146 STRING_REF SystemFamily;
147 } EFI_MISC_SYSTEM_MANUFACTURER;
148
149 //
150 //////////////////////////////////////////////////////////////////////////////
151 //
152 // Misc. Base Board Manufacturer - SMBIOS Type 2
153 //
154 #define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004
155
156 typedef struct {
157 UINT32 Motherboard :1;
158 UINT32 RequiresDaughterCard :1;
159 UINT32 Removable :1;
160 UINT32 Replaceable :1;
161 UINT32 HotSwappable :1;
162 UINT32 Reserved :27;
163 } EFI_BASE_BOARD_FEATURE_FLAGS;
164
165 typedef enum {
166 EfiBaseBoardTypeUnknown = 1,
167 EfiBaseBoardTypeOther = 2,
168 EfiBaseBoardTypeServerBlade = 3,
169 EfiBaseBoardTypeConnectivitySwitch = 4,
170 EfiBaseBoardTypeSystemManagementModule = 5,
171 EfiBaseBoardTypeProcessorModule = 6,
172 EfiBaseBoardTypeIOModule = 7,
173 EfiBaseBoardTypeMemoryModule = 8,
174 EfiBaseBoardTypeDaughterBoard = 9,
175 EfiBaseBoardTypeMotherBoard = 0xA,
176 EfiBaseBoardTypeProcessorMemoryModule = 0xB,
177 EfiBaseBoardTypeProcessorIOModule = 0xC,
178 EfiBaseBoardTypeInterconnectBoard = 0xD,
179 } EFI_BASE_BOARD_TYPE;
180
181 typedef struct {
182 STRING_REF BaseBoardManufacturer;
183 STRING_REF BaseBoardProductName;
184 STRING_REF BaseBoardVersion;
185 STRING_REF BaseBoardSerialNumber;
186 STRING_REF BaseBoardAssetTag;
187 STRING_REF BaseBoardChassisLocation;
188 EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;
189 EFI_BASE_BOARD_TYPE BaseBoardType;
190 EFI_INTER_LINK_DATA BaseBoardChassisLink;
191 UINT32 BaseBoardNumberLinks;
192 EFI_INTER_LINK_DATA LinkN;
193 } EFI_MISC_BASE_BOARD_MANUFACTURER;
194
195 //
196 //////////////////////////////////////////////////////////////////////////////
197 //
198 // Misc. System/Chassis Enclosure - SMBIOS Type 3
199 //
200 #define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005
201
202 typedef enum {
203 EfiMiscChassisTypeOther = 0x1,
204 EfiMiscChassisTypeUnknown = 0x2,
205 EfiMiscChassisTypeDeskTop = 0x3,
206 EfiMiscChassisTypeLowProfileDesktop = 0x4,
207 EfiMiscChassisTypePizzaBox = 0x5,
208 EfiMiscChassisTypeMiniTower = 0x6,
209 EfiMiscChassisTypeTower = 0x7,
210 EfiMiscChassisTypePortable = 0x8,
211 EfiMiscChassisTypeLapTop = 0x9,
212 EfiMiscChassisTypeNotebook = 0xA,
213 EfiMiscChassisTypeHandHeld = 0xB,
214 EfiMiscChassisTypeDockingStation = 0xC,
215 EfiMiscChassisTypeAllInOne = 0xD,
216 EfiMiscChassisTypeSubNotebook = 0xE,
217 EfiMiscChassisTypeSpaceSaving = 0xF,
218 EfiMiscChassisTypeLunchBox = 0x10,
219 EfiMiscChassisTypeMainServerChassis = 0x11,
220 EfiMiscChassisTypeExpansionChassis = 0x12,
221 EfiMiscChassisTypeSubChassis = 0x13,
222 EfiMiscChassisTypeBusExpansionChassis = 0x14,
223 EfiMiscChassisTypePeripheralChassis = 0x15,
224 EfiMiscChassisTypeRaidChassis = 0x16,
225 EfiMiscChassisTypeRackMountChassis = 0x17,
226 EfiMiscChassisTypeSealedCasePc = 0x18,
227 EfiMiscChassisMultiSystemChassis = 0x19,
228 } EFI_MISC_CHASSIS_TYPE;
229
230 typedef struct {
231 UINT32 ChassisType :16;
232 UINT32 ChassisLockPresent:1;
233 UINT32 Reserved :15;
234 } EFI_MISC_CHASSIS_STATUS;
235
236 typedef enum {
237 EfiChassisStateOther = 1,
238 EfiChassisStateUnknown = 2,
239 EfiChassisStateSafe = 3,
240 EfiChassisStateWarning = 4,
241 EfiChassisStateCritical = 5,
242 EfiChassisStateNonRecoverable = 6,
243 } EFI_MISC_CHASSIS_STATE;
244
245 typedef enum {
246 EfiChassisSecurityStatusOther = 1,
247 EfiChassisSecurityStatusUnknown = 2,
248 EfiChassisSecurityStatusNone = 3,
249 EfiChassisSecurityStatusExternalInterfaceLockedOut = 4,
250 EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 5,
251 } EFI_MISC_CHASSIS_SECURITY_STATE;
252
253 typedef struct {
254 UINT32 RecordType :1;
255 UINT32 Reserved :24;
256 } EFI_MISC_ELEMENT_TYPE;
257
258 typedef struct {
259 EFI_MISC_ELEMENT_TYPE ChassisElementType;
260 EFI_INTER_LINK_DATA ChassisElementStructure;
261 EFI_BASE_BOARD_TYPE ChassisBaseBoard;
262 UINT32 ChassisElementMinimum;
263 UINT32 ChassisElementMaximum;
264 } EFI_MISC_ELEMENTS;
265
266 typedef struct {
267 STRING_REF ChassisManufacturer;
268 STRING_REF ChassisVersion;
269 STRING_REF ChassisSerialNumber;
270 STRING_REF ChassisAssetTag;
271 EFI_MISC_CHASSIS_STATUS ChassisType;
272 EFI_MISC_CHASSIS_STATE ChassisBootupState;
273 EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;
274 EFI_MISC_CHASSIS_STATE ChassisThermalState;
275 EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;
276 UINT32 ChassisOemDefined;
277 UINT32 ChassisHeight;
278 UINT32 ChassisNumberPowerCords;
279 UINT32 ChassisElementCount;
280 UINT32 ChassisElementRecordLength;//
281 EFI_MISC_ELEMENTS ChassisElements;
282 } EFI_MISC_CHASSIS_MANUFACTURER;
283
284 //
285 //////////////////////////////////////////////////////////////////////////////
286 //
287 // Misc. Port Connector Information - SMBIOS Type 8
288 //
289 #define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006
290
291 typedef enum {
292 EfiPortConnectorTypeNone = 0x0,
293 EfiPortConnectorTypeCentronics = 0x1,
294 EfiPortConnectorTypeMiniCentronics = 0x2,
295 EfiPortConnectorTypeProprietary = 0x3,
296 EfiPortConnectorTypeDB25Male = 0x4,
297 EfiPortConnectorTypeDB25Female = 0x5,
298 EfiPortConnectorTypeDB15Male = 0x6,
299 EfiPortConnectorTypeDB15Female = 0x7,
300 EfiPortConnectorTypeDB9Male = 0x8,
301 EfiPortConnectorTypeDB9Female = 0x9,
302 EfiPortConnectorTypeRJ11 = 0xA,
303 EfiPortConnectorTypeRJ45 = 0xB,
304 EfiPortConnectorType50PinMiniScsi = 0xC,
305 EfiPortConnectorTypeMiniDin = 0xD,
306 EfiPortConnectorTypeMicriDin = 0xE,
307 EfiPortConnectorTypePS2 = 0xF,
308 EfiPortConnectorTypeInfrared = 0x10,
309 EfiPortConnectorTypeHpHil = 0x11,
310 EfiPortConnectorTypeUsb = 0x12,
311 EfiPortConnectorTypeSsaScsi = 0x13,
312 EfiPortConnectorTypeCircularDin8Male = 0x14,
313 EfiPortConnectorTypeCircularDin8Female = 0x15,
314 EfiPortConnectorTypeOnboardIde = 0x16,
315 EfiPortConnectorTypeOnboardFloppy = 0x17,
316 EfiPortConnectorType9PinDualInline = 0x18,
317 EfiPortConnectorType25PinDualInline = 0x19,
318 EfiPortConnectorType50PinDualInline = 0x1A,
319 EfiPortConnectorType68PinDualInline = 0x1B,
320 EfiPortConnectorTypeOnboardSoundInput = 0x1C,
321 EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,
322 EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,
323 EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,
324 EfiPortConnectorTypeBNC = 0x20,
325 EfiPortConnectorType1394 = 0x21,
326 EfiPortConnectorTypePC98 = 0xA0,
327 EfiPortConnectorTypePC98Hireso = 0xA1,
328 EfiPortConnectorTypePCH98 = 0xA2,
329 EfiPortConnectorTypePC98Note = 0xA3,
330 EfiPortConnectorTypePC98Full = 0xA4,
331 EfiPortConnectorTypeOther = 0xFF,
332 } EFI_MISC_PORT_CONNECTOR_TYPE;
333
334 typedef enum {
335 EfiPortTypeNone = 0x0,
336 EfiPortTypeParallelXtAtCompatible = 0x1,
337 EfiPortTypeParallelPortPs2 = 0x2,
338 EfiPortTypeParallelPortEcp = 0x3,
339 EfiPortTypeParallelPortEpp = 0x4,
340 EfiPortTypeParallelPortEcpEpp = 0x5,
341 EfiPortTypeSerialXtAtCompatible = 0x6,
342 EfiPortTypeSerial16450Compatible = 0x7,
343 EfiPortTypeSerial16550Compatible = 0x8,
344 EfiPortTypeSerial16550ACompatible = 0x9,
345 EfiPortTypeScsi = 0xA,
346 EfiPortTypeMidi = 0xB,
347 EfiPortTypeJoyStick = 0xC,
348 EfiPortTypeKeyboard = 0xD,
349 EfiPortTypeMouse = 0xE,
350 EfiPortTypeSsaScsi = 0xF,
351 EfiPortTypeUsb = 0x10,
352 EfiPortTypeFireWire = 0x11,
353 EfiPortTypePcmciaTypeI = 0x12,
354 EfiPortTypePcmciaTypeII = 0x13,
355 EfiPortTypePcmciaTypeIII = 0x14,
356 EfiPortTypeCardBus = 0x15,
357 EfiPortTypeAccessBusPort = 0x16,
358 EfiPortTypeScsiII = 0x17,
359 EfiPortTypeScsiWide = 0x18,
360 EfiPortTypePC98 = 0x19,
361 EfiPortTypePC98Hireso = 0x1A,
362 EfiPortTypePCH98 = 0x1B,
363 EfiPortTypeVideoPort = 0x1C,
364 EfiPortTypeAudioPort = 0x1D,
365 EfiPortTypeModemPort = 0x1E,
366 EfiPortTypeNetworkPort = 0x1F,
367 EfiPortType8251Compatible = 0xA0,
368 EfiPortType8251FifoCompatible = 0xA1,
369 EfiPortTypeOther = 0xFF,
370 } EFI_MISC_PORT_TYPE;
371
372
373 typedef struct {
374 EFI_STRING_TOKEN PortInternalConnectorDesignator;
375 EFI_STRING_TOKEN PortExternalConnectorDesignator;
376 EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;
377 EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;
378 EFI_MISC_PORT_TYPE PortType;
379 EFI_MISC_PORT_DEVICE_PATH PortPath;
380 } EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;
381
382 //
383 //////////////////////////////////////////////////////////////////////////////
384 //
385 // Misc. System Slots - SMBIOS Type 9
386 //
387 #define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007
388
389 typedef enum {
390 EfiSlotTypeOther = 0x1,
391 EfiSlotTypeUnknown = 0x2,
392 EfiSlotTypeIsa = 0x3,
393 EfiSlotTypeMca = 0x4,
394 EfiSlotTypeEisa = 0x5,
395 EfiSlotTypePci = 0x6,
396 EfiSlotTypePcmcia = 0x7,
397 EfiSlotTypeVlVesa = 0x8,
398 EfiSlotTypeProprietary = 0x9,
399 EfiSlotTypeProcessorCardSlot = 0xA,
400 EfiSlotTypeProprietaryMemoryCardSlot = 0xB,
401 EfiSlotTypeIORiserCardSlot = 0xC,
402 EfiSlotTypeNuBus = 0xD,
403 EfiSlotTypePci66MhzCapable = 0xE,
404 EfiSlotTypeAgp = 0xF,
405 EfiSlotTypeApg2X = 0x10,
406 EfiSlotTypeAgp4X = 0x11,
407 EfiSlotTypePciX = 0x12,
408 EfiSlotTypeAgp4x = 0x13,
409 EfiSlotTypePC98C20 = 0xA0,
410 EfiSlotTypePC98C24 = 0xA1,
411 EfiSlotTypePC98E = 0xA2,
412 EfiSlotTypePC98LocalBus = 0xA3,
413 EfiSlotTypePC98Card = 0xA4,
414 EfiSlotTypePciExpress = 0xA5,
415 } EFI_MISC_SLOT_TYPE;
416
417 typedef enum {
418 EfiSlotDataBusWidthOther = 1,
419 EfiSlotDataBusWidthUnknown = 2,
420 EfiSlotDataBusWidth8Bit = 3,
421 EfiSlotDataBusWidth16Bit = 4,
422 EfiSlotDataBusWidth32Bit = 5,
423 EfiSlotDataBusWidth64Bit = 6,
424 EfiSlotDataBusWidth128Bit = 7,
425 EfiSlotDataBusWidth1xOrx1 = 8,
426 EfiSlotDataBusWidth2xOrx2 = 9,
427 EfiSlotDataBusWidth4xOrx4 = 0xA,
428 EfiSlotDataBusWidth8xOrx8 = 0xB,
429 EfiSlotDataBusWidth12xOrx12 = 0xC,
430 EfiSlotDataBusWidth16xOrx16 = 0xD,
431 EfiSlotDataBusWidth32xOrx32 = 0xE,
432 } EFI_MISC_SLOT_DATA_BUS_WIDTH;
433
434 typedef enum {
435 EfiSlotUsageOther = 1,
436 EfiSlotUsageUnknown = 2,
437 EfiSlotUsageAvailable = 3,
438 EfiSlotUsageInUse = 4,
439 } EFI_MISC_SLOT_USAGE;
440
441 typedef enum {
442 EfiSlotLengthOther = 1,
443 EfiSlotLengthUnknown = 2,
444 EfiSlotLengthShort = 3,
445 EfiSlotLengthLong = 4
446 } EFI_MISC_SLOT_LENGTH;
447
448 typedef struct {
449 UINT32 CharacteristicsUnknown :1;
450 UINT32 Provides50Volts :1;
451 UINT32 Provides33Volts :1;
452 UINT32 SharedSlot :1;
453 UINT32 PcCard16Supported :1;
454 UINT32 CardBusSupported :1;
455 UINT32 ZoomVideoSupported :1;
456 UINT32 ModemRingResumeSupported:1;
457 UINT32 PmeSignalSupported :1;
458 UINT32 HotPlugDevicesSupported :1;
459 UINT32 SmbusSignalSupported :1;
460 UINT32 Reserved :21;
461 } EFI_MISC_SLOT_CHARACTERISTICS;
462
463 typedef struct {
464 STRING_REF SlotDesignation;
465 EFI_MISC_SLOT_TYPE SlotType;
466 EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;
467 EFI_MISC_SLOT_USAGE SlotUsage;
468 EFI_MISC_SLOT_LENGTH SlotLength;
469 UINT16 SlotId;
470 EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;
471 EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;
472 } EFI_MISC_SYSTEM_SLOT_DESIGNATION;
473
474 //
475 //////////////////////////////////////////////////////////////////////////////
476 //
477 // Misc. Onboard Device - SMBIOS Type 10
478 //
479 #define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008
480
481 typedef enum {
482 EfiOnBoardDeviceTypeOther = 1,
483 EfiOnBoardDeviceTypeUnknown = 2,
484 EfiOnBoardDeviceTypeVideo = 3,
485 EfiOnBoardDeviceTypeScsiController = 4,
486 EfiOnBoardDeviceTypeEthernet = 5,
487 EfiOnBoardDeviceTypeTokenRing = 6,
488 EfiOnBoardDeviceTypeSound = 7,
489 } EFI_MISC_ONBOARD_DEVICE_TYPE;
490
491 typedef struct {
492 UINT32 DeviceType :16;
493 UINT32 DeviceEnabled :1;
494 UINT32 Reserved :15;
495 } EFI_MISC_ONBOARD_DEVICE_STATUS;
496
497 typedef struct {
498 STRING_REF OnBoardDeviceDescription;
499 EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;
500 EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;
501 } EFI_MISC_ONBOARD_DEVICE;
502
503 //
504 //////////////////////////////////////////////////////////////////////////////
505 //
506 // Misc. BIOS Language Information - SMBIOS Type 11
507 //
508 #define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009
509
510 typedef struct {
511 STRING_REF OemStringRef[1];
512 } EFI_MISC_OEM_STRING;
513
514 //
515 //////////////////////////////////////////////////////////////////////////////
516 //
517 // Misc. System Options - SMBIOS Type 12
518 //
519 typedef struct {
520 STRING_REF SystemOptionStringRef[1];
521 } EFI_MISC_SYSTEM_OPTION_STRING;
522
523 #define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A
524
525 //
526 //////////////////////////////////////////////////////////////////////////////
527 //
528 // Misc. Number of Installable Languages - SMBIOS Type 13
529 //
530 #define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B
531
532 typedef struct {
533 UINT32 AbbreviatedLanguageFormat :1;
534 UINT32 Reserved :31;
535 } EFI_MISC_LANGUAGE_FLAGS;
536
537 typedef struct {
538 UINT16 NumberOfInstallableLanguages;
539 EFI_MISC_LANGUAGE_FLAGS LanguageFlags;
540 UINT16 CurrentLanguageNumber;
541 } EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;
542
543 //
544 //////////////////////////////////////////////////////////////////////////////
545 //
546 // Misc. System Language String
547 //
548 #define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C
549
550 typedef struct {
551 UINT16 LanguageId;
552 STRING_REF SystemLanguageString;
553 } EFI_MISC_SYSTEM_LANGUAGE_STRING;
554
555 //
556 //////////////////////////////////////////////////////////////////////////////
557 //
558 // Misc. Group Associations - SMBIOS Type 14
559 //
560 #define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D
561
562 typedef struct {
563 STRING_REF GroupName;
564 UINT16 NumberGroupItems;
565 UINT16 GroupId;
566 } EFI_MISC_GROUP_NAME_DATA;
567
568 #define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E
569
570 typedef struct {
571 EFI_GUID SubClass;
572 EFI_INTER_LINK_DATA GroupLink;
573 UINT16 GroupId;
574 UINT16 GroupElementId;
575 } EFI_MISC_GROUP_ITEM_SET_DATA;
576
577 //
578 //////////////////////////////////////////////////////////////////////////////
579 //
580 // Misc. Pointing Device Type - SMBIOS Type 21
581 //
582 #define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F
583
584 typedef enum {
585 EfiPointingDeviceTypeOther = 1,
586 EfiPointingDeviceTypeUnknown = 2,
587 EfiPointingDeviceTypeMouse = 3,
588 EfiPointingDeviceTypeTrackBall = 4,
589 EfiPointingDeviceTypeTrackPoint = 5,
590 EfiPointingDeviceTypeGlidePoint = 6,
591 EfiPointingDeviceTouchPad = 7,
592 EfiPointingDeviceTouchScreen = 8,
593 EfiPointingDeviceOpticalSensor = 9,
594 } EFI_MISC_POINTING_DEVICE_TYPE;
595
596 typedef enum {
597 EfiPointingDeviceInterfaceOther = 1,
598 EfiPointingDeviceInterfaceUnknown = 2,
599 EfiPointingDeviceInterfaceSerial = 3,
600 EfiPointingDeviceInterfacePs2 = 4,
601 EfiPointingDeviceInterfaceInfrared = 5,
602 EfiPointingDeviceInterfaceHpHil = 6,
603 EfiPointingDeviceInterfaceBusMouse = 7,
604 EfiPointingDeviceInterfaceADB = 8,
605 EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,
606 EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,
607 EfiPointingDeviceInterfaceUsb = 0xA2,
608 } EFI_MISC_POINTING_DEVICE_INTERFACE;
609
610 typedef struct {
611 EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;
612 EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;
613 UINT16 NumberPointingDeviceButtons;
614 EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;
615 } EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;
616
617 //
618 //////////////////////////////////////////////////////////////////////////////
619 //
620 // Misc. Portable Battery - SMBIOS Type 22
621 //
622 #define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010
623
624 typedef enum {
625 EfiPortableBatteryDeviceChemistryOther = 1,
626 EfiPortableBatteryDeviceChemistryUnknown = 2,
627 EfiPortableBatteryDeviceChemistryLeadAcid = 3,
628 EfiPortableBatteryDeviceChemistryNickelCadmium = 4,
629 EfiPortableBatteryDeviceChemistryNickelMetalHydride = 5,
630 EfiPortableBatteryDeviceChemistryLithiumIon = 6,
631 EfiPortableBatteryDeviceChemistryZincAir = 7,
632 EfiPortableBatteryDeviceChemistryLithiumPolymer = 8,
633 } EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;
634
635 typedef struct {
636 STRING_REF Location;
637 STRING_REF Manufacturer;
638 STRING_REF ManufactureDate;
639 STRING_REF SerialNumber;
640 STRING_REF DeviceName;
641 EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY DeviceChemistry;
642 UINT16 DesignCapacity;
643 UINT16 DesignVoltage;
644 STRING_REF SBDSVersionNumber;
645 UINT8 MaximumError;
646 UINT16 SBDSSerialNumber;
647 UINT16 SBDSManufactureDate;
648 STRING_REF SBDSDeviceChemistry;
649 UINT8 DesignCapacityMultiplier;
650 UINT32 OEMSpecific;
651 UINT8 BatteryNumber; // Temporary
652 BOOLEAN Valid; // Is entry valid - Temporary
653 } EFI_MISC_PORTABLE_BATTERY;
654
655 //
656 //////////////////////////////////////////////////////////////////////////////
657 //
658 // Misc. Reset Capabilities - SMBIOS Type 23
659 //
660 #define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011
661
662 typedef struct {
663 UINT32 Status :1;
664 UINT32 BootOption :2;
665 UINT32 BootOptionOnLimit :2;
666 UINT32 WatchdogTimerPresent:1;
667 UINT32 Reserved :26;
668 } EFI_MISC_RESET_CAPABILITIES_TYPE;
669
670 typedef struct {
671 EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;
672 UINT16 ResetCount;
673 UINT16 ResetLimit;
674 UINT16 ResetTimerInterval;
675 UINT16 ResetTimeout;
676 } EFI_MISC_RESET_CAPABILITIES;
677
678 typedef struct {
679 EFI_MISC_RESET_CAPABILITIES ResetCapabilities;
680 UINT16 ResetCount;
681 UINT16 ResetLimit;
682 UINT16 ResetTimerInterval;
683 UINT16 ResetTimeout;
684 } EFI_MISC_RESET_CAPABILITIES_DATA;
685
686 //
687 //////////////////////////////////////////////////////////////////////////////
688 //
689 // Misc. Hardware Security - SMBIOS Type 24
690 //
691 #define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012
692
693 typedef enum {
694 EfiHardwareSecurityStatusDisabled = 0,
695 EfiHardwareSecurityStatusEnabled = 1,
696 EfiHardwareSecurityStatusNotImplemented = 2,
697 EfiHardwareSecurityStatusUnknown = 3
698 } EFI_MISC_HARDWARE_SECURITY_STATUS;
699
700 typedef struct {
701 EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;
702 EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;
703 EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;
704 EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;
705 EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;
706 } EFI_MISC_HARDWARE_SECURITY_SETTINGS;
707
708 typedef struct {
709 EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;
710 } EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;
711
712 //
713 //////////////////////////////////////////////////////////////////////////////
714 //
715 // Misc. System Power Controls - SMBIOS Type 25
716 //
717 #define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013
718
719 typedef struct {
720 UINT8 ScheduledPoweronMonth;
721 UINT8 ScheduledPoweronDayOfMonth;
722 UINT8 ScheduledPoweronHour;
723 UINT8 ScheduledPoweronMinute;
724 UINT8 ScheduledPoweronSecond;
725 } EFI_MISC_SCHEDULED_POWER_ON_MONTH;
726
727 //
728 //////////////////////////////////////////////////////////////////////////////
729 //
730 // Misc. Voltage Probe - SMBIOS Type 26
731 //
732 #define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014
733
734 typedef struct {
735 UINT32 VoltageProbeSite :5;
736 UINT32 VoltageProbeStatus :3;
737 UINT32 Reserved :24;
738 } EFI_MISC_VOLTAGE_PROBE_LOCATION;
739
740 typedef struct {
741 STRING_REF VoltageProbeDescription;
742 EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;
743 UINT16 VoltageProbeMaximumValue;
744 UINT16 VoltageProbeMinimumValue;
745 UINT16 VoltageProbeResolution;
746 UINT16 VoltageProbeTolerance;
747 UINT16 VoltageProbeAccuracy;
748 UINT16 VoltageProbeNominalValue;
749 UINT16 MDLowerNoncriticalThreshold;
750 UINT16 MDUpperNoncriticalThreshold;
751 UINT16 MDLowerCriticalThreshold;
752 UINT16 MDUpperCriticalThreshold;
753 UINT16 MDLowerNonrecoverableThreshold;
754 UINT16 MDUpperNonrecoverableThreshold;
755 UINT32 VoltageProbeOemDefined;
756 } EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;
757
758 //
759 //////////////////////////////////////////////////////////////////////////////
760 //
761 // Misc. Cooling Device - SMBIOS Type 27
762 //
763 #define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015
764
765 typedef struct {
766 UINT32 CoolingDevice :5;
767 UINT32 CoolingDeviceStatus :3;
768 UINT32 Reserved :24;
769 } EFI_MISC_COOLING_DEVICE_TYPE;
770
771 typedef struct {
772 EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;
773 EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;
774 UINT8 CoolingDeviceUnitGroup;
775 UINT16 CoolingDeviceNominalSpeed;
776 UINT32 CoolingDeviceOemDefined;
777 } EFI_MISC_COOLING_DEVICE_TEMP_LINK;
778
779 //
780 //////////////////////////////////////////////////////////////////////////////
781 //
782 // Misc. Temperature Probe - SMBIOS Type 28
783 //
784 #define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016
785
786 typedef struct {
787 UINT32 TemperatureProbeSite :5;
788 UINT32 TemperatureProbeStatus :3;
789 UINT32 Reserved :24;
790 } EFI_MISC_TEMPERATURE_PROBE_LOCATION;
791
792 typedef struct {
793 STRING_REF TemperatureProbeDescription;
794 EFI_MISC_TEMPERATURE_PROBE_LOCATION TemperatureProbeLocation;
795 UINT16 TemperatureProbeMaximumValue;
796 UINT16 TemperatureProbeMinimumValue;
797 UINT16 TemperatureProbeResolution;
798 UINT16 TemperatureProbeTolerance;
799 UINT16 TemperatureProbeAccuracy;
800 UINT16 TemperatureProbeNominalValue;
801 UINT16 MDLowerNoncriticalThreshold;
802 UINT16 MDUpperNoncriticalThreshold;
803 UINT16 MDLowerCriticalThreshold;
804 UINT16 MDUpperCriticalThreshold;
805 UINT16 MDLowerNonrecoverableThreshold;
806 UINT16 MDUpperNonrecoverableThreshold;
807 UINT32 TemperatureProbeOemDefined;
808 } EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION;
809
810 //
811 //////////////////////////////////////////////////////////////////////////////
812 //
813 // Misc. Electrical Current Probe - SMBIOS Type 29
814 //
815 #define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017
816
817 typedef struct {
818 UINT32 ElectricalCurrentProbeSite :5;
819 UINT32 ElectricalCurrentProbeStatus :3;
820 UINT32 Reserved :24;
821 } EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;
822
823 typedef struct {
824 STRING_REF ElectricalCurrentProbeDescription;
825 EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION ElectricalCurrentProbeLocation;
826 UINT16 ElectricalCurrentProbeMaximumValue;
827 UINT16 ElectricalCurrentProbeMinimumValue;
828 UINT16 ElectricalCurrentProbeResolution;
829 UINT16 ElectricalCurrentProbeTolerance;
830 UINT16 ElectricalCurrentProbeAccuracy;
831 UINT16 ElectricalCurrentProbeNominalValue;
832 UINT16 MDLowerNoncriticalThreshold;
833 UINT16 MDUpperNoncriticalThreshold;
834 UINT16 MDLowerCriticalThreshold;
835 UINT16 MDUpperCriticalThreshold;
836 UINT16 MDLowerNonrecoverableThreshold;
837 UINT16 MDUpperNonrecoverableThreshold;
838 UINT32 ElectricalCurrentProbeOemDefined;
839 } EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;
840
841 //
842 //////////////////////////////////////////////////////////////////////////////
843 //
844 // Misc. Out-of-Band Remote Access - SMBIOS Type 30
845 //
846 #define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018
847
848 typedef struct {
849 UINT32 InboundConnectionEnabled :1;
850 UINT32 OutboundConnectionEnabled :1;
851 UINT32 Reserved :30;
852 } EFI_MISC_REMOTE_ACCESS_CONNECTIONS;
853
854 typedef struct {
855 STRING_REF RemoteAccessManufacturerNameDescription;
856 EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;
857 } EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;
858 //
859 //////////////////////////////////////////////////////////////////////////////
860 //
861 // Misc. BIS Entry Point - SMBIOS Type 31
862 //
863 #define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019
864
865 typedef struct {
866 EFI_PHYSICAL_ADDRESS BisEntryPoint;
867 } EFI_MISC_BIS_ENTRY_POINT;
868
869 //
870 //////////////////////////////////////////////////////////////////////////////
871 //
872 // Misc. Boot Information - SMBIOS Type 32
873 //
874 #define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A
875
876 typedef enum {
877 EfiBootInformationStatusNoError = 0,
878 EfiBootInformationStatusNoBootableMedia = 1,
879 EfiBootInformationStatusNormalOSFailedLoading = 2,
880 EfiBootInformationStatusFirmwareDetectedFailure = 3,
881 EfiBootInformationStatusOSDetectedFailure = 4,
882 EfiBootInformationStatusUserRequestedBoot = 5,
883 EfiBootInformationStatusSystemSecurityViolation = 6,
884 EfiBootInformationStatusPreviousRequestedImage = 7,
885 EfiBootInformationStatusWatchdogTimerExpired = 8,
886 EfiBootInformationStatusStartReserved = 9,
887 EfiBootInformationStatusStartOemSpecific = 128,
888 EfiBootInformationStatusStartProductSpecific = 192,
889 } EFI_MISC_BOOT_INFORMATION_STATUS_TYPE;
890
891 typedef struct {
892 EFI_MISC_BOOT_INFORMATION_STATUS_TYPE BootInformationStatus;
893 UINT8 BootInformationData[9];
894 } EFI_MISC_BOOT_INFORMATION_STATUS;
895
896 //
897 //////////////////////////////////////////////////////////////////////////////
898 //
899 // Misc. Management Device - SMBIOS Type 34
900 //
901 #define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B
902
903 typedef enum {
904 EfiManagementDeviceTypeOther = 1,
905 EfiManagementDeviceTypeUnknown = 2,
906 EfiManagementDeviceTypeLm75 = 3,
907 EfiManagementDeviceTypeLm78 = 4,
908 EfiManagementDeviceTypeLm79 = 5,
909 EfiManagementDeviceTypeLm80 = 6,
910 EfiManagementDeviceTypeLm81 = 7,
911 EfiManagementDeviceTypeAdm9240 = 8,
912 EfiManagementDeviceTypeDs1780 = 9,
913 EfiManagementDeviceTypeMaxim1617 = 0xA,
914 EfiManagementDeviceTypeGl518Sm = 0xB,
915 EfiManagementDeviceTypeW83781D = 0xC,
916 EfiManagementDeviceTypeHt82H791 = 0xD
917 } EFI_MISC_MANAGEMENT_DEVICE_TYPE;
918
919 typedef enum {
920 EfiManagementDeviceAddressTypeOther = 1,
921 EfiManagementDeviceAddressTypeUnknown = 2,
922 EfiManagementDeviceAddressTypeIOPort = 3,
923 EfiManagementDeviceAddressTypeMemory = 4,
924 EfiManagementDeviceAddressTypeSmbus = 5
925 } EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;
926
927 typedef struct {
928 STRING_REF ManagementDeviceDescription;
929 EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;
930 UINTN ManagementDeviceAddress;
931 EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE ManagementDeviceAddressType;
932 } EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;
933
934 //
935 //////////////////////////////////////////////////////////////////////////////
936 //
937 // Misc. Management Device Component - SMBIOS Type 35
938 //
939 #define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C
940
941 typedef struct {
942 STRING_REF ManagementDeviceComponentDescription;
943 EFI_INTER_LINK_DATA ManagementDeviceLink;
944 EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
945 EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
946 } EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;
947
948 //
949 //////////////////////////////////////////////////////////////////////////////
950 //
951 // IPMI Data Record - SMBIOS Type 38
952 //
953 typedef enum {
954 EfiIpmiOther = 0,
955 EfiIpmiKcs = 1,
956 EfiIpmiSmic = 2,
957 EfiIpmiBt = 3,
958 } EFI_MISC_IPMI_INTERFACE_TYPE;
959
960 typedef struct {
961 UINT16 IpmiSpecLeastSignificantDigit:4;
962 UINT16 IpmiSpecMostSignificantDigit:4;
963 UINT16 Reserved:8;
964 } EFI_MISC_IPMI_SPECIFICATION_REVISION;
965
966 typedef struct {
967 EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;
968 EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;
969 UINT16 IpmiI2CSlaveAddress;
970 UINT16 IpmiNvDeviceAddress;
971 UINT64 IpmiBaseAddress;
972 EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;
973 } EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
974
975 #define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
976
977 //
978 //////////////////////////////////////////////////////////////////////////////
979 //
980 //System Power supply Record - SMBIOS Type 39
981 //
982 typedef struct {
983 UINT16 PowerSupplyHotReplaceable :1;
984 UINT16 PowerSupplyPresent :1;
985 UINT16 PowerSupplyUnplugged :1;
986 UINT16 InputVoltageRangeSwitch :4;
987 UINT16 PowerSupplyStatus :3;
988 UINT16 PowerSupplyType :4;
989 UINT16 Reserved :2;
990 } POWER_SUPPLY_CHARACTERISTICS;
991
992 typedef struct {
993 UINT8 PowerUnitGroup;
994 STRING_REF PowerSupplyLocation;
995 STRING_REF PowerSupplyDeviceName;
996 STRING_REF PowerSupplyManufacturer;
997 STRING_REF PowerSupplySerialNumber;
998 STRING_REF PowerSupplyAssetTagNumber;
999 STRING_REF PowerSupplyModelPartNumber;
1000 STRING_REF PowerSupplyRevisionLevel;
1001 UINT16 PowerSupplyMaxPowerCapacity;
1002 POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;
1003 EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;
1004 EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;
1005 EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;
1006 } EFI_MISC_SYSTEM_POWER_SUPPLY;
1007
1008 #define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E
1009
1010 //
1011 //////////////////////////////////////////////////////////////////////////////
1012 //
1013 // Generic Data Record - All SMBIOS Type
1014 // Put smbios raw data into one datahub record directly. Smbios driver would
1015 // copy smbios raw data into smbios table but not take any translation.
1016 //
1017 typedef struct {
1018 UINT8 Type;
1019 UINT8 Length;
1020 UINT16 Handle;
1021 } SMBIOS_STRUCTURE_HDR;
1022
1023 typedef struct {
1024 SMBIOS_STRUCTURE_HDR Header;
1025 UINT8 RawData[1];
1026 } EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;
1027
1028 #define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F
1029
1030 //
1031 //////////////////////////////////////////////////////////////////////////////
1032 //
1033 // Misc. System Event Log - SMBIOS Type 15
1034 //
1035 #define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020
1036 typedef struct {
1037 //SMBIOS_STRUCTURE_HDR Header;
1038 UINT16 LogAreaLength;
1039 UINT16 LogHeaderStartOffset;
1040 UINT16 LogDataStartOffset;
1041 UINT8 AccessMethod;
1042 UINT8 LogStatus;
1043 UINT32 LogChangeToken;
1044 UINT32 AccessMethodAddress;
1045 UINT8 LogHeaderFormat;
1046 UINT8 NumberOfSupportedLogType;
1047 UINT8 LengthOfLogDescriptor;
1048 } EFI_MISC_SYSTEM_EVENT_LOG;
1049
1050 //
1051 // Access Method.
1052 // 0x00~0x04: as following definition
1053 // 0x05~0x7f: Available for future assignment.
1054 // 0x80~0xff: BIOS Vendor/OEM-specific.
1055 //
1056 #define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00
1057 #define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01
1058 #define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02
1059 #define ACCESS_MEMORY_MAPPED 0x03
1060 #define ACCESS_GPNV 0x04
1061
1062 //
1063 //////////////////////////////////////////////////////////////////////////////
1064 //
1065 //Management Device Threshold Data Record - SMBIOS Type 36
1066 //
1067 #define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021
1068
1069 typedef struct {
1070 UINT16 LowerThresNonCritical;
1071 UINT16 UpperThresNonCritical;
1072 UINT16 LowerThresCritical;
1073 UINT16 UpperThresCritical;
1074 UINT16 LowerThresNonRecover;
1075 UINT16 UpperThresNonRecover;
1076 } EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD;
1077
1078 //
1079 //////////////////////////////////////////////////////////////////////////////
1080 //
1081 //
1082 //
1083 typedef union {
1084 EFI_MISC_LAST_PCI_BUS LastPciBus;
1085 EFI_MISC_BIOS_VENDOR MiscBiosVendor;
1086 EFI_MISC_SYSTEM_MANUFACTURER MiscSystemManufacturer;
1087 EFI_MISC_BASE_BOARD_MANUFACTURER MiscBaseBoardManufacturer;
1088 EFI_MISC_CHASSIS_MANUFACTURER MiscChassisManufacturer;
1089 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR MiscPortInternalConnectorDesignator;
1090 EFI_MISC_SYSTEM_SLOT_DESIGNATION MiscSystemSlotDesignation;
1091 EFI_MISC_ONBOARD_DEVICE MiscOnboardDevice;
1092 EFI_MISC_OEM_STRING MiscOemString;
1093 EFI_MISC_SYSTEM_OPTION_STRING MiscOptionString;
1094 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES NumberOfInstallableLanguages;
1095 EFI_MISC_SYSTEM_LANGUAGE_STRING MiscSystemLanguageString;
1096 EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;
1097 EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;
1098 EFI_MISC_SYSTEM_EVENT_LOG MiscSystemEventLog;
1099 EFI_MISC_ONBOARD_DEVICE_TYPE_DATA MiscOnboardDeviceTypeData;
1100 EFI_MISC_PORTABLE_BATTERY MiscPortableBattery;
1101 EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;
1102 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;
1103 EFI_MISC_SCHEDULED_POWER_ON_MONTH MiscScheduledPowerOnMonth;
1104 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION MiscVoltageProbeDescription;
1105 EFI_MISC_COOLING_DEVICE_TEMP_LINK MiscCoolingDeviceTempLink;
1106 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION MiscTemperatureProbeDescription;
1107 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION MiscElectricalCurrentProbeDescription;
1108 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION MiscRemoteAccessManufacturerDescription;
1109 EFI_MISC_BIS_ENTRY_POINT MiscBisEntryPoint;
1110 EFI_MISC_BOOT_INFORMATION_STATUS MiscBootInformationStatus;
1111 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION MiscManagementDeviceDescription;
1112 EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION MiscManagementDeviceComponentDescription;
1113 EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;
1114 EFI_MISC_SYSTEM_POWER_SUPPLY MiscPowerSupplyInfo;
1115 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION MiscSmbiosStructEncapsulation;
1116 EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;
1117 } EFI_MISC_SUBCLASS_RECORDS;
1118
1119 //
1120 //
1121 //
1122 typedef struct {
1123 EFI_SUBCLASS_TYPE1_HEADER Header;
1124 EFI_MISC_SUBCLASS_RECORDS Record;
1125 } EFI_MISC_SUBCLASS_DRIVER_DATA;
1126
1127 #pragma pack()
1128
1129 #endif /* _DATAHUB_SUBCLASS_MISC_H_ */
1130 /* eof - DataHubSubClassMisc.h */