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
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
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
//\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
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
} POWER_SUPPLY_CHARACTERISTICS;\r
\r
typedef struct {\r
- UINT16 PowerUnitGroup;\r
+ UINT8 PowerUnitGroup;\r
STRING_REF PowerSupplyLocation;\r
STRING_REF PowerSupplyDeviceName;\r
STRING_REF PowerSupplyManufacturer;\r
\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
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