]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/DataHubRecords.h
Add more smbios record support.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / DataHubRecords.h
index e7b0b30d1f0bf31513a27e3333b1e107cfe21f1d..18b4542ef2e4cc9b4d13ee28ceef01d2c89e21eb 100644 (file)
@@ -790,7 +790,148 @@ typedef struct {
   UINT8                       MemoryChannelDeviceLoad;\r
 } EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
 \r
-\r
+//\r
+//  Memory. Controller Information - SMBIOS Type 5\r
+//\r
+#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008\r
+\r
+typedef enum {  \r
+  EfiErrorDetectingMethodOther   = 1,\r
+  EfiErrorDetectingMethodUnknown = 2,\r
+  EfiErrorDetectingMethodNone    = 3,\r
+  EfiErrorDetectingMethodParity  = 4,\r
+  EfiErrorDetectingMethod32Ecc   = 5,\r
+  EfiErrorDetectingMethod64Ecc   = 6,\r
+  EfiErrorDetectingMethod128Ecc  = 7,\r
+  EfiErrorDetectingMethodCrc     = 8\r
+} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;\r
+\r
+typedef struct {\r
+  UINT8  Other                 :1;\r
+  UINT8  Unknown               :1;\r
+  UINT8  None                  :1;\r
+  UINT8  SingleBitErrorCorrect :1;\r
+  UINT8  DoubleBitErrorCorrect :1;\r
+  UINT8  ErrorScrubbing        :1;\r
+  UINT8  Reserved              :2;\r
+} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;\r
+\r
+typedef enum {  \r
+  EfiMemoryInterleaveOther      = 1,\r
+  EfiMemoryInterleaveUnknown    = 2,\r
+  EfiMemoryInterleaveOneWay     = 3,\r
+  EfiMemoryInterleaveTwoWay     = 4,\r
+  EfiMemoryInterleaveFourWay    = 5,\r
+  EfiMemoryInterleaveEightWay   = 6,\r
+  EfiMemoryInterleaveSixteenWay = 7\r
+} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;\r
+\r
+typedef struct {\r
+  UINT16  Other                 :1;\r
+  UINT16  Unknown               :1;\r
+  UINT16  SeventyNs             :1;\r
+  UINT16  SixtyNs               :1;\r
+  UINT16  FiftyNs               :1;\r
+  UINT16  Reserved              :11;\r
+} EFI_MEMORY_SPEED_TYPE;\r
+\r
+typedef struct {\r
+  UINT16  Other                 :1;\r
+  UINT16  Unknown               :1;\r
+  UINT16  Standard              :1;\r
+  UINT16  FastPageMode          :1;\r
+  UINT16  EDO                   :1;\r
+  UINT16  Parity                :1;\r
+  UINT16  ECC                   :1;\r
+  UINT16  SIMM                  :1;\r
+  UINT16  DIMM                  :1;\r
+  UINT16  BurstEdo              :1;\r
+  UINT16  SDRAM                 :1;\r
+  UINT16  Reserved              :5;\r
+} EFI_MEMORY_SUPPORTED_TYPE;\r
+\r
+typedef struct {\r
+  UINT8  Five                  :1;\r
+  UINT8  There                 :1;\r
+  UINT8  Two                   :1;\r
+  UINT8  Reserved              :5;\r
+} EFI_MEMORY_MODULE_VOLTAGE_TYPE;\r
+\r
+typedef struct {\r
+  EFI_MEMORY_ERROR_DETECT_METHOD_TYPE   ErrorDetectingMethod;\r
+  EFI_MEMORY_ERROR_CORRECT_CAPABILITY   ErrorCorrectingCapability;\r
+  EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE    MemorySupportedInterleave;\r
+  EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE    MemoryCurrentInterleave;\r
+  UINT8                                 MaxMemoryModuleSize;\r
+  EFI_MEMORY_SPEED_TYPE                 MemorySpeedType;\r
+  EFI_MEMORY_SUPPORTED_TYPE             MemorySupportedType;\r
+  EFI_MEMORY_MODULE_VOLTAGE_TYPE        MemoryModuleVoltage;\r
+  UINT8                                 NumberofMemorySlot;\r
+  EFI_MEMORY_ERROR_CORRECT_CAPABILITY   EnabledCorrectingCapability;\r
+  UINT16                                *MemoryModuleConfigHandles;\r
+} EFI_MEMORY_CONTROLLER_INFORMATION;\r
+\r
+//\r
+//  Memory. Error Information - SMBIOS Type 18\r
+//\r
+#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009\r
+\r
+typedef enum {  \r
+  EfiMemoryErrorOther             = 1,\r
+  EfiMemoryErrorUnknown           = 2,\r
+  EfiMemoryErrorOk                = 3,\r
+  EfiMemoryErrorBadRead           = 4,\r
+  EfiMemoryErrorParity            = 5,\r
+  EfiMemoryErrorSigleBit          = 6,\r
+  EfiMemoryErrorDoubleBit         = 7,\r
+  EfiMemoryErrorMultiBit          = 8,\r
+  EfiMemoryErrorNibble            = 9,\r
+  EfiMemoryErrorChecksum          = 10,\r
+  EfiMemoryErrorCrc               = 11,\r
+  EfiMemoryErrorCorrectSingleBit  = 12,\r
+  EfiMemoryErrorCorrected         = 13,\r
+  EfiMemoryErrorUnCorrectable     = 14\r
+} EFI_MEMORY_ERROR_TYPE;\r
+\r
+typedef enum {  \r
+  EfiMemoryGranularityOther               = 1,\r
+  EfiMemoryGranularityOtherUnknown        = 2,\r
+  EfiMemoryGranularityDeviceLevel         = 3,\r
+  EfiMemoryGranularityMemPartitionLevel   = 4\r
+} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
+\r
+typedef enum {  \r
+  EfiMemoryErrorOperationOther            = 1,\r
+  EfiMemoryErrorOperationUnknown          = 2,\r
+  EfiMemoryErrorOperationRead             = 3,\r
+  EfiMemoryErrorOperationWrite            = 4,\r
+  EfiMemoryErrorOperationPartialWrite     = 5\r
+} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
+\r
+typedef struct {\r
+  EFI_MEMORY_ERROR_TYPE               MemoryErrorType;\r
+  EFI_MEMORY_ERROR_GRANULARITY_TYPE   MemoryErrorGranularity;\r
+  EFI_MEMORY_ERROR_OPERATION_TYPE     MemoryErrorOperation;\r
+  UINT32                              VendorSyndrome;\r
+  UINT32                              MemoryArrayErrorAddress;\r
+  UINT32                              DeviceErrorAddress;\r
+  UINT32                              DeviceErrorResolution;\r
+} EFI_MEMORY_32BIT_ERROR_INFORMATION;\r
+\r
+//\r
+//  Memory. Error Information - SMBIOS Type 33\r
+//\r
+#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A\r
+\r
+typedef struct {\r
+  EFI_MEMORY_ERROR_TYPE               MemoryErrorType;\r
+  EFI_MEMORY_ERROR_GRANULARITY_TYPE   MemoryErrorGranularity;\r
+  EFI_MEMORY_ERROR_OPERATION_TYPE     MemoryErrorOperation;\r
+  UINT32                              VendorSyndrome;\r
+  UINT64                              MemoryArrayErrorAddress;\r
+  UINT64                              DeviceErrorAddress;\r
+  UINT32                              DeviceErrorResolution;\r
+} EFI_MEMORY_64BIT_ERROR_INFORMATION;\r
 \r
 typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
   EFI_MEMORY_SIZE_DATA                  SizeData;\r
@@ -800,6 +941,9 @@ typedef union _EFI_MEMORY_SUBCLASS_RECORDS {
   EFI_MEMORY_DEVICE_START_ADDRESS_DATA  DeviceStartAddress;\r
   EFI_MEMORY_CHANNEL_TYPE_DATA          ChannelTypeData;\r
   EFI_MEMORY_CHANNEL_DEVICE_DATA        ChannelDeviceData;\r
+  EFI_MEMORY_CONTROLLER_INFORMATION     MemoryControllerInfo;\r
+  EFI_MEMORY_32BIT_ERROR_INFORMATION    Memory32bitErrorInfo;\r
+  EFI_MEMORY_64BIT_ERROR_INFORMATION    Memory64bitErrorInfo;\r
 } EFI_MEMORY_SUBCLASS_RECORDS;\r
 \r
 typedef struct {\r
@@ -1348,34 +1492,6 @@ typedef struct {
   UINT16                   GroupElementId;\r
 } EFI_MISC_GROUP_ITEM_SET_DATA;\r
 \r
-//  Misc. System Event Log  - SMBIOS Type 15\r
-//\r
-#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D\r
-typedef struct {\r
-  UINT16                LogAreaLength;\r
-  UINT16                LogHeaderStartOffset;\r
-  UINT16                LogDataStartOffset;\r
-  UINT8                 AccessMethod;\r
-  UINT8                 LogStatus;\r
-  UINT32                LogChangeToken;\r
-  UINT32                AccessMethodAddress;\r
-  UINT8                 LogHeaderFormat;\r
-  UINT8                 NumberOfSupportedLogType;\r
-  UINT8                 LengthOfLogDescriptor;\r
-} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
-\r
-//\r
-// Access Method.\r
-//  0x00~0x04:  as following definition\r
-//  0x05~0x7f:  Available for future assignment.\r
-//  0x80~0xff:  BIOS Vendor/OEM-specific.\r
-//\r
-#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT    0x00\r
-#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT    0X01\r
-#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT   0X02\r
-#define ACCESS_MEMORY_MAPPED                  0x03\r
-#define ACCESS_GPNV                           0x04\r
-\r
 //\r
 //////////////////////////////////////////////////////////////////////////////\r
 //\r
@@ -1495,7 +1611,7 @@ typedef struct {
 //\r
 // Misc. Hardware Security - SMBIOS Type 24\r
 //\r
-#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012\r
+#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012\r
 \r
 typedef enum {\r
   EfiHardwareSecurityStatusDisabled       = 0,\r
@@ -1756,6 +1872,7 @@ typedef struct {
   STRING_REF               ManagementDeviceComponentDescription;\r
   EFI_INTER_LINK_DATA      ManagementDeviceLink;\r
   EFI_INTER_LINK_DATA      ManagementDeviceComponentLink;\r
+  EFI_INTER_LINK_DATA      ManagementDeviceThresholdLink;\r
 } EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
 \r
 //\r
@@ -1803,7 +1920,7 @@ typedef struct {
 } POWER_SUPPLY_CHARACTERISTICS;\r
 \r
 typedef struct {\r
-  UINT16                          PowerUnitGroup;\r
+  UINT                          PowerUnitGroup;\r
   STRING_REF                      PowerSupplyLocation;\r
   STRING_REF                      PowerSupplyDeviceName;\r
   STRING_REF                      PowerSupplyManufacturer;\r
@@ -1838,6 +1955,54 @@ typedef struct {
 \r
 #define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER  0x0000001F\r
 \r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+//  Misc. System Event Log  - SMBIOS Type 15\r
+//\r
+#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020\r
+typedef struct {\r
+  //SMBIOS_STRUCTURE_HDR  Header;\r
+  UINT16                LogAreaLength;\r
+  UINT16                LogHeaderStartOffset;\r
+  UINT16                LogDataStartOffset;\r
+  UINT8                 AccessMethod;\r
+  UINT8                 LogStatus;\r
+  UINT32                LogChangeToken;\r
+  UINT32                AccessMethodAddress;\r
+  UINT8                 LogHeaderFormat;\r
+  UINT8                 NumberOfSupportedLogType;\r
+  UINT8                 LengthOfLogDescriptor;\r
+} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
+\r
+//\r
+// Access Method.\r
+//  0x00~0x04:  as following definition\r
+//  0x05~0x7f:  Available for future assignment.\r
+//  0x80~0xff:  BIOS Vendor/OEM-specific.\r
+// \r
+#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT    0x00\r
+#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT    0X01\r
+#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT   0X02\r
+#define ACCESS_MEMORY_MAPPED                  0x03\r
+#define ACCESS_GPNV                           0x04\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+//Management Device Threshold Data Record - SMBIOS Type 36\r
+//\r
+#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER  0x00000021\r
+\r
+typedef struct {\r
+  UINT16                          LowerThresNonCritical;\r
+  UINT16                          UpperThresNonCritical;\r
+  UINT16                          LowerThresCritical;\r
+  UINT16                          UpperThresCritical;\r
+  UINT16                          LowerThresNonRecover;\r
+  UINT16                          UpperThresNonRecover;\r
+} EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD;\r
+\r
 //\r
 // Declare the following strutures alias to use them more conviniently.\r
 //\r
@@ -1894,6 +2059,7 @@ typedef union {
   EFI_MISC_IPMI_INTERFACE_TYPE_DATA                  MiscIpmiInterfaceTypeData;\r
   EFI_MISC_SYSTEM_POWER_SUPPLY_DATA                  MiscPowerSupplyInfo;\r
   EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA          MiscSmbiosStructEncapsulation;\r
+  EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD               MiscManagementDeviceThreshold;\r
 } EFI_MISC_SUBCLASS_RECORDS;\r
 \r
 //\r