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