/** @file\r
- Industry Standard Definitions of SMBIOS Table Specification v2.7.1\r
+ Industry Standard Definitions of SMBIOS Table Specification v3.0.0.\r
\r
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
This program and the accompanying materials are licensed and made available under \r
the terms and conditions of the BSD License that accompanies this distribution. \r
The full text of the license may be found at\r
///\r
#define SMBIOS_STRING_MAX_LENGTH 64\r
\r
+//\r
+// The length of the entire structure table (including all strings) must be reported\r
+// in the Structure Table Length field of the SMBIOS Structure Table Entry Point,\r
+// which is a WORD field limited to 65,535 bytes.\r
+//\r
+#define SMBIOS_TABLE_MAX_LENGTH 0xFFFF\r
+\r
+//\r
+// For SMBIOS 3.0, Structure table maximum size in Entry Point structure is DWORD field limited to 0xFFFFFFFF bytes.\r
+//\r
+#define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF\r
+\r
///\r
/// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.43.\r
/// Upper-level software that interprets the SMBIOS structure-table should bypass an \r
UINT8 SmbiosBcdRevision;\r
} SMBIOS_TABLE_ENTRY_POINT;\r
\r
+typedef struct {\r
+ UINT8 AnchorString[5];\r
+ UINT8 EntryPointStructureChecksum;\r
+ UINT8 EntryPointLength;\r
+ UINT8 MajorVersion;\r
+ UINT8 MinorVersion;\r
+ UINT8 DocRev;\r
+ UINT8 EntryPointRevision;\r
+ UINT8 Reserved;\r
+ UINT32 TableMaximumSize;\r
+ UINT64 TableAddress;\r
+} SMBIOS_TABLE_3_0_ENTRY_POINT;\r
+\r
///\r
/// The Smbios structure header.\r
///\r
UINT8 AcpiIsSupported :1;\r
UINT8 UsbLegacyIsSupported :1;\r
UINT8 AgpIsSupported :1;\r
- UINT8 I20BootIsSupported :1;\r
+ UINT8 I2OBootIsSupported :1;\r
UINT8 Ls120BootIsSupported :1;\r
UINT8 AtapiZipDriveBootIsSupported :1;\r
UINT8 Boot1394IsSupported :1;\r
MiscChassisCompactPCI = 0x1A,\r
MiscChassisAdvancedTCA = 0x1B,\r
MiscChassisBlade = 0x1C,\r
- MiscChassisBladeEnclosure = 0x1D\r
+ MiscChassisBladeEnclosure = 0x1D,\r
+ MiscChassisTablet = 0x1E,\r
+ MiscChassisConvertible = 0x1F,\r
+ MiscChassisDetachable = 0x20\r
} MISC_CHASSIS_TYPE;\r
\r
///\r
ProcessorFamilyPentiumIII = 0x11, \r
ProcessorFamilyM1 = 0x12,\r
ProcessorFamilyM2 = 0x13,\r
- ProcessorFamilyM1Reserved2 = 0x14,\r
- ProcessorFamilyM1Reserved3 = 0x15,\r
- ProcessorFamilyM1Reserved4 = 0x16,\r
- ProcessorFamilyM1Reserved5 = 0x17,\r
+ ProcessorFamilyIntelCeleronM = 0x14,\r
+ ProcessorFamilyIntelPentium4Ht = 0x15,\r
ProcessorFamilyAmdDuron = 0x18,\r
ProcessorFamilyK5 = 0x19, \r
ProcessorFamilyK6 = 0x1A,\r
ProcessorFamilyIntelCoreDuoMobile = 0x29,\r
ProcessorFamilyIntelCoreSoloMobile = 0x2A,\r
ProcessorFamilyIntelAtom = 0x2B,\r
- ProcessorFamilyAlpha3 = 0x30,\r
+ ProcessorFamilyIntelCoreM = 0x2C,\r
+ ProcessorFamilyAlpha = 0x30,\r
ProcessorFamilyAlpha21064 = 0x31,\r
ProcessorFamilyAlpha21066 = 0x32,\r
ProcessorFamilyAlpha21164 = 0x33,\r
ProcessorFamilyAmdOpteron4100Series = 0x3C,\r
ProcessorFamilyAmdOpteron6200Series = 0x3D,\r
ProcessorFamilyAmdOpteron4200Series = 0x3E,\r
+ ProcessorFamilyAmdFxSeries = 0x3F,\r
ProcessorFamilyMips = 0x40,\r
ProcessorFamilyMIPSR4000 = 0x41,\r
ProcessorFamilyMIPSR4200 = 0x42,\r
ProcessorFamilyMIPSR10000 = 0x45,\r
ProcessorFamilyAmdCSeries = 0x46,\r
ProcessorFamilyAmdESeries = 0x47,\r
- ProcessorFamilyAmdSSeries = 0x48,\r
+ ProcessorFamilyAmdASeries = 0x48, ///< SMBIOS spec 2.8.0 updated the name\r
ProcessorFamilyAmdGSeries = 0x49,\r
+ ProcessorFamilyAmdZSeries = 0x4A,\r
+ ProcessorFamilyAmdRSeries = 0x4B,\r
+ ProcessorFamilyAmdOpteron4300 = 0x4C,\r
+ ProcessorFamilyAmdOpteron6300 = 0x4D,\r
+ ProcessorFamilyAmdOpteron3300 = 0x4E,\r
+ ProcessorFamilyAmdFireProSeries = 0x4F,\r
ProcessorFamilySparc = 0x50,\r
ProcessorFamilySuperSparc = 0x51,\r
ProcessorFamilymicroSparcII = 0x52,\r
ProcessorFamilymicroSparcIIep = 0x53,\r
ProcessorFamilyUltraSparc = 0x54,\r
ProcessorFamilyUltraSparcII = 0x55,\r
- ProcessorFamilyUltraSparcIIi = 0x56,\r
+ ProcessorFamilyUltraSparcIii = 0x56,\r
ProcessorFamilyUltraSparcIII = 0x57,\r
ProcessorFamilyUltraSparcIIIi = 0x58,\r
ProcessorFamily68040 = 0x60,\r
ProcessorFamily68010 = 0x63,\r
ProcessorFamily68020 = 0x64,\r
ProcessorFamily68030 = 0x65,\r
+ ProcessorFamilyAmdAthlonX4QuadCore = 0x66,\r
+ ProcessorFamilyAmdOpteronX1000Series = 0x67,\r
+ ProcessorFamilyAmdOpteronX2000Series = 0x68,\r
ProcessorFamilyHobbit = 0x70,\r
ProcessorFamilyCrusoeTM5000 = 0x78,\r
ProcessorFamilyCrusoeTM3000 = 0x79,\r
ProcessorFamilyIntelCeleronD = 0xBA,\r
ProcessorFamilyIntelPentiumD = 0xBB,\r
ProcessorFamilyIntelPentiumEx = 0xBC,\r
- ProcessorFamilyIntelCoreSolo = 0xBD, ///< SMBIOS spec 2.6 correct this value\r
+ ProcessorFamilyIntelCoreSolo = 0xBD, ///< SMBIOS spec 2.6 updated this value\r
ProcessorFamilyReserved = 0xBE,\r
ProcessorFamilyIntelCore2 = 0xBF,\r
ProcessorFamilyIntelCore2Solo = 0xC0,\r
ProcessorFamilyG4 = 0xC9,\r
ProcessorFamilyG5 = 0xCA,\r
ProcessorFamilyG6 = 0xCB,\r
- ProcessorFamilyzArchitectur = 0xCC,\r
+ ProcessorFamilyzArchitecture = 0xCC,\r
ProcessorFamilyIntelCoreI5 = 0xCD,\r
ProcessorFamilyIntelCoreI3 = 0xCE,\r
ProcessorFamilyViaC7M = 0xD2,\r
ProcessorFamilyQuadCoreIntelXeon7Series = 0xDE,\r
ProcessorFamilyMultiCoreIntelXeon7Series = 0xDF,\r
ProcessorFamilyMultiCoreIntelXeon3400Series = 0xE0,\r
+ ProcessorFamilyAmdOpteron3000Series = 0xE4,\r
+ ProcessorFamilyAmdSempronII = 0xE5,\r
ProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6,\r
ProcessorFamilyAmdPhenomTripleCore = 0xE7,\r
ProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8,\r
ProcessorFamilyReserved1 = 0xFF\r
} PROCESSOR_FAMILY_DATA;\r
\r
+///\r
+/// Processor Information2 - Processor Family2.\r
+///\r
+typedef enum {\r
+ ProcessorFamilySH3 = 0x0104,\r
+ ProcessorFamilySH4 = 0x0105,\r
+ ProcessorFamilyARM = 0x0118,\r
+ ProcessorFamilyStrongARM = 0x0119,\r
+ ProcessorFamily6x86 = 0x012C,\r
+ ProcessorFamilyMediaGX = 0x012D,\r
+ ProcessorFamilyMII = 0x012E,\r
+ ProcessorFamilyWinChip = 0x0140,\r
+ ProcessorFamilyDSP = 0x015E,\r
+ ProcessorFamilyVideoProcessor = 0x01F4\r
+} PROCESSOR_FAMILY2_DATA;\r
+\r
///\r
/// Processor Information - Voltage. \r
///\r
ProcessorUpgradeSocketrPGA988B = 0x21,\r
ProcessorUpgradeSocketBGA1023 = 0x22,\r
ProcessorUpgradeSocketBGA1224 = 0x23,\r
- ProcessorUpgradeSocketBGA1155 = 0x24,\r
+ ProcessorUpgradeSocketLGA1155 = 0x24, ///< SMBIOS spec 2.8.0 updated the name\r
ProcessorUpgradeSocketLGA1356 = 0x25,\r
ProcessorUpgradeSocketLGA2011 = 0x26,\r
ProcessorUpgradeSocketFS1 = 0x27,\r
ProcessorUpgradeSocketFS2 = 0x28,\r
ProcessorUpgradeSocketFM1 = 0x29,\r
- ProcessorUpgradeSocketFM2 = 0x2A\r
+ ProcessorUpgradeSocketFM2 = 0x2A,\r
+ ProcessorUpgradeSocketLGA2011_3 = 0x2B,\r
+ ProcessorUpgradeSocketLGA1356_3 = 0x2C,\r
+ ProcessorUpgradeSocketLGA1150 = 0x2D,\r
+ ProcessorUpgradeSocketBGA1168 = 0x2E,\r
+ ProcessorUpgradeSocketBGA1234 = 0x2F,\r
+ ProcessorUpgradeSocketBGA1364 = 0x30\r
} PROCESSOR_UPGRADE;\r
\r
///\r
// Add for smbios 2.6\r
//\r
UINT16 ProcessorFamily2;\r
+ //\r
+ // Add for smbios 3.0\r
+ //\r
+ UINT16 CoreCount2;\r
+ UINT16 EnabledCoreCount2;\r
+ UINT16 ThreadCount2;\r
} SMBIOS_TABLE_TYPE4;\r
\r
///\r
UINT16 NonBurst :1;\r
UINT16 Burst :1;\r
UINT16 PipelineBurst :1;\r
- UINT16 Asynchronous :1;\r
UINT16 Synchronous :1;\r
+ UINT16 Asynchronous :1;\r
UINT16 Reserved :9;\r
} CACHE_SRAM_TYPE_DATA;\r
\r
PortConnectorTypeRJ45 = 0x0B,\r
PortConnectorType50PinMiniScsi = 0x0C,\r
PortConnectorTypeMiniDin = 0x0D,\r
- PortConnectorTypeMicriDin = 0x0E,\r
+ PortConnectorTypeMicroDin = 0x0E,\r
PortConnectorTypePS2 = 0x0F,\r
PortConnectorTypeInfrared = 0x10,\r
PortConnectorTypeHpHil = 0x11,\r
PortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
PortConnectorTypeBNC = 0x20,\r
PortConnectorType1394 = 0x21,\r
+ PortConnectorTypeSasSata = 0x22,\r
PortConnectorTypePC98 = 0xA0,\r
PortConnectorTypePC98Hireso = 0xA1,\r
PortConnectorTypePCH98 = 0xA2,\r
PortTypeAudioPort = 0x1D,\r
PortTypeModemPort = 0x1E,\r
PortTypeNetworkPort = 0x1F,\r
+ PortTypeSata = 0x20,\r
+ PortTypeSas = 0x21,\r
PortType8251Compatible = 0xA0,\r
PortType8251FifoCompatible = 0xA1,\r
PortTypeOther = 0xFF\r
SlotTypeApg2X = 0x10,\r
SlotTypeAgp4X = 0x11,\r
SlotTypePciX = 0x12,\r
- SlotTypeAgp4x = 0x13,\r
+ SlotTypeAgp8X = 0x13,\r
+ SlotTypeM2Socket1_DP = 0x14,\r
+ SlotTypeM2Socket1_SD = 0x15,\r
+ SlotTypeM2Socket2 = 0x16,\r
+ SlotTypeM2Socket3 = 0x17,\r
+ SlotTypeMxmTypeI = 0x18,\r
+ SlotTypeMxmTypeII = 0x19,\r
+ SlotTypeMxmTypeIIIStandard = 0x1A,\r
+ SlotTypeMxmTypeIIIHe = 0x1B,\r
+ SlotTypeMxmTypeIV = 0x1C,\r
+ SlotTypeMxm30TypeA = 0x1D,\r
+ SlotTypeMxm30TypeB = 0x1E,\r
+ SlotTypePciExpressGen2Sff_8639 = 0x1F,\r
+ SlotTypePciExpressGen3Sff_8639 = 0x20,\r
SlotTypePC98C20 = 0xA0,\r
SlotTypePC98C24 = 0xA1,\r
SlotTypePC98E = 0xA2,\r
OnBoardDeviceTypeScsiController = 0x04,\r
OnBoardDeviceTypeEthernet = 0x05,\r
OnBoardDeviceTypeTokenRing = 0x06,\r
- OnBoardDeviceTypeSound = 0x07\r
+ OnBoardDeviceTypeSound = 0x07,\r
+ OnBoardDeviceTypePATAController = 0x08,\r
+ OnBoardDeviceTypeSATAController = 0x09,\r
+ OnBoardDeviceTypeSASController = 0x0A\r
} MISC_ONBOARD_DEVICE_TYPE;\r
\r
///\r
SMBIOS_TABLE_STRING CurrentLanguages;\r
} SMBIOS_TABLE_TYPE13;\r
\r
+///\r
+/// Group Item Entry\r
+///\r
+typedef struct {\r
+ UINT8 ItemType;\r
+ UINT16 ItemHandle;\r
+} GROUP_STRUCT;\r
+\r
+///\r
+/// Group Associations (Type 14).\r
+///\r
+/// The Group Associations structure is provided for OEMs who want to specify \r
+/// the arrangement or hierarchy of certain components (including other Group Associations) \r
+/// within the system. \r
+///\r
+typedef struct {\r
+ SMBIOS_STRUCTURE Hdr;\r
+ SMBIOS_TABLE_STRING GroupName;\r
+ GROUP_STRUCT Group[1];\r
+} SMBIOS_TABLE_TYPE14;\r
+\r
///\r
/// System Event Log - Event Log Types.\r
/// \r
EventLogVariableOEMAssigned = 0x80\r
} EVENT_LOG_VARIABLE_DATA;\r
\r
-///\r
-/// Group Item Entry\r
-///\r
-typedef struct {\r
- UINT8 ItemType;\r
- UINT16 ItemHandle;\r
-} GROUP_STRUCT;\r
-\r
///\r
/// Event Log Type Descriptors\r
///\r
UINT8 DataFormatType;\r
} EVENT_LOG_TYPE;\r
\r
-///\r
-/// Group Associations (Type 14).\r
-///\r
-/// The Group Associations structure is provided for OEMs who want to specify \r
-/// the arrangement or hierarchy of certain components (including other Group Associations) \r
-/// within the system. \r
-///\r
-typedef struct {\r
- SMBIOS_STRUCTURE Hdr;\r
- SMBIOS_TABLE_STRING GroupName;\r
- GROUP_STRUCT Group[1];\r
-} SMBIOS_TABLE_TYPE14;\r
-\r
///\r
/// System Event Log (Type 15).\r
///\r
MemoryTypeDdr2 = 0x13,\r
MemoryTypeDdr2FbDimm = 0x14,\r
MemoryTypeDdr3 = 0x18,\r
- MemoryTypeFbd2 = 0x19\r
+ MemoryTypeFbd2 = 0x19,\r
+ MemoryTypeDdr4 = 0x1A,\r
+ MemoryTypeLpddr = 0x1B,\r
+ MemoryTypeLpddr2 = 0x1C,\r
+ MemoryTypeLpddr3 = 0x1D,\r
+ MemoryTypeLpddr4 = 0x1E\r
} MEMORY_DEVICE_TYPE;\r
\r
typedef struct {\r
UINT16 Nonvolatile :1;\r
UINT16 Registered :1;\r
UINT16 Unbuffered :1;\r
- UINT16 Reserved1 :1;\r
+ UINT16 LrDimm :1;\r
} MEMORY_DEVICE_TYPE_DETAIL;\r
\r
///\r
//\r
UINT32 ExtendedSize;\r
UINT16 ConfiguredMemoryClockSpeed;\r
+ //\r
+ // Add for smbios 2.8.0\r
+ //\r
+ UINT16 MinimumVoltage;\r
+ UINT16 MaximumVoltage;\r
+ UINT16 ConfiguredVoltage;\r
} SMBIOS_TABLE_TYPE17;\r
\r
///\r
SMBIOS_TABLE_TYPE39 *Type39;\r
SMBIOS_TABLE_TYPE40 *Type40;\r
SMBIOS_TABLE_TYPE41 *Type41;\r
+ SMBIOS_TABLE_TYPE42 *Type42;\r
SMBIOS_TABLE_TYPE126 *Type126;\r
SMBIOS_TABLE_TYPE127 *Type127;\r
UINT8 *Raw;\r