#include <Protocol/DevicePath.h>\r
#include <Protocol/FrameworkHii.h>\r
\r
-#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
+#define EFI_PROCESSOR_SUBCLASS_VERSION 0x0100\r
\r
#pragma pack(1)\r
\r
} EFI_MISC_PORT_DEVICE_PATH;\r
\r
#pragma pack()\r
-\r
-//\r
-// String Token Definition\r
-//\r
-#define EFI_STRING_TOKEN UINT16\r
-\r
///\r
/// Each data record that is a member of some subclass starts with a standard \r
/// header of type EFI_SUBCLASS_TYPE1_HEADER.\r
///\r
/// The INT16 number by which to multiply the base-2 representation.\r
///\r
- UINT16 Value;\r
+ INT16 Value;\r
///\r
/// The INT16 number by which to raise the base-2 calculation. \r
///\r
- UINT16 Exponent;\r
+ INT16 Exponent;\r
} EFI_EXP_BASE10_DATA;\r
\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
} EFI_PROCESSOR_SIGNATURE;\r
\r
typedef struct {\r
- UINT32 ProcessorBrandIndex :8;\r
- UINT32 ProcessorClflush :8;\r
- UINT32 ProcessorReserved :8;\r
- UINT32 ProcessorDfltApicId :8;\r
+ UINT32 ProcessorBrandIndex :8;\r
+ UINT32 ProcessorClflush :8;\r
+ UINT32 LogicalProcessorCount :8;\r
+ UINT32 ProcessorDfltApicId :8;\r
} EFI_PROCESSOR_MISC_INFO;\r
\r
typedef struct {\r
EfiProcessorFamilyUltraSparcII = 0x55,\r
EfiProcessorFamilyUltraSparcIIi = 0x56,\r
EfiProcessorFamilyUltraSparcIII = 0x57,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field in ProcSubClass spec0.9 is defined as EfiProcessorFamilyUltraSparcIIi, it's a typo.\r
+ ///\r
EfiProcessorFamilyUltraSparcIIIi = 0x58,\r
EfiProcessorFamily68040 = 0x60,\r
EfiProcessorFamily68xxx = 0x61,\r
EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
EfiProcessorFamilyIntelItanium2 = 0xB8,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIntelPentiumM = 0xB9,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIntelCeleronD = 0xBA,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIntelPentiumD = 0xBB,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
- EfiProcessorFamilyIntelCoreSolo = 0xBD, ///< SMBIOS spec 2.6 correct this value\r
- EfiProcessorFamilyReserved = 0xBE,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
+ EfiProcessorFamilyIntelCoreSolo = 0xBD, \r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
+ EfiProcessorFamilyReserved = 0xBE, \r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIntelCore2 = 0xBF,\r
EfiProcessorFamilyIBM390 = 0xC8,\r
EfiProcessorFamilyG4 = 0xC9,\r
EfiProcessorFamilyG5 = 0xCA,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyG6 = 0xCB,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyzArchitectur = 0xCC,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyViaC7M = 0xD2,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyViaC7D = 0xD3,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyViaC7 = 0xD4,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyViaEden = 0xD5,\r
EfiProcessorFamilyi860 = 0xFA,\r
EfiProcessorFamilyi960 = 0xFB,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyIndicatorFamily2 = 0xFE,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorFamilyReserved1 = 0xFF\r
} EFI_PROCESSOR_FAMILY_DATA;\r
\r
EfiProcessorSocket478 = 0xF,\r
EfiProcessorSocket754 = 0x10,\r
EfiProcessorSocket940 = 0x11,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorSocket939 = 0x12,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorSocketmPGA604 = 0x13,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorSocketLGA771 = 0x14,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ ///\r
EfiProcessorSocketLGA775 = 0x15\r
\r
} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
\r
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
-typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
+typedef EFI_INTER_LINK_DATA EFI_PROCESSOR_CACHE_ASSOCIATION_DATA;\r
\r
///\r
/// This data record refers to the health status of the processor. \r
EfiProcessorHealthy = 1,\r
EfiProcessorPerfRestricted = 2,\r
EfiProcessorFuncRestricted = 3 \r
-} EFI_PROCESSOR_HEALTH_STATUS;\r
+} EFI_PROCESSOR_HEALTH_STATUS_DATA;\r
\r
///\r
/// This data record refers to the package number of this processor. Multiple logical processors can \r
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
- EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
+ EFI_PROCESSOR_HEALTH_STATUS_DATA ProcessorHealthStatus;\r
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
} EFI_CPU_VARIABLE_RECORD;\r
\r
\r
\r
typedef union {\r
- EFI_CACHE_SIZE_DATA CacheSize;\r
- EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
- EFI_CACHE_SPEED_DATA CacheSpeed;\r
- EFI_CACHE_SOCKET_DATA CacheSocket;\r
- EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
- EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
- EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
- EFI_CACHE_TYPE_DATA CacheType;\r
- EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
- EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
- EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
+ EFI_CACHE_SIZE_DATA CacheSize;\r
+ EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
+ EFI_CACHE_SPEED_DATA CacheSpeed;\r
+ EFI_CACHE_SOCKET_DATA CacheSocket;\r
+ EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
+ EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
+ EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
+ EFI_CACHE_TYPE_DATA CacheType;\r
+ EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
+ EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
+ EFI_PROCESSOR_CACHE_ASSOCIATION_DATA CacheAssociation;\r
} EFI_CACHE_VARIABLE_RECORD;\r
\r
typedef struct {\r