X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=IntelFrameworkPkg%2FFrameworkSpecConformance.txt;h=36644c85beab2bec131967f6c58468d8d86dd964;hp=22f940dfc6f951b6f34d2ec9d670af6c31f4e4c6;hb=0ab90add0f525eb9c91ce4bc2357298c4f357d09;hpb=7ae58ec2eaaad7a4a22092266c407d76c12ed69a diff --git a/IntelFrameworkPkg/FrameworkSpecConformance.txt b/IntelFrameworkPkg/FrameworkSpecConformance.txt index 22f940dfc6..36644c85be 100644 --- a/IntelFrameworkPkg/FrameworkSpecConformance.txt +++ b/IntelFrameworkPkg/FrameworkSpecConformance.txt @@ -226,11 +226,17 @@ ProcessorPackageNumberRecordType = 21, ProcessorCoreFrequencyListRecordType = 22, ProcessorFsbFrequencyListRecordType = 23, - ProcessorHealthStatusRecordType = 24 + ProcessorHealthStatusRecordType = 24, + ProcessorCoreCountRecordType = 25, + ProcessorEnabledCoreCountRecordType = 26, + ProcessorThreadCountRecordType = 27, + ProcessorCharacteristicsRecordType = 28, + ProcessorFamily2RecordType = 29, + ProcessorPartNumberRecordType = 30, } EFI_CPU_VARIABLE_RECORD_TYPE; - The data structure and all enumeration fields are *NOT* defined in ProcSubclass specification 0.9, which only - defines the following macros to specify the record number of the data record: + The enumeration fields from ProcessorCoreFrequencyRecordType to ProcessorHealthStatusRecordType are *NOT* defined + in ProcSubclass specification 0.9, which only defines the following macros to specify the record number of the data record: #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER 0x00000001 #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER 0x00000002 #define EFI_PROCESSOR_VERSION_RECORD_NUMBER 0x00000003 @@ -257,11 +263,16 @@ #define EFI_PROCESSOR_HEALTH_STATUS_RECORD_NUMBER 0x00000018 Keeping this inconsistency for backward compatibility. + The enumeration fields from ProcessorCoreCountRecordType to ProcessorPartNumberRecordType are *NOT* defined + in ProcSubclass specification 0.9. + They are introduced to support new fields for type 4 defined in SmBios 2.6 specification. + Keeping this inconsistency to reflect the latest industry standard. + 8. Guid/DataHubRecords.h typedef union { EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList; ... - EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber; + EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2; } EFI_CPU_VARIABLE_RECORD; typedef struct { @@ -273,6 +284,39 @@ code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record. Keeping this inconsistency for backward compatibility. + 9. Guid/DataHubRecords.h + typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA; + + typedef enum { + EfiProcessorFamilySh3 = 0x104, + EfiProcessorFamilySh4 = 0x105, + EfiProcessorFamilyArm = 0x118, + EfiProcessorFamilyStrongArm = 0x119, + EfiProcessorFamily6x86 = 0x12C, + EfiProcessorFamilyMediaGx = 0x12D, + EfiProcessorFamilyMii = 0x12E, + EfiProcessorFamilyWinChip = 0x140, + EfiProcessorFamilyDsp = 0x15E, + EfiProcessorFamilyVideo = 0x1F4 + } EFI_PROCESSOR_FAMILY2_DATA; + + typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA; + + typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA; + + typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA; + + typedef struct { + UINT16 Reserved :1; + UINT16 Unknown :1; + UINT16 Capable64Bit :1; + UINT16 Reserved2 :13; + } EFI_PROCESSOR_CHARACTERISTICS_DATA; + + The fields listed here are *NOT* defined in ProcSubclass specification 0.9. They are introduced to support + new fields for type 4 defined in SmBios 2.6 specification. + Keeping this inconsistency to reflect the latest industry standard. + ## # Mismatch with Intel Platform Innovation Framework for MemSubclass Specification (Version 0.90) ## @@ -614,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 { @@ -636,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 @@ -820,6 +872,62 @@ code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record. Keeping this inconsistency for backward compatibility. + 21. Guid/DataHubRecords.h + typedef struct { + EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType; + EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink; + UINT8 CoolingDeviceUnitGroup; + UINT16 CoolingDeviceNominalSpeed; + UINT32 CoolingDeviceOemDefined; + } EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA; + + The "CoolingDeviceUnitGroup" field and "CoolingDeviceNominalSpeed" field are *NOT* consistent with + 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) ## @@ -1149,6 +1257,20 @@ The enumeration fields listed above are *NOT* defined in Framework SmmCis specification 0.91. EdkII introduces these fields to support new SMI types. + 3. Include/Framework/SmmCis.h + typedef union { + /// + /// The processor save-state information for IA-32 processors. + /// + EFI_SMI_CPU_SAVE_STATE Ia32SaveState; + /// + /// Note: Inconsistency with the Framework SMM CIS spec - Itanium save state not included. + /// + /// The processor save-state information for Itanium processors. + /// + /// EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState; + } EFI_SMM_CPU_SAVE_STATE; + ## # Mismatch with Intel Platform Innovation Framework for EFI S3 Resume Boot Path Specification (Version 0.9) ##