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 */ 1256