]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassMisc.h
1 /*++
2
3 Copyright (c) 2004 - 2007, 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 Reserved :24;
265 } EFI_MISC_ELEMENT_TYPE;
266
267 typedef struct {
268 EFI_MISC_ELEMENT_TYPE ChassisElementType;
269 EFI_INTER_LINK_DATA ChassisElementStructure;
270 EFI_BASE_BOARD_TYPE ChassisBaseBoard;
271 UINT32 ChassisElementMinimum;
272 UINT32 ChassisElementMaximum;
273 } EFI_MISC_ELEMENTS;
274
275 typedef struct {
276 STRING_REF ChassisManufacturer;
277 STRING_REF ChassisVersion;
278 STRING_REF ChassisSerialNumber;
279 STRING_REF ChassisAssetTag;
280 EFI_MISC_CHASSIS_STATUS ChassisType;
281 EFI_MISC_CHASSIS_STATE ChassisBootupState;
282 EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;
283 EFI_MISC_CHASSIS_STATE ChassisThermalState;
284 EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;
285 UINT32 ChassisOemDefined;
286 UINT32 ChassisHeight;
287 UINT32 ChassisNumberPowerCords;
288 UINT32 ChassisElementCount;
289 UINT32 ChassisElementRecordLength;//
290 EFI_MISC_ELEMENTS ChassisElements;
291 } EFI_MISC_CHASSIS_MANUFACTURER;
292
293 //
294 //////////////////////////////////////////////////////////////////////////////
295 //
296 // Misc. Port Connector Information - SMBIOS Type 8
297 //
298 #define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006
299
300 typedef enum {
301 EfiPortConnectorTypeNone = 0x0,
302 EfiPortConnectorTypeCentronics = 0x1,
303 EfiPortConnectorTypeMiniCentronics = 0x2,
304 EfiPortConnectorTypeProprietary = 0x3,
305 EfiPortConnectorTypeDB25Male = 0x4,
306 EfiPortConnectorTypeDB25Female = 0x5,
307 EfiPortConnectorTypeDB15Male = 0x6,
308 EfiPortConnectorTypeDB15Female = 0x7,
309 EfiPortConnectorTypeDB9Male = 0x8,
310 EfiPortConnectorTypeDB9Female = 0x9,
311 EfiPortConnectorTypeRJ11 = 0xA,
312 EfiPortConnectorTypeRJ45 = 0xB,
313 EfiPortConnectorType50PinMiniScsi = 0xC,
314 EfiPortConnectorTypeMiniDin = 0xD,
315 EfiPortConnectorTypeMicriDin = 0xE,
316 EfiPortConnectorTypePS2 = 0xF,
317 EfiPortConnectorTypeInfrared = 0x10,
318 EfiPortConnectorTypeHpHil = 0x11,
319 EfiPortConnectorTypeUsb = 0x12,
320 EfiPortConnectorTypeSsaScsi = 0x13,
321 EfiPortConnectorTypeCircularDin8Male = 0x14,
322 EfiPortConnectorTypeCircularDin8Female = 0x15,
323 EfiPortConnectorTypeOnboardIde = 0x16,
324 EfiPortConnectorTypeOnboardFloppy = 0x17,
325 EfiPortConnectorType9PinDualInline = 0x18,
326 EfiPortConnectorType25PinDualInline = 0x19,
327 EfiPortConnectorType50PinDualInline = 0x1A,
328 EfiPortConnectorType68PinDualInline = 0x1B,
329 EfiPortConnectorTypeOnboardSoundInput = 0x1C,
330 EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,
331 EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,
332 EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,
333 EfiPortConnectorTypeBNC = 0x20,
334 EfiPortConnectorType1394 = 0x21,
335 EfiPortConnectorTypeSasSata = 0x22,
336 EfiPortConnectorTypePC98 = 0xA0,
337 EfiPortConnectorTypePC98Hireso = 0xA1,
338 EfiPortConnectorTypePCH98 = 0xA2,
339 EfiPortConnectorTypePC98Note = 0xA3,
340 EfiPortConnectorTypePC98Full = 0xA4,
341 EfiPortConnectorTypeOther = 0xFF
342 } EFI_MISC_PORT_CONNECTOR_TYPE;
343
344 typedef enum {
345 EfiPortTypeNone = 0x0,
346 EfiPortTypeParallelXtAtCompatible = 0x1,
347 EfiPortTypeParallelPortPs2 = 0x2,
348 EfiPortTypeParallelPortEcp = 0x3,
349 EfiPortTypeParallelPortEpp = 0x4,
350 EfiPortTypeParallelPortEcpEpp = 0x5,
351 EfiPortTypeSerialXtAtCompatible = 0x6,
352 EfiPortTypeSerial16450Compatible = 0x7,
353 EfiPortTypeSerial16550Compatible = 0x8,
354 EfiPortTypeSerial16550ACompatible = 0x9,
355 EfiPortTypeScsi = 0xA,
356 EfiPortTypeMidi = 0xB,
357 EfiPortTypeJoyStick = 0xC,
358 EfiPortTypeKeyboard = 0xD,
359 EfiPortTypeMouse = 0xE,
360 EfiPortTypeSsaScsi = 0xF,
361 EfiPortTypeUsb = 0x10,
362 EfiPortTypeFireWire = 0x11,
363 EfiPortTypePcmciaTypeI = 0x12,
364 EfiPortTypePcmciaTypeII = 0x13,
365 EfiPortTypePcmciaTypeIII = 0x14,
366 EfiPortTypeCardBus = 0x15,
367 EfiPortTypeAccessBusPort = 0x16,
368 EfiPortTypeScsiII = 0x17,
369 EfiPortTypeScsiWide = 0x18,
370 EfiPortTypePC98 = 0x19,
371 EfiPortTypePC98Hireso = 0x1A,
372 EfiPortTypePCH98 = 0x1B,
373 EfiPortTypeVideoPort = 0x1C,
374 EfiPortTypeAudioPort = 0x1D,
375 EfiPortTypeModemPort = 0x1E,
376 EfiPortTypeNetworkPort = 0x1F,
377 EfiPortTypeSata = 0x20,
378 EfiPortTypeSas = 0x21,
379 EfiPortType8251Compatible = 0xA0,
380 EfiPortType8251FifoCompatible = 0xA1,
381 EfiPortTypeOther = 0xFF
382 } EFI_MISC_PORT_TYPE;
383
384
385 typedef struct {
386 EFI_STRING_TOKEN PortInternalConnectorDesignator;
387 EFI_STRING_TOKEN PortExternalConnectorDesignator;
388 EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;
389 EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;
390 EFI_MISC_PORT_TYPE PortType;
391 EFI_MISC_PORT_DEVICE_PATH PortPath;
392 } EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;
393
394 //
395 //////////////////////////////////////////////////////////////////////////////
396 //
397 // Misc. System Slots - SMBIOS Type 9
398 //
399 #define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007
400
401 typedef enum {
402 EfiSlotTypeOther = 0x1,
403 EfiSlotTypeUnknown = 0x2,
404 EfiSlotTypeIsa = 0x3,
405 EfiSlotTypeMca = 0x4,
406 EfiSlotTypeEisa = 0x5,
407 EfiSlotTypePci = 0x6,
408 EfiSlotTypePcmcia = 0x7,
409 EfiSlotTypeVlVesa = 0x8,
410 EfiSlotTypeProprietary = 0x9,
411 EfiSlotTypeProcessorCardSlot = 0xA,
412 EfiSlotTypeProprietaryMemoryCardSlot = 0xB,
413 EfiSlotTypeIORiserCardSlot = 0xC,
414 EfiSlotTypeNuBus = 0xD,
415 EfiSlotTypePci66MhzCapable = 0xE,
416 EfiSlotTypeAgp = 0xF,
417 EfiSlotTypeApg2X = 0x10,
418 EfiSlotTypeAgp4X = 0x11,
419 EfiSlotTypePciX = 0x12,
420 EfiSlotTypeAgp4x = 0x13,
421 EfiSlotTypePC98C20 = 0xA0,
422 EfiSlotTypePC98C24 = 0xA1,
423 EfiSlotTypePC98E = 0xA2,
424 EfiSlotTypePC98LocalBus = 0xA3,
425 EfiSlotTypePC98Card = 0xA4,
426 EfiSlotTypePciExpress = 0xA5,
427 EfiSlotTypePciExpressX1 = 0xA6,
428 EfiSlotTypePciExpressX2 = 0xA7,
429 EfiSlotTypePciExpressX4 = 0xA8,
430 EfiSlotTypePciExpressX8 = 0xA9,
431 EfiSlotTypePciExpressX16 = 0xAA
432 } EFI_MISC_SLOT_TYPE;
433
434 typedef enum {
435 EfiSlotDataBusWidthOther = 1,
436 EfiSlotDataBusWidthUnknown = 2,
437 EfiSlotDataBusWidth8Bit = 3,
438 EfiSlotDataBusWidth16Bit = 4,
439 EfiSlotDataBusWidth32Bit = 5,
440 EfiSlotDataBusWidth64Bit = 6,
441 EfiSlotDataBusWidth128Bit = 7,
442 EfiSlotDataBusWidth1xOrx1 = 8,
443 EfiSlotDataBusWidth2xOrx2 = 9,
444 EfiSlotDataBusWidth4xOrx4 = 0xA,
445 EfiSlotDataBusWidth8xOrx8 = 0xB,
446 EfiSlotDataBusWidth12xOrx12 = 0xC,
447 EfiSlotDataBusWidth16xOrx16 = 0xD,
448 EfiSlotDataBusWidth32xOrx32 = 0xE
449 } EFI_MISC_SLOT_DATA_BUS_WIDTH;
450
451 typedef enum {
452 EfiSlotUsageOther = 1,
453 EfiSlotUsageUnknown = 2,
454 EfiSlotUsageAvailable = 3,
455 EfiSlotUsageInUse = 4
456 } EFI_MISC_SLOT_USAGE;
457
458 typedef enum {
459 EfiSlotLengthOther = 1,
460 EfiSlotLengthUnknown = 2,
461 EfiSlotLengthShort = 3,
462 EfiSlotLengthLong = 4
463 } EFI_MISC_SLOT_LENGTH;
464
465 typedef struct {
466 UINT32 CharacteristicsUnknown :1;
467 UINT32 Provides50Volts :1;
468 UINT32 Provides33Volts :1;
469 UINT32 SharedSlot :1;
470 UINT32 PcCard16Supported :1;
471 UINT32 CardBusSupported :1;
472 UINT32 ZoomVideoSupported :1;
473 UINT32 ModemRingResumeSupported:1;
474 UINT32 PmeSignalSupported :1;
475 UINT32 HotPlugDevicesSupported :1;
476 UINT32 SmbusSignalSupported :1;
477 UINT32 Reserved :21;
478 } EFI_MISC_SLOT_CHARACTERISTICS;
479
480 typedef struct {
481 STRING_REF SlotDesignation;
482 EFI_MISC_SLOT_TYPE SlotType;
483 EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;
484 EFI_MISC_SLOT_USAGE SlotUsage;
485 EFI_MISC_SLOT_LENGTH SlotLength;
486 UINT16 SlotId;
487 EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;
488 EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;
489 UINT16 SegmentGroupNum;
490 UINT8 BusNum;
491 EFI_MISC_DEV_FUNC_NUM DevFuncNum;
492 } EFI_MISC_SYSTEM_SLOT_DESIGNATION;
493
494 //
495 //////////////////////////////////////////////////////////////////////////////
496 //
497 // Misc. Onboard Device - SMBIOS Type 10
498 //
499 #define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008
500
501 typedef enum {
502 EfiOnBoardDeviceTypeOther = 1,
503 EfiOnBoardDeviceTypeUnknown = 2,
504 EfiOnBoardDeviceTypeVideo = 3,
505 EfiOnBoardDeviceTypeScsiController = 4,
506 EfiOnBoardDeviceTypeEthernet = 5,
507 EfiOnBoardDeviceTypeTokenRing = 6,
508 EfiOnBoardDeviceTypeSound = 7,
509 EfiOnBoardDeviceTypePataController = 8,
510 EfiOnBoardDeviceTypeSataController = 9,
511 EfiOnBoardDeviceTypeSasController = 10
512 } EFI_MISC_ONBOARD_DEVICE_TYPE;
513
514 typedef struct {
515 UINT32 DeviceType :16;
516 UINT32 DeviceEnabled :1;
517 UINT32 Reserved :15;
518 } EFI_MISC_ONBOARD_DEVICE_STATUS;
519
520 typedef struct {
521 STRING_REF OnBoardDeviceDescription;
522 EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;
523 EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;
524 } EFI_MISC_ONBOARD_DEVICE;
525
526 //
527 //////////////////////////////////////////////////////////////////////////////
528 //
529 // Misc. BIOS Language Information - SMBIOS Type 11
530 //
531 #define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009
532
533 typedef struct {
534 STRING_REF OemStringRef[1];
535 } EFI_MISC_OEM_STRING;
536
537 //
538 //////////////////////////////////////////////////////////////////////////////
539 //
540 // Misc. System Options - SMBIOS Type 12
541 //
542 typedef struct {
543 STRING_REF SystemOptionStringRef[1];
544 } EFI_MISC_SYSTEM_OPTION_STRING;
545
546 #define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A
547
548 //
549 //////////////////////////////////////////////////////////////////////////////
550 //
551 // Misc. Number of Installable Languages - SMBIOS Type 13
552 //
553 #define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B
554
555 typedef struct {
556 UINT32 AbbreviatedLanguageFormat :1;
557 UINT32 Reserved :31;
558 } EFI_MISC_LANGUAGE_FLAGS;
559
560 typedef struct {
561 UINT16 NumberOfInstallableLanguages;
562 EFI_MISC_LANGUAGE_FLAGS LanguageFlags;
563 UINT16 CurrentLanguageNumber;
564 } EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;
565
566 //
567 //////////////////////////////////////////////////////////////////////////////
568 //
569 // Misc. System Language String
570 //
571 #define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C
572
573 typedef struct {
574 UINT16 LanguageId;
575 STRING_REF SystemLanguageString;
576 } EFI_MISC_SYSTEM_LANGUAGE_STRING;
577
578 //
579 //////////////////////////////////////////////////////////////////////////////
580 //
581 // Misc. Group Associations - SMBIOS Type 14
582 //
583 #define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D
584
585 typedef struct {
586 STRING_REF GroupName;
587 UINT16 NumberGroupItems;
588 UINT16 GroupId;
589 } EFI_MISC_GROUP_NAME_DATA;
590
591 #define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E
592
593 typedef struct {
594 EFI_GUID SubClass;
595 EFI_INTER_LINK_DATA GroupLink;
596 UINT16 GroupId;
597 UINT16 GroupElementId;
598 } EFI_MISC_GROUP_ITEM_SET_DATA;
599
600 //
601 //////////////////////////////////////////////////////////////////////////////
602 //
603 // Misc. Pointing Device Type - SMBIOS Type 21
604 //
605 #define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F
606
607 typedef enum {
608 EfiPointingDeviceTypeOther = 1,
609 EfiPointingDeviceTypeUnknown = 2,
610 EfiPointingDeviceTypeMouse = 3,
611 EfiPointingDeviceTypeTrackBall = 4,
612 EfiPointingDeviceTypeTrackPoint = 5,
613 EfiPointingDeviceTypeGlidePoint = 6,
614 EfiPointingDeviceTouchPad = 7,
615 EfiPointingDeviceTouchScreen = 8,
616 EfiPointingDeviceOpticalSensor = 9
617 } EFI_MISC_POINTING_DEVICE_TYPE;
618
619 typedef enum {
620 EfiPointingDeviceInterfaceOther = 1,
621 EfiPointingDeviceInterfaceUnknown = 2,
622 EfiPointingDeviceInterfaceSerial = 3,
623 EfiPointingDeviceInterfacePs2 = 4,
624 EfiPointingDeviceInterfaceInfrared = 5,
625 EfiPointingDeviceInterfaceHpHil = 6,
626 EfiPointingDeviceInterfaceBusMouse = 7,
627 EfiPointingDeviceInterfaceADB = 8,
628 EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,
629 EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,
630 EfiPointingDeviceInterfaceUsb = 0xA2
631 } EFI_MISC_POINTING_DEVICE_INTERFACE;
632
633 typedef struct {
634 EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;
635 EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;
636 UINT16 NumberPointingDeviceButtons;
637 EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;
638 } EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;
639
640 //
641 //////////////////////////////////////////////////////////////////////////////
642 //
643 // Misc. Portable Battery - SMBIOS Type 22
644 //
645 #define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010
646
647 typedef enum {
648 EfiPortableBatteryDeviceChemistryOther = 1,
649 EfiPortableBatteryDeviceChemistryUnknown = 2,
650 EfiPortableBatteryDeviceChemistryLeadAcid = 3,
651 EfiPortableBatteryDeviceChemistryNickelCadmium = 4,
652 EfiPortableBatteryDeviceChemistryNickelMetalHydride = 5,
653 EfiPortableBatteryDeviceChemistryLithiumIon = 6,
654 EfiPortableBatteryDeviceChemistryZincAir = 7,
655 EfiPortableBatteryDeviceChemistryLithiumPolymer = 8
656 } EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;
657
658 typedef struct {
659 STRING_REF Location;
660 STRING_REF Manufacturer;
661 STRING_REF ManufactureDate;
662 STRING_REF SerialNumber;
663 STRING_REF DeviceName;
664 EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY DeviceChemistry;
665 UINT16 DesignCapacity;
666 UINT16 DesignVoltage;
667 STRING_REF SBDSVersionNumber;
668 UINT8 MaximumError;
669 UINT16 SBDSSerialNumber;
670 UINT16 SBDSManufactureDate;
671 STRING_REF SBDSDeviceChemistry;
672 UINT8 DesignCapacityMultiplier;
673 UINT32 OEMSpecific;
674 UINT8 BatteryNumber; // Temporary
675 BOOLEAN Valid; // Is entry valid - Temporary
676 } EFI_MISC_PORTABLE_BATTERY;
677
678 //
679 //////////////////////////////////////////////////////////////////////////////
680 //
681 // Misc. Reset Capabilities - SMBIOS Type 23
682 //
683 #define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011
684
685 typedef struct {
686 UINT32 Status :1;
687 UINT32 BootOption :2;
688 UINT32 BootOptionOnLimit :2;
689 UINT32 WatchdogTimerPresent:1;
690 UINT32 Reserved :26;
691 } EFI_MISC_RESET_CAPABILITIES_TYPE;
692
693 typedef struct {
694 EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;
695 UINT16 ResetCount;
696 UINT16 ResetLimit;
697 UINT16 ResetTimerInterval;
698 UINT16 ResetTimeout;
699 } EFI_MISC_RESET_CAPABILITIES;
700
701 typedef struct {
702 EFI_MISC_RESET_CAPABILITIES ResetCapabilities;
703 UINT16 ResetCount;
704 UINT16 ResetLimit;
705 UINT16 ResetTimerInterval;
706 UINT16 ResetTimeout;
707 } EFI_MISC_RESET_CAPABILITIES_DATA;
708
709 //
710 //////////////////////////////////////////////////////////////////////////////
711 //
712 // Misc. Hardware Security - SMBIOS Type 24
713 //
714 #define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012
715
716 typedef enum {
717 EfiHardwareSecurityStatusDisabled = 0,
718 EfiHardwareSecurityStatusEnabled = 1,
719 EfiHardwareSecurityStatusNotImplemented = 2,
720 EfiHardwareSecurityStatusUnknown = 3
721 } EFI_MISC_HARDWARE_SECURITY_STATUS;
722
723 typedef struct {
724 EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;
725 EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;
726 EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;
727 EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;
728 EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;
729 } EFI_MISC_HARDWARE_SECURITY_SETTINGS;
730
731 typedef struct {
732 EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;
733 } EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;
734
735 //
736 //////////////////////////////////////////////////////////////////////////////
737 //
738 // Misc. System Power Controls - SMBIOS Type 25
739 //
740 #define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013
741
742 typedef struct {
743 UINT8 ScheduledPoweronMonth;
744 UINT8 ScheduledPoweronDayOfMonth;
745 UINT8 ScheduledPoweronHour;
746 UINT8 ScheduledPoweronMinute;
747 UINT8 ScheduledPoweronSecond;
748 } EFI_MISC_SCHEDULED_POWER_ON_MONTH;
749
750 //
751 //////////////////////////////////////////////////////////////////////////////
752 //
753 // Misc. Voltage Probe - SMBIOS Type 26
754 //
755 #define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014
756
757 typedef struct {
758 UINT32 VoltageProbeSite :5;
759 UINT32 VoltageProbeStatus :3;
760 UINT32 Reserved :24;
761 } EFI_MISC_VOLTAGE_PROBE_LOCATION;
762
763 typedef struct {
764 STRING_REF VoltageProbeDescription;
765 EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;
766 UINT16 VoltageProbeMaximumValue;
767 UINT16 VoltageProbeMinimumValue;
768 UINT16 VoltageProbeResolution;
769 UINT16 VoltageProbeTolerance;
770 UINT16 VoltageProbeAccuracy;
771 UINT16 VoltageProbeNominalValue;
772 UINT16 MDLowerNoncriticalThreshold;
773 UINT16 MDUpperNoncriticalThreshold;
774 UINT16 MDLowerCriticalThreshold;
775 UINT16 MDUpperCriticalThreshold;
776 UINT16 MDLowerNonrecoverableThreshold;
777 UINT16 MDUpperNonrecoverableThreshold;
778 UINT32 VoltageProbeOemDefined;
779 } EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;
780
781 //
782 //////////////////////////////////////////////////////////////////////////////
783 //
784 // Misc. Cooling Device - SMBIOS Type 27
785 //
786 #define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015
787
788 typedef struct {
789 UINT32 CoolingDevice :5;
790 UINT32 CoolingDeviceStatus :3;
791 UINT32 Reserved :24;
792 } EFI_MISC_COOLING_DEVICE_TYPE;
793
794 typedef struct {
795 EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;
796 EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;
797 UINT8 CoolingDeviceUnitGroup;
798 UINT16 CoolingDeviceNominalSpeed;
799 UINT32 CoolingDeviceOemDefined;
800 } EFI_MISC_COOLING_DEVICE_TEMP_LINK;
801
802 //
803 //////////////////////////////////////////////////////////////////////////////
804 //
805 // Misc. Temperature Probe - SMBIOS Type 28
806 //
807 #define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016
808
809 typedef struct {
810 UINT32 TemperatureProbeSite :5;
811 UINT32 TemperatureProbeStatus :3;
812 UINT32 Reserved :24;
813 } EFI_MISC_TEMPERATURE_PROBE_LOCATION;
814
815 typedef struct {
816 STRING_REF TemperatureProbeDescription;
817 EFI_MISC_TEMPERATURE_PROBE_LOCATION TemperatureProbeLocation;
818 UINT16 TemperatureProbeMaximumValue;
819 UINT16 TemperatureProbeMinimumValue;
820 UINT16 TemperatureProbeResolution;
821 UINT16 TemperatureProbeTolerance;
822 UINT16 TemperatureProbeAccuracy;
823 UINT16 TemperatureProbeNominalValue;
824 UINT16 MDLowerNoncriticalThreshold;
825 UINT16 MDUpperNoncriticalThreshold;
826 UINT16 MDLowerCriticalThreshold;
827 UINT16 MDUpperCriticalThreshold;
828 UINT16 MDLowerNonrecoverableThreshold;
829 UINT16 MDUpperNonrecoverableThreshold;
830 UINT32 TemperatureProbeOemDefined;
831 } EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION;
832
833 //
834 //////////////////////////////////////////////////////////////////////////////
835 //
836 // Misc. Electrical Current Probe - SMBIOS Type 29
837 //
838 #define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017
839
840 typedef struct {
841 UINT32 ElectricalCurrentProbeSite :5;
842 UINT32 ElectricalCurrentProbeStatus :3;
843 UINT32 Reserved :24;
844 } EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;
845
846 typedef struct {
847 STRING_REF ElectricalCurrentProbeDescription;
848 EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION ElectricalCurrentProbeLocation;
849 UINT16 ElectricalCurrentProbeMaximumValue;
850 UINT16 ElectricalCurrentProbeMinimumValue;
851 UINT16 ElectricalCurrentProbeResolution;
852 UINT16 ElectricalCurrentProbeTolerance;
853 UINT16 ElectricalCurrentProbeAccuracy;
854 UINT16 ElectricalCurrentProbeNominalValue;
855 UINT16 MDLowerNoncriticalThreshold;
856 UINT16 MDUpperNoncriticalThreshold;
857 UINT16 MDLowerCriticalThreshold;
858 UINT16 MDUpperCriticalThreshold;
859 UINT16 MDLowerNonrecoverableThreshold;
860 UINT16 MDUpperNonrecoverableThreshold;
861 UINT32 ElectricalCurrentProbeOemDefined;
862 } EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;
863
864 //
865 //////////////////////////////////////////////////////////////////////////////
866 //
867 // Misc. Out-of-Band Remote Access - SMBIOS Type 30
868 //
869 #define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018
870
871 typedef struct {
872 UINT32 InboundConnectionEnabled :1;
873 UINT32 OutboundConnectionEnabled :1;
874 UINT32 Reserved :30;
875 } EFI_MISC_REMOTE_ACCESS_CONNECTIONS;
876
877 typedef struct {
878 STRING_REF RemoteAccessManufacturerNameDescription;
879 EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;
880 } EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;
881 //
882 //////////////////////////////////////////////////////////////////////////////
883 //
884 // Misc. BIS Entry Point - SMBIOS Type 31
885 //
886 #define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019
887
888 typedef struct {
889 EFI_PHYSICAL_ADDRESS BisEntryPoint;
890 } EFI_MISC_BIS_ENTRY_POINT;
891
892 //
893 //////////////////////////////////////////////////////////////////////////////
894 //
895 // Misc. Boot Information - SMBIOS Type 32
896 //
897 #define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A
898
899 typedef enum {
900 EfiBootInformationStatusNoError = 0,
901 EfiBootInformationStatusNoBootableMedia = 1,
902 EfiBootInformationStatusNormalOSFailedLoading = 2,
903 EfiBootInformationStatusFirmwareDetectedFailure = 3,
904 EfiBootInformationStatusOSDetectedFailure = 4,
905 EfiBootInformationStatusUserRequestedBoot = 5,
906 EfiBootInformationStatusSystemSecurityViolation = 6,
907 EfiBootInformationStatusPreviousRequestedImage = 7,
908 EfiBootInformationStatusWatchdogTimerExpired = 8,
909 EfiBootInformationStatusStartReserved = 9,
910 EfiBootInformationStatusStartOemSpecific = 128,
911 EfiBootInformationStatusStartProductSpecific = 192
912 } EFI_MISC_BOOT_INFORMATION_STATUS_TYPE;
913
914 typedef struct {
915 EFI_MISC_BOOT_INFORMATION_STATUS_TYPE BootInformationStatus;
916 UINT8 BootInformationData[9];
917 } EFI_MISC_BOOT_INFORMATION_STATUS;
918
919 //
920 //////////////////////////////////////////////////////////////////////////////
921 //
922 // Misc. Management Device - SMBIOS Type 34
923 //
924 #define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B
925
926 typedef enum {
927 EfiManagementDeviceTypeOther = 1,
928 EfiManagementDeviceTypeUnknown = 2,
929 EfiManagementDeviceTypeLm75 = 3,
930 EfiManagementDeviceTypeLm78 = 4,
931 EfiManagementDeviceTypeLm79 = 5,
932 EfiManagementDeviceTypeLm80 = 6,
933 EfiManagementDeviceTypeLm81 = 7,
934 EfiManagementDeviceTypeAdm9240 = 8,
935 EfiManagementDeviceTypeDs1780 = 9,
936 EfiManagementDeviceTypeMaxim1617 = 0xA,
937 EfiManagementDeviceTypeGl518Sm = 0xB,
938 EfiManagementDeviceTypeW83781D = 0xC,
939 EfiManagementDeviceTypeHt82H791 = 0xD
940 } EFI_MISC_MANAGEMENT_DEVICE_TYPE;
941
942 typedef enum {
943 EfiManagementDeviceAddressTypeOther = 1,
944 EfiManagementDeviceAddressTypeUnknown = 2,
945 EfiManagementDeviceAddressTypeIOPort = 3,
946 EfiManagementDeviceAddressTypeMemory = 4,
947 EfiManagementDeviceAddressTypeSmbus = 5
948 } EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;
949
950 typedef struct {
951 STRING_REF ManagementDeviceDescription;
952 EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;
953 UINTN ManagementDeviceAddress;
954 EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE ManagementDeviceAddressType;
955 } EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;
956
957 //
958 //////////////////////////////////////////////////////////////////////////////
959 //
960 // Misc. Management Device Component - SMBIOS Type 35
961 //
962 #define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C
963
964 typedef struct {
965 STRING_REF ManagementDeviceComponentDescription;
966 EFI_INTER_LINK_DATA ManagementDeviceLink;
967 EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
968 EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
969 } EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;
970
971 //
972 //////////////////////////////////////////////////////////////////////////////
973 //
974 // IPMI Data Record - SMBIOS Type 38
975 //
976 typedef enum {
977 EfiIpmiOther = 0,
978 EfiIpmiKcs = 1,
979 EfiIpmiSmic = 2,
980 EfiIpmiBt = 3
981 } EFI_MISC_IPMI_INTERFACE_TYPE;
982
983 typedef struct {
984 UINT16 IpmiSpecLeastSignificantDigit:4;
985 UINT16 IpmiSpecMostSignificantDigit:4;
986 UINT16 Reserved:8;
987 } EFI_MISC_IPMI_SPECIFICATION_REVISION;
988
989 typedef struct {
990 EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;
991 EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;
992 UINT16 IpmiI2CSlaveAddress;
993 UINT16 IpmiNvDeviceAddress;
994 UINT64 IpmiBaseAddress;
995 EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;
996 } EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
997
998 #define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
999
1000 //
1001 //////////////////////////////////////////////////////////////////////////////
1002 //
1003 //System Power supply Record - SMBIOS Type 39
1004 //
1005 typedef struct {
1006 UINT16 PowerSupplyHotReplaceable :1;
1007 UINT16 PowerSupplyPresent :1;
1008 UINT16 PowerSupplyUnplugged :1;
1009 UINT16 InputVoltageRangeSwitch :4;
1010 UINT16 PowerSupplyStatus :3;
1011 UINT16 PowerSupplyType :4;
1012 UINT16 Reserved :2;
1013 } POWER_SUPPLY_CHARACTERISTICS;
1014
1015 typedef struct {
1016 UINT8 PowerUnitGroup;
1017 STRING_REF PowerSupplyLocation;
1018 STRING_REF PowerSupplyDeviceName;
1019 STRING_REF PowerSupplyManufacturer;
1020 STRING_REF PowerSupplySerialNumber;
1021 STRING_REF PowerSupplyAssetTagNumber;
1022 STRING_REF PowerSupplyModelPartNumber;
1023 STRING_REF PowerSupplyRevisionLevel;
1024 UINT16 PowerSupplyMaxPowerCapacity;
1025 POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;
1026 EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;
1027 EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;
1028 EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;
1029 } EFI_MISC_SYSTEM_POWER_SUPPLY;
1030
1031 #define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E
1032
1033 //
1034 //////////////////////////////////////////////////////////////////////////////
1035 //
1036 //Additional Information Record - SMBIOS Type 40
1037 //
1038 typedef struct {
1039 UINT8 EntryLength;
1040 UINT8 ReferencedSmbiosType;
1041 EFI_INTER_LINK_DATA ReferencedLink;
1042 UINT8 ReferencedOffset;
1043 STRING_REF EntryString;
1044 EFI_PHYSICAL_ADDRESS ValueAddress;
1045 } EFI_MISC_ADDITIONAL_INFORMATION_ENTRY;
1046
1047 typedef struct {
1048 UINT8 NumberOfAdditionalInformationEntries;
1049 EFI_PHYSICAL_ADDRESS AdditionalInfoEntriesAddr;
1050 } EFI_MISC_ADDITIONAL_INFORMATION;
1051
1052 #define EFI_MISC_ADDITIONAL_INFORMATION_RECORD_NUMBER 0x00000022
1053
1054 //
1055 //////////////////////////////////////////////////////////////////////////////
1056 //
1057 //Onboard Devices Extended Infomation Record - SMBIOS Type 41
1058 //
1059 typedef struct {
1060 UINT8 TypeOfDevice:7;
1061 UINT8 DeviceStatus:1;
1062 } EFI_MISC_DEVICE_TYPE;
1063
1064 typedef struct {
1065 STRING_REF ReferenceDesignation;
1066 EFI_MISC_DEVICE_TYPE DeviceType;
1067 UINT8 DeviceTypeInstance;
1068 UINT16 SegmentGroupNum;
1069 UINT8 BusNum;
1070 EFI_MISC_DEV_FUNC_NUM DevFuncNum;
1071 } EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION;
1072
1073 #define EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION_RECORD_NUMBER 0x00000023
1074
1075 //
1076 //////////////////////////////////////////////////////////////////////////////
1077 //
1078 // Generic Data Record - All SMBIOS Type
1079 // Put smbios raw data into one datahub record directly. Smbios driver would
1080 // copy smbios raw data into smbios table but not take any translation.
1081 //
1082 typedef struct {
1083 UINT8 Type;
1084 UINT8 Length;
1085 UINT16 Handle;
1086 } SMBIOS_STRUCTURE_HDR;
1087
1088 typedef struct {
1089 SMBIOS_STRUCTURE_HDR Header;
1090 UINT8 RawData[1];
1091 } EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;
1092
1093 #define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F
1094
1095 //
1096 //////////////////////////////////////////////////////////////////////////////
1097 //
1098 // Misc. System Event Log - SMBIOS Type 15
1099 //
1100 #define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020
1101 typedef struct {
1102 //SMBIOS_STRUCTURE_HDR Header;
1103 UINT16 LogAreaLength;
1104 UINT16 LogHeaderStartOffset;
1105 UINT16 LogDataStartOffset;
1106 UINT8 AccessMethod;
1107 UINT8 LogStatus;
1108 UINT32 LogChangeToken;
1109 UINT32 AccessMethodAddress;
1110 UINT8 LogHeaderFormat;
1111 UINT8 NumberOfSupportedLogType;
1112 UINT8 LengthOfLogDescriptor;
1113 } EFI_MISC_SYSTEM_EVENT_LOG;
1114
1115 //
1116 // Access Method.
1117 // 0x00~0x04: as following definition
1118 // 0x05~0x7f: Available for future assignment.
1119 // 0x80~0xff: BIOS Vendor/OEM-specific.
1120 //
1121 #define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00
1122 #define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01
1123 #define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02
1124 #define ACCESS_MEMORY_MAPPED 0x03
1125 #define ACCESS_GPNV 0x04
1126
1127 //
1128 //////////////////////////////////////////////////////////////////////////////
1129 //
1130 //Management Device Threshold Data Record - SMBIOS Type 36
1131 //
1132 #define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021
1133
1134 typedef struct {
1135 UINT16 LowerThresNonCritical;
1136 UINT16 UpperThresNonCritical;
1137 UINT16 LowerThresCritical;
1138 UINT16 UpperThresCritical;
1139 UINT16 LowerThresNonRecover;
1140 UINT16 UpperThresNonRecover;
1141 } EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD;
1142
1143 //
1144 //////////////////////////////////////////////////////////////////////////////
1145 //
1146 //
1147 //
1148 typedef union {
1149 EFI_MISC_LAST_PCI_BUS LastPciBus;
1150 EFI_MISC_BIOS_VENDOR MiscBiosVendor;
1151 EFI_MISC_SYSTEM_MANUFACTURER MiscSystemManufacturer;
1152 EFI_MISC_BASE_BOARD_MANUFACTURER MiscBaseBoardManufacturer;
1153 EFI_MISC_CHASSIS_MANUFACTURER MiscChassisManufacturer;
1154 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR MiscPortInternalConnectorDesignator;
1155 EFI_MISC_SYSTEM_SLOT_DESIGNATION MiscSystemSlotDesignation;
1156 EFI_MISC_ONBOARD_DEVICE MiscOnboardDevice;
1157 EFI_MISC_OEM_STRING MiscOemString;
1158 EFI_MISC_SYSTEM_OPTION_STRING MiscOptionString;
1159 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES NumberOfInstallableLanguages;
1160 EFI_MISC_SYSTEM_LANGUAGE_STRING MiscSystemLanguageString;
1161 EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;
1162 EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;
1163 EFI_MISC_SYSTEM_EVENT_LOG MiscSystemEventLog;
1164 EFI_MISC_ONBOARD_DEVICE_TYPE_DATA MiscOnboardDeviceTypeData;
1165 EFI_MISC_PORTABLE_BATTERY MiscPortableBattery;
1166 EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;
1167 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;
1168 EFI_MISC_SCHEDULED_POWER_ON_MONTH MiscScheduledPowerOnMonth;
1169 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION MiscVoltageProbeDescription;
1170 EFI_MISC_COOLING_DEVICE_TEMP_LINK MiscCoolingDeviceTempLink;
1171 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION MiscTemperatureProbeDescription;
1172 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION MiscElectricalCurrentProbeDescription;
1173 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION MiscRemoteAccessManufacturerDescription;
1174 EFI_MISC_BIS_ENTRY_POINT MiscBisEntryPoint;
1175 EFI_MISC_BOOT_INFORMATION_STATUS MiscBootInformationStatus;
1176 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION MiscManagementDeviceDescription;
1177 EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION MiscManagementDeviceComponentDescription;
1178 EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;
1179 EFI_MISC_SYSTEM_POWER_SUPPLY MiscPowerSupplyInfo;
1180 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION MiscSmbiosStructEncapsulation;
1181 EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;
1182 EFI_MISC_ADDITIONAL_INFORMATION MiscAdditionalInformation;
1183 EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION MiscOnBoardDevicesExtendedInformation;
1184 } EFI_MISC_SUBCLASS_RECORDS;
1185
1186 //
1187 //
1188 //
1189 typedef struct {
1190 EFI_SUBCLASS_TYPE1_HEADER Header;
1191 EFI_MISC_SUBCLASS_RECORDS Record;
1192 } EFI_MISC_SUBCLASS_DRIVER_DATA;
1193
1194 #pragma pack()
1195
1196 #endif /* _DATAHUB_SUBCLASS_MISC_H_ */
1197 /* eof - DataHubSubClassMisc.h */