From: lzeng14 Date: Wed, 20 Apr 2011 02:10:52 +0000 (+0000) Subject: Update and add some definitions to reflect the latest industry standard or for backwa... X-Git-Tag: edk2-stable201903~14931 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=33d9d834394e646b1fc7d472703d21a18f4ab46d Update and add some definitions to reflect the latest industry standard or for backward compatibility. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11570 6f19259b-4bc3-4df7-8a09-765794883524 --- 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: