/** @file\r
- Industry Standard Definitions of SMBIOS Table Specification v3.1.1.\r
+ Industry Standard Definitions of SMBIOS Table Specification v3.2.0.\r
\r
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>\r
ProcessorFamilyzArchitecture = 0xCC,\r
ProcessorFamilyIntelCoreI5 = 0xCD,\r
ProcessorFamilyIntelCoreI3 = 0xCE,\r
+ ProcessorFamilyIntelCoreI9 = 0xCF,\r
ProcessorFamilyViaC7M = 0xD2,\r
ProcessorFamilyViaC7D = 0xD3,\r
ProcessorFamilyViaC7 = 0xD4,\r
ProcessorUpgradeSocketBGA1515 = 0x35,\r
ProcessorUpgradeSocketLGA3647_1 = 0x36,\r
ProcessorUpgradeSocketSP3 = 0x37,\r
- ProcessorUpgradeSocketSP3r2 = 0x38\r
+ ProcessorUpgradeSocketSP3r2 = 0x38,\r
+ ProcessorUpgradeSocketLGA2066 = 0x39,\r
+ ProcessorUpgradeSocketBGA1392 = 0x3A,\r
+ ProcessorUpgradeSocketBGA1510 = 0x3B,\r
+ ProcessorUpgradeSocketBGA1528 = 0x3C\r
} PROCESSOR_UPGRADE;\r
\r
///\r
PortConnectorTypeBNC = 0x20,\r
PortConnectorType1394 = 0x21,\r
PortConnectorTypeSasSata = 0x22,\r
+ PortConnectorTypeUsbTypeC = 0x23,\r
PortConnectorTypePC98 = 0xA0,\r
PortConnectorTypePC98Hireso = 0xA1,\r
PortConnectorTypePCH98 = 0xA2,\r
PortTypeNetworkPort = 0x1F,\r
PortTypeSata = 0x20,\r
PortTypeSas = 0x21,\r
+ PortTypeMfdp = 0x22, ///< Multi-Function Display Port\r
+ PortTypeThunderbolt = 0x23,\r
PortType8251Compatible = 0xA0,\r
PortType8251FifoCompatible = 0xA1,\r
PortTypeOther = 0xFF\r
/// System Slots - Current Usage.\r
///\r
typedef enum {\r
- SlotUsageOther = 0x01,\r
- SlotUsageUnknown = 0x02,\r
- SlotUsageAvailable = 0x03,\r
- SlotUsageInUse = 0x04\r
+ SlotUsageOther = 0x01,\r
+ SlotUsageUnknown = 0x02,\r
+ SlotUsageAvailable = 0x03,\r
+ SlotUsageInUse = 0x04,\r
+ SlotUsageUnavailable = 0x05\r
} MISC_SLOT_USAGE;\r
\r
///\r
UINT8 PmeSignalSupported :1;\r
UINT8 HotPlugDevicesSupported :1;\r
UINT8 SmbusSignalSupported :1;\r
- UINT8 Reserved :5; ///< Set to 0.\r
+ UINT8 BifurcationSupported :1;\r
+ UINT8 Reserved :4; ///< Set to 0.\r
} MISC_SLOT_CHARACTERISTICS2;\r
\r
+///\r
+/// System Slots - Peer Segment/Bus/Device/Function/Width Groups\r
+///\r
+typedef struct {\r
+ UINT16 SegmentGroupNum;\r
+ UINT8 BusNum;\r
+ UINT8 DevFuncNum;\r
+ UINT8 DataBusWidth;\r
+} MISC_SLOT_PEER_GROUP;\r
+\r
///\r
/// System Slots (Type 9)\r
///\r
UINT16 SegmentGroupNum;\r
UINT8 BusNum;\r
UINT8 DevFuncNum;\r
+ //\r
+ // Add for smbios 3.2\r
+ //\r
+ UINT8 DataBusWidth;\r
+ UINT8 PeerGroupingCount;\r
+ MISC_SLOT_PEER_GROUP PeerGroups[1];\r
} SMBIOS_TABLE_TYPE9;\r
\r
///\r
MemoryTypeLpddr = 0x1B,\r
MemoryTypeLpddr2 = 0x1C,\r
MemoryTypeLpddr3 = 0x1D,\r
- MemoryTypeLpddr4 = 0x1E\r
+ MemoryTypeLpddr4 = 0x1E,\r
+ MemoryTypeLogicalNonVolatileDevice = 0x1F\r
} MEMORY_DEVICE_TYPE;\r
\r
+///\r
+/// Memory Device - Type Detail\r
+///\r
typedef struct {\r
UINT16 Reserved :1;\r
UINT16 Other :1;\r
UINT16 LrDimm :1;\r
} MEMORY_DEVICE_TYPE_DETAIL;\r
\r
+///\r
+/// Memory Device - Memory Technology\r
+///\r
+typedef enum {\r
+ MemoryTechnologyOther = 0x01,\r
+ MemoryTechnologyUnknown = 0x02,\r
+ MemoryTechnologyDram = 0x03,\r
+ MemoryTechnologyNvdimmN = 0x04,\r
+ MemoryTechnologyNvdimmF = 0x05,\r
+ MemoryTechnologyNvdimmP = 0x06,\r
+ MemoryTechnologyIntelPersistentMemory = 0x07\r
+} MEMORY_DEVICE_TECHNOLOGY;\r
+\r
+///\r
+/// Memory Device - Memory Operating Mode Capability\r
+///\r
+typedef union {\r
+ ///\r
+ /// Individual bit fields\r
+ ///\r
+ struct {\r
+ UINT16 Reserved :1; ///< Set to 0.\r
+ UINT16 Other :1;\r
+ UINT16 Unknown :1;\r
+ UINT16 VolatileMemory :1;\r
+ UINT16 ByteAccessiblePersistentMemory :1;\r
+ UINT16 BlockAccessiblePersistentMemory :1;\r
+ UINT16 Reserved2 :10; ///< Set to 0.\r
+ } Bits;\r
+ ///\r
+ /// All bit fields as a 16-bit value\r
+ ///\r
+ UINT16 Uint16;\r
+} MEMORY_DEVICE_OPERATING_MODE_CAPABILITY;\r
+\r
///\r
/// Memory Device (Type 17).\r
///\r
/// socket is currently populated.\r
///\r
typedef struct {\r
- SMBIOS_STRUCTURE Hdr;\r
- UINT16 MemoryArrayHandle;\r
- UINT16 MemoryErrorInformationHandle;\r
- UINT16 TotalWidth;\r
- UINT16 DataWidth;\r
- UINT16 Size;\r
- UINT8 FormFactor; ///< The enumeration value from MEMORY_FORM_FACTOR.\r
- UINT8 DeviceSet;\r
- SMBIOS_TABLE_STRING DeviceLocator;\r
- SMBIOS_TABLE_STRING BankLocator;\r
- UINT8 MemoryType; ///< The enumeration value from MEMORY_DEVICE_TYPE.\r
- MEMORY_DEVICE_TYPE_DETAIL TypeDetail;\r
- UINT16 Speed;\r
- SMBIOS_TABLE_STRING Manufacturer;\r
- SMBIOS_TABLE_STRING SerialNumber;\r
- SMBIOS_TABLE_STRING AssetTag;\r
- SMBIOS_TABLE_STRING PartNumber;\r
+ SMBIOS_STRUCTURE Hdr;\r
+ UINT16 MemoryArrayHandle;\r
+ UINT16 MemoryErrorInformationHandle;\r
+ UINT16 TotalWidth;\r
+ UINT16 DataWidth;\r
+ UINT16 Size;\r
+ UINT8 FormFactor; ///< The enumeration value from MEMORY_FORM_FACTOR.\r
+ UINT8 DeviceSet;\r
+ SMBIOS_TABLE_STRING DeviceLocator;\r
+ SMBIOS_TABLE_STRING BankLocator;\r
+ UINT8 MemoryType; ///< The enumeration value from MEMORY_DEVICE_TYPE.\r
+ MEMORY_DEVICE_TYPE_DETAIL TypeDetail;\r
+ UINT16 Speed;\r
+ SMBIOS_TABLE_STRING Manufacturer;\r
+ SMBIOS_TABLE_STRING SerialNumber;\r
+ SMBIOS_TABLE_STRING AssetTag;\r
+ SMBIOS_TABLE_STRING PartNumber;\r
//\r
// Add for smbios 2.6\r
//\r
- UINT8 Attributes;\r
+ UINT8 Attributes;\r
//\r
// Add for smbios 2.7\r
//\r
- UINT32 ExtendedSize;\r
- UINT16 ConfiguredMemoryClockSpeed;\r
+ UINT32 ExtendedSize;\r
+ //\r
+ // Keep using name "ConfiguredMemoryClockSpeed" for compatibility\r
+ // although this field is renamed from "Configured Memory Clock Speed"\r
+ // to "Configured Memory Speed" in smbios 3.2.0.\r
+ //\r
+ UINT16 ConfiguredMemoryClockSpeed;\r
//\r
// Add for smbios 2.8.0\r
//\r
- UINT16 MinimumVoltage;\r
- UINT16 MaximumVoltage;\r
- UINT16 ConfiguredVoltage;\r
+ UINT16 MinimumVoltage;\r
+ UINT16 MaximumVoltage;\r
+ UINT16 ConfiguredVoltage;\r
+ //\r
+ // Add for smbios 3.2.0\r
+ //\r
+ UINT8 MemoryTechnology; ///< The enumeration value from MEMORY_DEVICE_TECHNOLOGY\r
+ MEMORY_DEVICE_OPERATING_MODE_CAPABILITY MemoryOperatingModeCapability;\r
+ SMBIOS_TABLE_STRING FirwareVersion;\r
+ UINT16 ModuleManufacturerID;\r
+ UINT16 ModuleProductID;\r
+ UINT16 MemorySubsystemControllerManufacturerID;\r
+ UINT16 MemorySubsystemControllerProductID;\r
+ UINT64 NonVolatileSize;\r
+ UINT64 VolatileSize;\r
+ UINT64 CacheSize;\r
+ UINT64 LogicalSize;\r
} SMBIOS_TABLE_TYPE17;\r
\r
///\r
IPMIDeviceInfoInterfaceTypeKCS = 0x01, ///< The Keyboard Controller Style.\r
IPMIDeviceInfoInterfaceTypeSMIC = 0x02, ///< The Server Management Interface Chip.\r
IPMIDeviceInfoInterfaceTypeBT = 0x03, ///< The Block Transfer\r
- IPMIDeviceInfoInterfaceTypeReserved = 0x04\r
+ IPMIDeviceInfoInterfaceTypeSSIF = 0x04 ///< SMBus System Interface\r
} BMC_INTERFACE_TYPE;\r
\r
///\r
UINT8 ReferencedOffset;\r
SMBIOS_TABLE_STRING EntryString;\r
UINT8 Value[1];\r
-}ADDITIONAL_INFORMATION_ENTRY;\r
+} ADDITIONAL_INFORMATION_ENTRY;\r
\r
///\r
/// Additional Information (Type 40).\r
///\r
typedef struct {\r
SMBIOS_STRUCTURE Hdr;\r
- UINT8 InterfaceType; ///< The enumeration value from MC_HOST_INTERFACE_TYPE\r
- UINT8 MCHostInterfaceData[1]; ///< This field has a minimum of four bytes\r
+ UINT8 InterfaceType; ///< The enumeration value from MC_HOST_INTERFACE_TYPE\r
+ UINT8 InterfaceTypeSpecificDataLength;\r
+ UINT8 InterfaceTypeSpecificData[4]; ///< This field has a minimum of four bytes\r
} SMBIOS_TABLE_TYPE42;\r
\r
///\r