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