diff options
Diffstat (limited to 'IntelFrameworkPkg')
-rw-r--r-- | IntelFrameworkPkg/FrameworkSpecConformance.txt | 63 | ||||
-rw-r--r-- | IntelFrameworkPkg/Include/Guid/DataHubRecords.h | 70 |
2 files changed, 110 insertions, 23 deletions
diff --git a/IntelFrameworkPkg/FrameworkSpecConformance.txt b/IntelFrameworkPkg/FrameworkSpecConformance.txt index 5a52bf5190..36644c85be 100644 --- a/IntelFrameworkPkg/FrameworkSpecConformance.txt +++ b/IntelFrameworkPkg/FrameworkSpecConformance.txt @@ -658,11 +658,14 @@ typedef struct {
...
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
+ UINT8 ComponentType;
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;
- The field listed above is *NOT* defined in MiscSubclass specification 0.9. It is introduced to support
- new management device component (type 35) defined in SmBios 2.6 specification.
- Keeping this inconsistency to reflect the latest industry standard.
+ a. The field "ManagementDeviceThresholdLink" above is *NOT* defined in MiscSubclass specification 0.9. It is introduced to support
+ new management device component (type 35) defined in SmBios 2.6 specification.
+ Keeping this inconsistency to reflect the latest industry standard.
+ b. The field "ComponentType" above is *NOT* defined in MiscSubclass specifications 0.9. It's implementation-specific to simplify the code logic.
+ Keeping this inconsistency for backward compatibility.
6. Guid/DataHubRecords.h
typedef struct {
@@ -680,14 +683,19 @@ ...
EfiSlotTypeAgp2X = 0x10,
...
- EfiSlotTypePciExpress = 0xA5
+ EfiSlotTypePciExpress = 0xA5,
+ EfiSlotTypePciExpressX1 = 0xA6,
+ EfiSlotTypePciExpressX2 = 0xA7,
+ EfiSlotTypePciExpressX4 = 0xA8,
+ EfiSlotTypePciExpressX8 = 0xA9,
+ EfiSlotTypePciExpressX16 = 0xAA
} EFI_MISC_SLOT_TYPE;
a. The field name "EfiSlotTypeAgp2X" is *NOT* consistent with MiscSubclass specification 0.9, in which it is named
"EfiSlotTypeApg2X".
From its literal sense, this field represents a AGP type display card, so it should be named as "EfiSlotTypeAgp2X".
- b. The "EfiSlotTypePciExpress" field is *NOT* defined in MiscSubclass specification 0.9. It isintroduced to support
- new system slots (type 9) defined in SmBios 2.6 specification.
+ b. The enumeration fields from "EfiSlotTypePciExpress" to "EfiSlotTypePciExpressX16" are *NOT* defined in MiscSubclass specification 0.9.
+ They are introduced to support new system slots (type 9) defined in SmBios 2.6 specification.
Keeping this inconsistency to reflect the latest industry standard.
8. Guid/DataHubRecords.h
@@ -877,6 +885,49 @@ MiscSubclass specification 0.9. These fields are aligned with SMBIOS 2.6 specification. And user can easily
assign any value to CoolingDeviceNominalSpeed.
+ 22. Guid/DataHubRecords.h
+ typedef enum {
+ ...
+ EfiSlotDataBusWidth1xOrx1 = 0x8,
+ EfiSlotDataBusWidth2xOrx2 = 0x9,
+ EfiSlotDataBusWidth4xOrx4 = 0xA,
+ EfiSlotDataBusWidth8xOrx8 = 0xB,
+ EfiSlotDataBusWidth12xOrx12 = 0xC,
+ EfiSlotDataBusWidth16xOrx16 = 0xD,
+ EfiSlotDataBusWidth32xOrx32 = 0xE
+ } EFI_MISC_SLOT_DATA_BUS_WIDTH;
+
+ The enumeration fields from "EfiSlotDataBusWidth1xOrx1" to "EfiSlotDataBusWidth32xOrx32" are *NOT* defined in MiscSubclass specification 0.9.
+ They are introduced to support new system slots (type 9) defined in SmBios 2.6 specification.
+ Keeping this inconsistency to reflect the latest industry standard.
+
+ 23. Guid/DataHubRecords.h
+ typedef struct {
+ ...
+ UINT16 TemperatureProbeMaximumValue;
+ UINT16 TemperatureProbeMinimumValue;
+ UINT16 TemperatureProbeResolution;
+ UINT16 TemperatureProbeTolerance;
+ UINT16 TemperatureProbeAccuracy;
+ UINT16 TemperatureProbeNominalValue;
+ UINT16 MDLowerNoncriticalThreshold;
+ UINT16 MDUpperNoncriticalThreshold;
+ UINT16 MDLowerCriticalThreshold;
+ UINT16 MDUpperCriticalThreshold;
+ UINT16 MDLowerNonrecoverableThreshold;
+ UINT16 MDUpperNonrecoverableThreshold;
+ ...
+ } EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;
+
+ The structure fields from "TemperatureProbeMaximumValue" to "MDUpperNonrecoverableThreshold" are *NOT* consistent with MiscSubclass specification 0.9.
+ The specification defines the fields type as EFI_EXP_BASE10_DATA. In fact, they should be UINT16 type because they refer to 16bit width data.
+ Keeping this inconsistency for backward compatibility.
+
+ 24. Guid/DataHubRecords.h
+ #define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER
+
+ The definition above is *NOT* defined in MiscSubclass specifications 0.9. It's defined for backward compatibility.
+
##
# Mismatch with Intel Platform Innovation Framework for Status Codes Specification (Version 0.92)
##
diff --git a/IntelFrameworkPkg/Include/Guid/DataHubRecords.h b/IntelFrameworkPkg/Include/Guid/DataHubRecords.h index 9e3aa720f7..d898953ea4 100644 --- a/IntelFrameworkPkg/Include/Guid/DataHubRecords.h +++ b/IntelFrameworkPkg/Include/Guid/DataHubRecords.h @@ -2095,10 +2095,15 @@ typedef enum { EfiSlotTypePC98Card = 0xA4,
///
/// Inconsistent with specification here:
- /// In MiscSubclass specification 0.9, this field isn't defined.
- /// It's introduced for SmBios 2.6 specification type 9.
- ///
- EfiSlotTypePciExpress = 0xA5
+ /// In MiscSubclass specification 0.9, these fields aren't defined.
+ /// They're introduced for SmBios 2.6 specification type 9.
+ ///
+ EfiSlotTypePciExpress = 0xA5,
+ EfiSlotTypePciExpressX1 = 0xA6,
+ EfiSlotTypePciExpressX2 = 0xA7,
+ EfiSlotTypePciExpressX4 = 0xA8,
+ EfiSlotTypePciExpressX8 = 0xA9,
+ EfiSlotTypePciExpressX16 = 0xAA
} EFI_MISC_SLOT_TYPE;
typedef enum {
@@ -2108,7 +2113,19 @@ typedef enum { EfiSlotDataBusWidth16Bit = 0x04,
EfiSlotDataBusWidth32Bit = 0x05,
EfiSlotDataBusWidth64Bit = 0x06,
- EfiSlotDataBusWidth128Bit = 0x07
+ EfiSlotDataBusWidth128Bit = 0x07,
+ ///
+ /// Inconsistent with specification here:
+ /// In MiscSubclass specification 0.9, these fields aren't defined.
+ /// They're introduced for SmBios 2.6 specification type 9.
+ ///
+ EfiSlotDataBusWidth1xOrx1 = 0x8,
+ EfiSlotDataBusWidth2xOrx2 = 0x9,
+ EfiSlotDataBusWidth4xOrx4 = 0xA,
+ EfiSlotDataBusWidth8xOrx8 = 0xB,
+ EfiSlotDataBusWidth12xOrx12 = 0xC,
+ EfiSlotDataBusWidth16xOrx16 = 0xD,
+ EfiSlotDataBusWidth32xOrx32 = 0xE
} EFI_MISC_SLOT_DATA_BUS_WIDTH;
typedef enum {
@@ -2478,18 +2495,24 @@ typedef struct { STRING_REF TemperatureProbeDescription;
EFI_MISC_TEMPERATURE_PROBE_LOCATION
TemperatureProbeLocation;
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;
+ ///
+ /// Inconsistent with specification here:
+ /// MiscSubclass 0.9 specification defines the fields type as EFI_EXP_BASE10_DATA.
+ /// In fact, they should be UINT16 type because they refer to 16bit width data.
+ /// Keeping this inconsistency for backward compatibility.
+ ///
+ UINT16 TemperatureProbeMaximumValue;
+ UINT16 TemperatureProbeMinimumValue;
+ UINT16 TemperatureProbeResolution;
+ UINT16 TemperatureProbeTolerance;
+ UINT16 TemperatureProbeAccuracy;
+ UINT16 TemperatureProbeNominalValue;
+ UINT16 MDLowerNoncriticalThreshold;
+ UINT16 MDUpperNoncriticalThreshold;
+ UINT16 MDLowerCriticalThreshold;
+ UINT16 MDUpperCriticalThreshold;
+ UINT16 MDLowerNonrecoverableThreshold;
+ UINT16 MDUpperNonrecoverableThreshold;
UINT32 TemperatureProbeOemDefined;
} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;
@@ -2638,6 +2661,12 @@ typedef struct { /// It's introduced for SmBios 2.6 specification type 35.
///
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
+ ///
+ /// Inconsistent with specification here:
+ /// In MiscSubclass specification 0.9, this field is NOT defined.
+ /// It's implementation-specific to simplify the code logic.
+ ///
+ UINT8 ComponentType;
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;
//
@@ -2667,6 +2696,11 @@ typedef struct { } EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
+///
+/// The definition above is *NOT* defined in MiscSubclass specifications 0.9.
+/// It's defined for backward compatibility.
+///
+#define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER
///
/// System Power supply Record - SMBIOS Type 39
@@ -2824,6 +2858,8 @@ typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;
typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;
typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;
+typedef EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;
///
/// Inconsistent with specification here:
|