]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/SmBios.h
MdePkg: Add ProcessorUpgradeSocketLGA4677 from SMBIOS 3.5.0
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SmBios.h
index 8b3c4d7ba9d0e0bd99a92cfb7f4f3fe4a681ddea..2c2b32b8d462d8cd3cb6126c01009ea364162161 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Industry Standard Definitions of SMBIOS Table Specification v3.3.0.\r
 \r
-Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>\r
 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>\r
 (C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
@@ -810,7 +810,10 @@ typedef enum {
   ProcessorUpgradeSocketLGA2066   = 0x39,\r
   ProcessorUpgradeSocketBGA1392   = 0x3A,\r
   ProcessorUpgradeSocketBGA1510   = 0x3B,\r
-  ProcessorUpgradeSocketBGA1528   = 0x3C\r
+  ProcessorUpgradeSocketBGA1528   = 0x3C,\r
+  ProcessorUpgradeSocketLGA4189   = 0x3D,\r
+  ProcessorUpgradeSocketLGA1200   = 0x3E,\r
+  ProcessorUpgradeSocketLGA4677   = 0x3F\r
 } PROCESSOR_UPGRADE;\r
 \r
 ///\r
@@ -862,18 +865,32 @@ typedef struct {
 } PROCESSOR_FEATURE_FLAGS;\r
 \r
 typedef struct {\r
-  UINT32  ProcessorReserved1             :1;\r
-  UINT32  ProcessorUnknown               :1;\r
-  UINT32  Processor64BitCapble           :1;\r
-  UINT32  ProcessorMultiCore             :1;\r
-  UINT32  ProcessorHardwareThread        :1;\r
-  UINT32  ProcessorExecuteProtection     :1;\r
-  UINT32  ProcessorEnhancedVirtulization :1;\r
-  UINT32  ProcessorPowerPerformanceCtrl  :1;\r
-  UINT32  Processor128bitCapble          :1;\r
-  UINT32  ProcessorReserved2             :7;\r
+  UINT16  ProcessorReserved1              :1;\r
+  UINT16  ProcessorUnknown                :1;\r
+  UINT16  Processor64BitCapable           :1;\r
+  UINT16  ProcessorMultiCore              :1;\r
+  UINT16  ProcessorHardwareThread         :1;\r
+  UINT16  ProcessorExecuteProtection      :1;\r
+  UINT16  ProcessorEnhancedVirtualization :1;\r
+  UINT16  ProcessorPowerPerformanceCtrl   :1;\r
+  UINT16  Processor128BitCapable          :1;\r
+  UINT16  ProcessorArm64SocId             :1;\r
+  UINT16  ProcessorReserved2              :6;\r
 } PROCESSOR_CHARACTERISTIC_FLAGS;\r
 \r
+///\r
+/// Processor Information - Status\r
+///\r
+typedef union {\r
+  struct {\r
+    UINT8 CpuStatus       :3; ///< Indicates the status of the processor.\r
+    UINT8 Reserved1       :3; ///< Reserved for future use. Must be set to zero.\r
+    UINT8 SocketPopulated :1; ///< Indicates if the processor socket is populated or not.\r
+    UINT8 Reserved2       :1; ///< Reserved for future use. Must be set to zero.\r
+  } Bits;\r
+  UINT8 Data;\r
+} PROCESSOR_STATUS_DATA;\r
+\r
 typedef struct {\r
   PROCESSOR_SIGNATURE     Signature;\r
   PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
@@ -893,7 +910,7 @@ typedef struct {
   SMBIOS_TABLE_STRING   Socket;\r
   UINT8                 ProcessorType;          ///< The enumeration value from PROCESSOR_TYPE_DATA.\r
   UINT8                 ProcessorFamily;        ///< The enumeration value from PROCESSOR_FAMILY_DATA.\r
-  SMBIOS_TABLE_STRING   ProcessorManufacture;\r
+  SMBIOS_TABLE_STRING   ProcessorManufacturer;\r
   PROCESSOR_ID_DATA     ProcessorId;\r
   SMBIOS_TABLE_STRING   ProcessorVersion;\r
   PROCESSOR_VOLTAGE     Voltage;\r
@@ -1379,7 +1396,10 @@ typedef struct {
   UINT8  HotPlugDevicesSupported :1;\r
   UINT8  SmbusSignalSupported    :1;\r
   UINT8  BifurcationSupported    :1;\r
-  UINT8  Reserved                :4;  ///< Set to 0.\r
+  UINT8  AsyncSurpriseRemoval    :1;\r
+  UINT8  FlexbusSlotCxl10Capable :1;\r
+  UINT8  FlexbusSlotCxl20Capable :1;\r
+  UINT8  Reserved                :1;  ///< Set to 0.\r
 } MISC_SLOT_CHARACTERISTICS2;\r
 \r
 ///\r
@@ -1421,6 +1441,12 @@ typedef struct {
   UINT8                       DataBusWidth;\r
   UINT8                       PeerGroupingCount;\r
   MISC_SLOT_PEER_GROUP        PeerGroups[1];\r
+  //\r
+  // Add for smbios 3.4\r
+  //\r
+  UINT8                       SlotInformation;\r
+  UINT8                       SlotPhysicalWidth;\r
+  UINT16                      SlotPitch;\r
 } SMBIOS_TABLE_TYPE9;\r
 \r
 ///\r
@@ -1614,7 +1640,7 @@ typedef enum {
   MemoryArrayLocationPc98C24AddonCard      = 0xA1,\r
   MemoryArrayLocationPc98EAddonCard        = 0xA2,\r
   MemoryArrayLocationPc98LocalBusAddonCard = 0xA3,\r
-  MemoryArrayLocationCXLFlexbus10AddonCard = 0xA4\r
+  MemoryArrayLocationCXLAddonCard          = 0xA4\r
 } MEMORY_ARRAY_LOCATION;\r
 \r
 ///\r
@@ -1718,7 +1744,9 @@ typedef enum {
   MemoryTypeLpddr4                         = 0x1E,\r
   MemoryTypeLogicalNonVolatileDevice       = 0x1F,\r
   MemoryTypeHBM                            = 0x20,\r
-  MemoryTypeHBM2                           = 0x21\r
+  MemoryTypeHBM2                           = 0x21,\r
+  MemoryTypeDdr5                           = 0x22,\r
+  MemoryTypeLpddr5                         = 0x23\r
 } MEMORY_DEVICE_TYPE;\r
 \r
 ///\r
@@ -1747,17 +1775,18 @@ typedef struct {
 /// 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
+  MemoryTechnologyOther                          = 0x01,\r
+  MemoryTechnologyUnknown                        = 0x02,\r
+  MemoryTechnologyDram                           = 0x03,\r
+  MemoryTechnologyNvdimmN                        = 0x04,\r
+  MemoryTechnologyNvdimmF                        = 0x05,\r
+  MemoryTechnologyNvdimmP                        = 0x06,\r
   //\r
   // This definition is updated to represent Intel\r
-  // Optane DC Presistent Memory in SMBIOS spec 3.3.0\r
+  // Optane DC Persistent Memory in SMBIOS spec 3.4.0\r
   //\r
-  MemoryTechnologyIntelPersistentMemory     = 0x07\r
+  MemoryTechnologyIntelOptanePersistentMemory    = 0x07\r
+\r
 } MEMORY_DEVICE_TECHNOLOGY;\r
 \r
 ///\r
@@ -1834,7 +1863,7 @@ typedef struct {
   //\r
   UINT8                                     MemoryTechnology;   ///< The enumeration value from MEMORY_DEVICE_TECHNOLOGY\r
   MEMORY_DEVICE_OPERATING_MODE_CAPABILITY   MemoryOperatingModeCapability;\r
-  SMBIOS_TABLE_STRING                       FirwareVersion;\r
+  SMBIOS_TABLE_STRING                       FirmwareVersion;\r
   UINT16                                    ModuleManufacturerID;\r
   UINT16                                    ModuleProductID;\r
   UINT16                                    MemorySubsystemControllerManufacturerID;\r
@@ -1843,6 +1872,11 @@ typedef struct {
   UINT64                                    VolatileSize;\r
   UINT64                                    CacheSize;\r
   UINT64                                    LogicalSize;\r
+  //\r
+  // Add for smbios 3.3.0\r
+  //\r
+  UINT32                                    ExtendedSpeed;\r
+  UINT32                                    ExtendedConfiguredMemorySpeed;\r
 } SMBIOS_TABLE_TYPE17;\r
 \r
 ///\r
@@ -2498,6 +2532,15 @@ typedef struct {
   UINT8                             DevFuncNum;\r
 } SMBIOS_TABLE_TYPE41;\r
 \r
+///\r
+///  Management Controller Host Interface - Protocol Record Data Format.\r
+///\r
+typedef struct {\r
+  UINT8                        ProtocolType;\r
+  UINT8                        ProtocolTypeDataLen;\r
+  UINT8                        ProtocolTypeData[1];\r
+} MC_HOST_INTERFACE_PROTOCOL_RECORD;\r
+\r
 ///\r
 /// Management Controller Host Interface - Interface Types.\r
 /// 00h - 3Fh: MCTP Host Interfaces\r