/*++\r
\r
-Copyright (c) 2004 - 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
http://opensource.org/licenses/bsd-license.php \r
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
\r
#define EFI_PROCESSOR_SUBCLASS_GUID \\r
- { 0x26fdeb7e, 0xb8af, 0x4ccf, 0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 }\r
+ { 0x26fdeb7e, 0xb8af, 0x4ccf, {0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7} }\r
\r
\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
\r
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
\r
+typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;\r
+\r
typedef struct {\r
UINT32 ProcessorSteppingId:4;\r
UINT32 ProcessorModel: 4;\r
EfiProcessorFamilyPowerPC620 = 0x25,\r
EfiProcessorFamilyPowerPC704 = 0x26,\r
EfiProcessorFamilyPowerPC750 = 0x27,\r
+ EfiProcessorFamilyIntelCoreDuo = 0x28,\r
+ EfiProcessorFamilyIntelCoreDuoMobile = 0x29,\r
+ EfiProcessorFamilyIntelCoreSoloMobile = 0x2A,\r
+ EfiProcessorFamilyIntelAtom = 0x2B,\r
EfiProcessorFamilyAlpha2 = 0x30,\r
EfiProcessorFamilyAlpha21064 = 0x31,\r
EfiProcessorFamilyAlpha21066 = 0x32,\r
EfiProcessorFamilyHobbit = 0x70,\r
EfiProcessorFamilyCrusoeTM5000 = 0x78,\r
EfiProcessorFamilyCrusoeTM3000 = 0x79,\r
+ EfiProcessorFamilyEfficeonTM8000 = 0x7A,\r
EfiProcessorFamilyWeitek = 0x80,\r
EfiProcessorFamilyItanium = 0x82,\r
EfiProcessorFamilyAmdAthlon64 = 0x83,\r
EfiProcessorFamilyAmdOpteron = 0x84,\r
+ EfiProcessorFamilyAmdSempron = 0x85,\r
+ EfiProcessorFamilyAmdTurion64Mobile = 0x86,\r
+ EfiProcessorFamilyDualCoreAmdOpteron = 0x87,\r
+ EfiProcessorFamilyAmdAthlon64X2DualCore = 0x88,\r
+ EfiProcessorFamilyAmdTurion64X2Mobile = 0x89,\r
+ EfiProcessorFamilyQuadCoreAmdOpteron = 0x8A,\r
+ EfiProcessorFamilyThirdGenerationAmdOpteron = 0x8B,\r
+ EfiProcessorFamilyAmdPhenomFxQuadCore = 0x8C,\r
+ EfiProcessorFamilyAmdPhenomX4QuadCore = 0x8D,\r
+ EfiProcessorFamilyAmdPhenomX2DualCore = 0x8E,\r
+ EfiProcessorFamilyAmdAthlonX2DualCore = 0x8F,\r
EfiProcessorFamilyPARISC = 0x90,\r
EfiProcessorFamilyPaRisc8500 = 0x91,\r
EfiProcessorFamilyPaRisc8000 = 0x92,\r
EfiProcessorFamilyPaRisc7100LC = 0x95,\r
EfiProcessorFamilyPaRisc7100 = 0x96,\r
EfiProcessorFamilyV30 = 0xA0,\r
+ EfiProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1,\r
+ EfiProcessorFamilyDualCoreIntelXeon3000Series = 0xA2,\r
+ EfiProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3,\r
+ EfiProcessorFamilyDualCoreIntelXeon5100Series = 0xA4,\r
+ EfiProcessorFamilyDualCoreIntelXeon5000Series = 0xA5,\r
+ EfiProcessorFamilyDualCoreIntelXeonLV = 0xA6,\r
+ EfiProcessorFamilyDualCoreIntelXeonULV = 0xA7,\r
+ EfiProcessorFamilyDualCoreIntelXeon7100Series = 0xA8,\r
+ EfiProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9,\r
+ EfiProcessorFamilyQuadCoreIntelXeon = 0xAA,\r
+ EfiProcessorFamilyDualCoreIntelXeon5200Series = 0xAB,\r
+ EfiProcessorFamilyDualCoreIntelXeon7200Series = 0xAC,\r
+ EfiProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD,\r
+ EfiProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE,\r
+ EfiProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF,\r
EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
EfiProcessorFamilyPentium4 = 0xB2,\r
EfiProcessorFamilyIntelCeleronD = 0xBA,\r
EfiProcessorFamilyIntelPentiumD = 0xBB,\r
EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
+ EfiProcessorFamilyIntelCoreSolo = 0xBD, // SMBIOS spec 2.6 correct this value\r
+ EfiProcessorFamilyReserved = 0xBE,\r
+ EfiProcessorFamilyIntelCore2 = 0xBF,\r
+ EfiProcessorFamilyIntelCore2Solo = 0xC0,\r
+ EfiProcessorFamilyIntelCore2Extreme = 0xC1,\r
+ EfiProcessorFamilyIntelCore2Quad = 0xC2,\r
+ EfiProcessorFamilyIntelCore2ExtremeMobile = 0xC3,\r
+ EfiProcessorFamilyIntelCore2DuoMobile = 0xC4,\r
+ EfiProcessorFamilyIntelCore2SoloMobile = 0xC5,\r
+ EfiProcessorFamilyIntelCoreI7 = 0xC6,\r
+ EfiProcessorFamilyDualCoreIntelCeleron = 0xC7,\r
EfiProcessorFamilyIBM390 = 0xC8,\r
EfiProcessorFamilyG4 = 0xC9,\r
EfiProcessorFamilyG5 = 0xCA,\r
+ EfiProcessorFamilyG6 = 0xCB,\r
+ EfiProcessorFamilyzArchitectur = 0xCC,\r
+ EfiProcessorFamilyViaC7M = 0xD2,\r
+ EfiProcessorFamilyViaC7D = 0xD3,\r
+ EfiProcessorFamilyViaC7 = 0xD4,\r
+ EfiProcessorFamilyViaEden = 0xD5,\r
+ EfiProcessorFamilyMultiCoreIntelXeon = 0xD6,\r
+ EfiProcessorFamilyDualCoreIntelXeon3Series = 0xD7,\r
+ EfiProcessorFamilyQuadCoreIntelXeon3Series = 0xD8,\r
+ EfiProcessorFamilyDualCoreIntelXeon5Series = 0xDA,\r
+ EfiProcessorFamilyQuadCoreIntelXeon5Series = 0xDB,\r
+ EfiProcessorFamilyDualCoreIntelXeon7Series = 0xDD,\r
+ EfiProcessorFamilyQuadCoreIntelXeon7Series = 0xDE,\r
+ EfiProcessorFamilyMultiCoreIntelXeon7Series = 0xDF,\r
+ EfiProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6,\r
+ EfiProcessorFamilyAmdPhenomTripleCore = 0xE7,\r
+ EfiProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8,\r
+ EfiProcessorFamilyAmdTurionDualCoreMobile = 0xE9,\r
+ EfiProcessorFamilyAmdAthlonDualCore = 0xEA,\r
+ EfiProcessorFamilyAmdSempronSI = 0xEB,\r
EfiProcessorFamilyi860 = 0xFA,\r
- EfiProcessorFamilyi960 = 0xFB\r
+ EfiProcessorFamilyi960 = 0xFB,\r
+ EfiProcessorFamilyIndicatorFamily2 = 0xFE\r
} EFI_PROCESSOR_FAMILY_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 EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
\r
EfiProcessorSocket939 = 0x12,\r
EfiProcessorSocketmPGA604 = 0x13,\r
EfiProcessorSocketLGA771 = 0x14,\r
- EfiProcessorSocketLGA775 = 0x15\r
+ EfiProcessorSocketLGA775 = 0x15,\r
+ EfiProcessorSocketS1 = 0x16,\r
+ EfiProcessorSocketAm2 = 0x17,\r
+ EfiProcessorSocketF = 0x18,\r
+ EfiProcessorSocketLGA1366 = 0x19\r
} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
\r
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
\r
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
+typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;\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
+typedef struct {\r
+ EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
+ EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
+ EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
+ EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
+ EFI_PROCESSOR_ID_DATA ProcessorId;\r
+ EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
+ EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
+ EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
+ EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency; \r
+ EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
+ EFI_PROCESSOR_STATUS_DATA ProcessorStatus; \r
+ EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
+ EFI_CACHE_ASSOCIATION_DATA ProcessorL1LinkData;\r
+ EFI_CACHE_ASSOCIATION_DATA ProcessorL2LinkData;\r
+ EFI_CACHE_ASSOCIATION_DATA ProcessorL3LinkData;\r
+ EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
+ EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;\r
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;\r
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;\r
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;\r
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;\r
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;\r
+} EFI_PROCESSOR_SOCKET_DATA;\r
\r
typedef enum {\r
ProcessorCoreFrequencyRecordType = 1,\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
+ ProcessorSocketRecordType = 31\r
} EFI_CPU_VARIABLE_RECORD_TYPE;\r
\r
typedef union {\r
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;\r
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;\r
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;\r
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;\r
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;\r
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;\r
+ EFI_PROCESSOR_SOCKET_DATA ProcessorSocket;\r
} EFI_CPU_VARIABLE_RECORD;\r
\r
typedef struct {\r