Cache subclass specification 0.9, DataHub SubClass specification 0.9, Memory SubClass Spec 0.9,\r
Processor Subclass specification 0.9, and Misc SubClass specification 0.9.\r
\r
-Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved<BR>\r
+Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<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
typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
+typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;\r
\r
typedef struct {\r
UINT32 ProcessorSteppingId:4;\r
EfiProcessorFamilyReserved1 = 0xFF\r
} EFI_PROCESSOR_FAMILY_DATA;\r
\r
+typedef enum {\r
+ EfiProcessorFamilySh3 = 0x104,\r
+ EfiProcessorFamilySh4 = 0x105,\r
+ EfiProcessorFamilyArm = 0x118,\r
+ EfiProcessorFamilyStrongArm = 0x119,\r
+ EfiProcessorFamily6x86 = 0x12C,\r
+ EfiProcessorFamilyMediaGx = 0x12D,\r
+ EfiProcessorFamilyMii = 0x12E,\r
+ EfiProcessorFamilyWinChip = 0x140,\r
+ EfiProcessorFamilyDsp = 0x15E,\r
+ EfiProcessorFamilyVideo = 0x1F4\r
+} EFI_PROCESSOR_FAMILY2_DATA;\r
+\r
///\r
/// This data record refers to the core voltage of the processor being defined. The unit of measurement \r
/// of this data record is in volts. \r
///\r
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
\r
+typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;\r
+\r
+typedef struct {\r
+ UINT16 Reserved :1;\r
+ UINT16 Unknown :1;\r
+ UINT16 Capable64Bit :1;\r
+ UINT16 Reserved2 :13;\r
+} EFI_PROCESSOR_CHARACTERISTICS_DATA;\r
+\r
///\r
/// Inconsistent with specification here:\r
/// In ProcSubclass specification 0.9, the enumeration type data structure is NOT defined.\r
ProcessorPackageNumberRecordType = 21,\r
ProcessorCoreFrequencyListRecordType = 22,\r
ProcessorFsbFrequencyListRecordType = 23,\r
- ProcessorHealthStatusRecordType = 24\r
+ ProcessorHealthStatusRecordType = 24,\r
+ ProcessorCoreCountRecordType = 25,\r
+ ProcessorEnabledCoreCountRecordType = 26,\r
+ ProcessorThreadCountRecordType = 27,\r
+ ProcessorCharacteristicsRecordType = 28,\r
+ ProcessorFamily2RecordType = 29,\r
+ ProcessorPartNumberRecordType = 30,\r
} EFI_CPU_VARIABLE_RECORD_TYPE;\r
\r
///\r
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;\r
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;\r
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;\r
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;\r
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;\r
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;\r
} EFI_CPU_VARIABLE_RECORD;\r
\r
typedef struct {\r
EfiSlotTypePC98Card = 0xA4,\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass specification 0.9, this field isn't defined.\r
- /// It's introduced for SmBios 2.6 specification type 9.\r
- ///\r
- EfiSlotTypePciExpress = 0xA5\r
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
+ ///\r
+ EfiSlotTypePciExpress = 0xA5,\r
+ EfiSlotTypePciExpressX1 = 0xA6,\r
+ EfiSlotTypePciExpressX2 = 0xA7,\r
+ EfiSlotTypePciExpressX4 = 0xA8,\r
+ EfiSlotTypePciExpressX8 = 0xA9,\r
+ EfiSlotTypePciExpressX16 = 0xAA\r
} EFI_MISC_SLOT_TYPE;\r
\r
typedef enum {\r
EfiSlotDataBusWidth16Bit = 0x04,\r
EfiSlotDataBusWidth32Bit = 0x05,\r
EfiSlotDataBusWidth64Bit = 0x06,\r
- EfiSlotDataBusWidth128Bit = 0x07\r
+ EfiSlotDataBusWidth128Bit = 0x07,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
+ ///\r
+ EfiSlotDataBusWidth1xOrx1 = 0x8,\r
+ EfiSlotDataBusWidth2xOrx2 = 0x9,\r
+ EfiSlotDataBusWidth4xOrx4 = 0xA,\r
+ EfiSlotDataBusWidth8xOrx8 = 0xB,\r
+ EfiSlotDataBusWidth12xOrx12 = 0xC,\r
+ EfiSlotDataBusWidth16xOrx16 = 0xD,\r
+ EfiSlotDataBusWidth32xOrx32 = 0xE\r
} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
\r
typedef enum {\r
typedef struct {\r
EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
- UINT16 CoolingDeviceUnitGroup;\r
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
+ UINT8 CoolingDeviceUnitGroup;\r
+ UINT16 CoolingDeviceNominalSpeed;\r
UINT32 CoolingDeviceOemDefined;\r
} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
\r
STRING_REF TemperatureProbeDescription;\r
EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
TemperatureProbeLocation;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// MiscSubclass 0.9 specification defines the fields type as EFI_EXP_BASE10_DATA.\r
+ /// In fact, they should be UINT16 type because they refer to 16bit width data.\r
+ /// Keeping this inconsistency for backward compatibility.\r
+ ///\r
+ UINT16 TemperatureProbeMaximumValue;\r
+ UINT16 TemperatureProbeMinimumValue;\r
+ UINT16 TemperatureProbeResolution;\r
+ UINT16 TemperatureProbeTolerance;\r
+ UINT16 TemperatureProbeAccuracy;\r
+ UINT16 TemperatureProbeNominalValue;\r
+ UINT16 MDLowerNoncriticalThreshold;\r
+ UINT16 MDUpperNoncriticalThreshold;\r
+ UINT16 MDLowerCriticalThreshold;\r
+ UINT16 MDUpperCriticalThreshold;\r
+ UINT16 MDLowerNonrecoverableThreshold;\r
+ UINT16 MDUpperNonrecoverableThreshold;\r
UINT32 TemperatureProbeOemDefined;\r
} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
\r
/// It's introduced for SmBios 2.6 specification type 35.\r
///\r
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass specification 0.9, this field is NOT defined.\r
+ /// It's implementation-specific to simplify the code logic.\r
+ ///\r
+ UINT8 ComponentType;\r
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
\r
//\r
} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
\r
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
+///\r
+/// The definition above is *NOT* defined in MiscSubclass specifications 0.9.\r
+/// It's defined for backward compatibility.\r
+///\r
+#define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER\r
\r
///\r
/// System Power supply Record - SMBIOS Type 39\r
EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;\r
typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;\r
typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;\r
+typedef EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;\r
\r
///\r
/// Inconsistent with specification here: \r