]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/FrameworkSpecConformance.txt
MdeModulePkg-DxeCore: rename CoreGetMemoryMapPropertiesTable
[mirror_edk2.git] / IntelFrameworkPkg / FrameworkSpecConformance.txt
index 22f940dfc6f951b6f34d2ec9d670af6c31f4e4c6..36644c85beab2bec131967f6c58468d8d86dd964 100644 (file)
       ProcessorPackageNumberRecordType     = 21,\r
       ProcessorCoreFrequencyListRecordType = 22,\r
       ProcessorFsbFrequencyListRecordType  = 23,\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
     } EFI_CPU_VARIABLE_RECORD_TYPE;\r
 \r
-    The data structure and all enumeration fields are *NOT* defined in ProcSubclass specification 0.9, which only\r
-    defines the following macros to specify the record number of the data record:\r
+    The enumeration fields from ProcessorCoreFrequencyRecordType to ProcessorHealthStatusRecordType are *NOT* defined \r
+    in ProcSubclass specification 0.9, which only defines the following macros to specify the record number of the data record:\r
       #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER           0x00000001\r
       #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER       0x00000002\r
       #define EFI_PROCESSOR_VERSION_RECORD_NUMBER             0x00000003\r
       #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER           0x00000001\r
       #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER       0x00000002\r
       #define EFI_PROCESSOR_VERSION_RECORD_NUMBER             0x00000003\r
       #define EFI_PROCESSOR_HEALTH_STATUS_RECORD_NUMBER       0x00000018\r
     Keeping this inconsistency for backward compatibility.\r
 \r
       #define EFI_PROCESSOR_HEALTH_STATUS_RECORD_NUMBER       0x00000018\r
     Keeping this inconsistency for backward compatibility.\r
 \r
+    The enumeration fields from ProcessorCoreCountRecordType to ProcessorPartNumberRecordType are *NOT* defined \r
+    in ProcSubclass specification 0.9. \r
+    They are introduced to support new fields for type 4 defined in SmBios 2.6 specification.\r
+    Keeping this inconsistency to reflect the latest industry standard.\r
+\r
   8. Guid/DataHubRecords.h\r
     typedef union {\r
       EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA  ProcessorCoreFrequencyList;\r
       ...\r
   8. Guid/DataHubRecords.h\r
     typedef union {\r
       EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA  ProcessorCoreFrequencyList;\r
       ...\r
-      EFI_PROCESSOR_PACKAGE_NUMBER_DATA       ProcessorPackageNumber;\r
+      EFI_PROCESSOR_FAMILY2_DATA              ProcessorFamily2;\r
     } EFI_CPU_VARIABLE_RECORD;\r
     \r
     typedef struct {\r
     } EFI_CPU_VARIABLE_RECORD;\r
     \r
     typedef struct {\r
     code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record.\r
     Keeping this inconsistency for backward compatibility.\r
 \r
     code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record.\r
     Keeping this inconsistency for backward compatibility.\r
 \r
+  9. Guid/DataHubRecords.h\r
+    typedef STRING_REF                  EFI_PROCESSOR_PART_NUMBER_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
+    typedef UINT8                       EFI_PROCESSOR_CORE_COUNT_DATA;\r
+\r
+    typedef UINT8                       EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;\r
+\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
+    The fields listed here are *NOT* defined in ProcSubclass specification 0.9. They are introduced to support\r
+    new fields for type 4 defined in SmBios 2.6 specification. \r
+    Keeping this inconsistency to reflect the latest industry standard.\r
+\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for MemSubclass Specification (Version 0.90)\r
 ##\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for MemSubclass Specification (Version 0.90)\r
 ##\r
     typedef struct {\r
       ...\r
       EFI_INTER_LINK_DATA               ManagementDeviceThresholdLink;\r
     typedef struct {\r
       ...\r
       EFI_INTER_LINK_DATA               ManagementDeviceThresholdLink;\r
+      UINT8                             ComponentType;\r
     } EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
 \r
     } EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
 \r
-    The field listed above is *NOT* defined in MiscSubclass specification 0.9. It is introduced to support\r
-    new management device component (type 35) defined in SmBios 2.6 specification. \r
-    Keeping this inconsistency to reflect the latest industry standard.\r
+    a. The field "ManagementDeviceThresholdLink" above is *NOT* defined in MiscSubclass specification 0.9. It is introduced to support\r
+       new management device component (type 35) defined in SmBios 2.6 specification. \r
+       Keeping this inconsistency to reflect the latest industry standard.\r
+    b. The field "ComponentType" above is *NOT* defined in MiscSubclass specifications 0.9. It's implementation-specific to simplify the code logic.\r
+       Keeping this inconsistency for backward compatibility.\r
 \r
   6. Guid/DataHubRecords.h\r
     typedef struct {\r
 \r
   6. Guid/DataHubRecords.h\r
     typedef struct {\r
       ...\r
       EfiSlotTypeAgp2X                  = 0x10,\r
       ...\r
       ...\r
       EfiSlotTypeAgp2X                  = 0x10,\r
       ...\r
-      EfiSlotTypePciExpress             = 0xA5\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
     a. The field name "EfiSlotTypeAgp2X" is *NOT* consistent with MiscSubclass specification 0.9, in which it is named\r
        "EfiSlotTypeApg2X".\r
        From its literal sense, this field represents a AGP type display card, so it should be named as "EfiSlotTypeAgp2X".\r
     } EFI_MISC_SLOT_TYPE;\r
 \r
     a. The field name "EfiSlotTypeAgp2X" is *NOT* consistent with MiscSubclass specification 0.9, in which it is named\r
        "EfiSlotTypeApg2X".\r
        From its literal sense, this field represents a AGP type display card, so it should be named as "EfiSlotTypeAgp2X".\r
-    b. The "EfiSlotTypePciExpress" field is *NOT* defined in MiscSubclass specification 0.9. It isintroduced to support\r
-       new system slots (type 9) defined in SmBios 2.6 specification.\r
+    b. The enumeration fields from "EfiSlotTypePciExpress" to "EfiSlotTypePciExpressX16" are *NOT* defined in MiscSubclass specification 0.9.\r
+       They are introduced to support new system slots (type 9) defined in SmBios 2.6 specification.\r
        Keeping this inconsistency to reflect the latest industry standard.\r
 \r
   8. Guid/DataHubRecords.h\r
        Keeping this inconsistency to reflect the latest industry standard.\r
 \r
   8. Guid/DataHubRecords.h\r
     code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record.\r
     Keeping this inconsistency for backward compatibility.\r
 \r
     code logic. Therefore developer doesn't need to allocate memory dynamically to construct variable length data record.\r
     Keeping this inconsistency for backward compatibility.\r
 \r
+  21. Guid/DataHubRecords.h\r
+    typedef struct {\r
+      EFI_MISC_COOLING_DEVICE_TYPE      CoolingDeviceType;\r
+      EFI_INTER_LINK_DATA               CoolingDeviceTemperatureLink;\r
+      UINT8                             CoolingDeviceUnitGroup;\r
+      UINT16                            CoolingDeviceNominalSpeed;\r
+      UINT32                            CoolingDeviceOemDefined;\r
+    } EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
+\r
+    The "CoolingDeviceUnitGroup" field and "CoolingDeviceNominalSpeed" field are *NOT* consistent with \r
+    MiscSubclass specification 0.9. These fields are aligned with SMBIOS 2.6 specification. And user can easily\r
+    assign any value to CoolingDeviceNominalSpeed.\r
+\r
+  22. Guid/DataHubRecords.h\r
+    typedef enum {\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
+    The enumeration fields from "EfiSlotDataBusWidth1xOrx1" to "EfiSlotDataBusWidth32xOrx32" are *NOT* defined in MiscSubclass specification 0.9.\r
+    They are introduced to support new system slots (type 9) defined in SmBios 2.6 specification.\r
+    Keeping this inconsistency to reflect the latest industry standard.\r
+\r
+  23. Guid/DataHubRecords.h\r
+    typedef struct {\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
+      ...\r
+    } EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
+\r
+    The structure fields from "TemperatureProbeMaximumValue" to "MDUpperNonrecoverableThreshold" are *NOT* consistent with MiscSubclass specification 0.9.\r
+    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.\r
+    Keeping this inconsistency for backward compatibility.\r
+\r
+  24. Guid/DataHubRecords.h\r
+    #define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER\r
+\r
+    The definition above is *NOT* defined in MiscSubclass specifications 0.9. It's defined for backward compatibility.\r
+\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for Status Codes Specification (Version 0.92)\r
 ##\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for Status Codes Specification (Version 0.92)\r
 ##\r
     The enumeration fields listed above are *NOT* defined in Framework SmmCis specification 0.91. EdkII introduces\r
     these fields to support new SMI types.\r
 \r
     The enumeration fields listed above are *NOT* defined in Framework SmmCis specification 0.91. EdkII introduces\r
     these fields to support new SMI types.\r
 \r
+  3. Include/Framework/SmmCis.h\r
+    typedef union {\r
+      ///\r
+      /// The processor save-state information for IA-32 processors. \r
+      ///\r
+      EFI_SMI_CPU_SAVE_STATE     Ia32SaveState;\r
+      ///\r
+      /// Note: Inconsistency with the Framework SMM CIS spec - Itanium save state not included.\r
+      ///\r
+      /// The processor save-state information for Itanium processors.\r
+      ///\r
+      /// EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState;\r
+    } EFI_SMM_CPU_SAVE_STATE;\r
+\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for EFI S3 Resume Boot Path Specification (Version 0.9)\r
 ##\r
 ##\r
 # Mismatch with Intel Platform Innovation Framework for EFI S3 Resume Boot Path Specification (Version 0.9)\r
 ##\r