summaryrefslogtreecommitdiff
path: root/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c')
-rw-r--r--ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c491
1 files changed, 266 insertions, 225 deletions
diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
index cbdf6df..a4f98e6 100644
--- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
+++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
@@ -29,12 +29,12 @@
#include "SmbiosProcessor.h"
-extern UINT8 ProcessorSubClassStrings[];
+extern UINT8 ProcessorSubClassStrings[];
-#define CACHE_SOCKETED_SHIFT 3
-#define CACHE_LOCATION_SHIFT 5
-#define CACHE_ENABLED_SHIFT 7
-#define CACHE_OPERATION_MODE_SHIFT 8
+#define CACHE_SOCKETED_SHIFT 3
+#define CACHE_LOCATION_SHIFT 5
+#define CACHE_ENABLED_SHIFT 7
+#define CACHE_OPERATION_MODE_SHIFT 8
typedef enum {
CacheModeWriteThrough = 0, ///< Cache is write-through
@@ -52,51 +52,51 @@ typedef enum {
CacheLocationMax
} CACHE_LOCATION;
-EFI_HII_HANDLE mHiiHandle;
+EFI_HII_HANDLE mHiiHandle;
EFI_SMBIOS_PROTOCOL *mSmbios;
-SMBIOS_TABLE_TYPE4 mSmbiosProcessorTableTemplate = {
- { // Hdr
- EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // Type
- sizeof (SMBIOS_TABLE_TYPE4), // Length
- 0 // Handle
- },
- 1, // Socket
- CentralProcessor, // ProcessorType
- ProcessorFamilyIndicatorFamily2, // ProcessorFamily
- 2, // ProcessorManufacture
- { // ProcessorId
- { // Signature
- 0
- },
- { // FeatureFlags
- 0
- }
- },
- 3, // ProcessorVersion
- { // Voltage
+SMBIOS_TABLE_TYPE4 mSmbiosProcessorTableTemplate = {
+ { // Hdr
+ EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // Type
+ sizeof (SMBIOS_TABLE_TYPE4), // Length
+ 0 // Handle
+ },
+ 1, // Socket
+ CentralProcessor, // ProcessorType
+ ProcessorFamilyIndicatorFamily2, // ProcessorFamily
+ 2, // ProcessorManufacture
+ { // ProcessorId
+ { // Signature
0
},
- 0, // ExternalClock
- 0, // MaxSpeed
- 0, // CurrentSpeed
- 0, // Status
- ProcessorUpgradeUnknown, // ProcessorUpgrade
- 0xFFFF, // L1CacheHandle
- 0xFFFF, // L2CacheHandle
- 0xFFFF, // L3CacheHandle
- 4, // SerialNumber
- 5, // AssetTag
- 6, // PartNumber
- 0, // CoreCount
- 0, //EnabledCoreCount
- 0, // ThreadCount
- 0, // ProcessorCharacteristics
- ProcessorFamilyARM, // ProcessorFamily2
- 0, // CoreCount2
- 0, // EnabledCoreCount2
- 0 // ThreadCount2
+ { // FeatureFlags
+ 0
+ }
+ },
+ 3, // ProcessorVersion
+ { // Voltage
+ 0
+ },
+ 0, // ExternalClock
+ 0, // MaxSpeed
+ 0, // CurrentSpeed
+ 0, // Status
+ ProcessorUpgradeUnknown, // ProcessorUpgrade
+ 0xFFFF, // L1CacheHandle
+ 0xFFFF, // L2CacheHandle
+ 0xFFFF, // L3CacheHandle
+ 4, // SerialNumber
+ 5, // AssetTag
+ 6, // PartNumber
+ 0, // CoreCount
+ 0, // EnabledCoreCount
+ 0, // ThreadCount
+ 0, // ProcessorCharacteristics
+ ProcessorFamilyARM, // ProcessorFamily2
+ 0, // CoreCount2
+ 0, // EnabledCoreCount2
+ 0 // ThreadCount2
};
/** Sets the HII variable `StringId` is `Pcd` isn't empty.
@@ -122,7 +122,7 @@ SMBIOS_TABLE_TYPE4 mSmbiosProcessorTableTemplate = {
**/
UINT16
GetCpuFrequency (
- IN UINT8 ProcessorNumber
+ IN UINT8 ProcessorNumber
)
{
return (UINT16)(OemGetCpuFreq (ProcessorNumber) / 1000 / 1000);
@@ -140,30 +140,35 @@ GetCpuFrequency (
**/
UINTN
GetCacheSocketStr (
- IN UINT8 CacheLevel,
- IN BOOLEAN DataCache,
- IN BOOLEAN UnifiedCache,
- OUT CHAR16 *CacheSocketStr
+ IN UINT8 CacheLevel,
+ IN BOOLEAN DataCache,
+ IN BOOLEAN UnifiedCache,
+ OUT CHAR16 *CacheSocketStr
)
{
- UINTN CacheSocketStrLen;
+ UINTN CacheSocketStrLen;
- if (CacheLevel == CpuCacheL1 && !DataCache && !UnifiedCache) {
+ if ((CacheLevel == CpuCacheL1) && !DataCache && !UnifiedCache) {
CacheSocketStrLen = UnicodeSPrint (
CacheSocketStr,
SMBIOS_STRING_MAX_LENGTH - 1,
L"L%x Instruction Cache",
- CacheLevel);
- } else if (CacheLevel == CpuCacheL1 && DataCache) {
- CacheSocketStrLen = UnicodeSPrint (CacheSocketStr,
+ CacheLevel
+ );
+ } else if ((CacheLevel == CpuCacheL1) && DataCache) {
+ CacheSocketStrLen = UnicodeSPrint (
+ CacheSocketStr,
SMBIOS_STRING_MAX_LENGTH - 1,
L"L%x Data Cache",
- CacheLevel);
+ CacheLevel
+ );
} else {
- CacheSocketStrLen = UnicodeSPrint (CacheSocketStr,
+ CacheSocketStrLen = UnicodeSPrint (
+ CacheSocketStr,
SMBIOS_STRING_MAX_LENGTH - 1,
L"L%x Cache",
- CacheLevel);
+ CacheLevel
+ );
}
return CacheSocketStrLen;
@@ -180,16 +185,16 @@ GetCacheSocketStr (
**/
VOID
ConfigureCacheArchitectureInformation (
- IN UINT8 CacheLevel,
- IN BOOLEAN DataCache,
- IN BOOLEAN UnifiedCache,
- OUT SMBIOS_TABLE_TYPE7 *Type7Record
+ IN UINT8 CacheLevel,
+ IN BOOLEAN DataCache,
+ IN BOOLEAN UnifiedCache,
+ OUT SMBIOS_TABLE_TYPE7 *Type7Record
)
{
- UINT8 Associativity;
- UINT32 CacheSize32;
- UINT16 CacheSize16;
- UINT64 CacheSize64;
+ UINT8 Associativity;
+ UINT32 CacheSize32;
+ UINT16 CacheSize16;
+ UINT64 CacheSize64;
if (!DataCache && !UnifiedCache) {
Type7Record->SystemCacheType = CacheTypeInstruction;
@@ -198,18 +203,20 @@ ConfigureCacheArchitectureInformation (
} else if (UnifiedCache) {
Type7Record->SystemCacheType = CacheTypeUnified;
} else {
- ASSERT(FALSE);
+ ASSERT (FALSE);
}
- CacheSize64 = SmbiosProcessorGetCacheSize (CacheLevel,
- DataCache,
- UnifiedCache
- );
+ CacheSize64 = SmbiosProcessorGetCacheSize (
+ CacheLevel,
+ DataCache,
+ UnifiedCache
+ );
- Associativity = SmbiosProcessorGetCacheAssociativity (CacheLevel,
- DataCache,
- UnifiedCache
- );
+ Associativity = SmbiosProcessorGetCacheAssociativity (
+ CacheLevel,
+ DataCache,
+ UnifiedCache
+ );
CacheSize64 /= 1024; // Minimum granularity is 1K
@@ -230,10 +237,10 @@ ConfigureCacheArchitectureInformation (
CacheSize16 = -1;
}
- Type7Record->MaximumCacheSize = CacheSize16;
- Type7Record->InstalledSize = CacheSize16;
+ Type7Record->MaximumCacheSize = CacheSize16;
+ Type7Record->InstalledSize = CacheSize16;
Type7Record->MaximumCacheSize2 = CacheSize32;
- Type7Record->InstalledSize2 = CacheSize32;
+ Type7Record->InstalledSize2 = CacheSize32;
switch (Associativity) {
case 2:
@@ -278,7 +285,6 @@ ConfigureCacheArchitectureInformation (
(CacheLevel - 1);
}
-
/** Allocates and initializes an SMBIOS_TABLE_TYPE7 structure.
@param[in] CacheLevel The cache level (L1-L7).
@@ -289,9 +295,9 @@ ConfigureCacheArchitectureInformation (
**/
SMBIOS_TABLE_TYPE7 *
AllocateAndInitCacheInformation (
- IN UINT8 CacheLevel,
- IN BOOLEAN DataCache,
- IN BOOLEAN UnifiedCache
+ IN UINT8 CacheLevel,
+ IN BOOLEAN DataCache,
+ IN BOOLEAN UnifiedCache
)
{
SMBIOS_TABLE_TYPE7 *Type7Record;
@@ -303,33 +309,35 @@ AllocateAndInitCacheInformation (
// Allocate and fetch the cache description
StringBufferSize = sizeof (CHAR16) * SMBIOS_STRING_MAX_LENGTH;
- CacheSocketStr = AllocateZeroPool (StringBufferSize);
+ CacheSocketStr = AllocateZeroPool (StringBufferSize);
if (CacheSocketStr == NULL) {
return NULL;
}
- CacheSocketStrLen = GetCacheSocketStr (CacheLevel,
- DataCache,
- UnifiedCache,
- CacheSocketStr);
+ CacheSocketStrLen = GetCacheSocketStr (
+ CacheLevel,
+ DataCache,
+ UnifiedCache,
+ CacheSocketStr
+ );
- TableSize = sizeof (SMBIOS_TABLE_TYPE7) + CacheSocketStrLen + 1 + 1;
+ TableSize = sizeof (SMBIOS_TABLE_TYPE7) + CacheSocketStrLen + 1 + 1;
Type7Record = AllocateZeroPool (TableSize);
if (Type7Record == NULL) {
- FreePool(CacheSocketStr);
+ FreePool (CacheSocketStr);
return NULL;
}
- Type7Record->Hdr.Type = EFI_SMBIOS_TYPE_CACHE_INFORMATION;
+ Type7Record->Hdr.Type = EFI_SMBIOS_TYPE_CACHE_INFORMATION;
Type7Record->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE7);
Type7Record->Hdr.Handle = SMBIOS_HANDLE_PI_RESERVED;
Type7Record->SocketDesignation = 1;
Type7Record->SupportedSRAMType.Unknown = 1;
- Type7Record->CurrentSRAMType.Unknown = 1;
- Type7Record->CacheSpeed = 0;
- Type7Record->ErrorCorrectionType = CacheErrorUnknown;
+ Type7Record->CurrentSRAMType.Unknown = 1;
+ Type7Record->CacheSpeed = 0;
+ Type7Record->ErrorCorrectionType = CacheErrorUnknown;
OptionalStrStart = (CHAR8 *)(Type7Record + 1);
UnicodeStrToAsciiStrS (CacheSocketStr, OptionalStrStart, CacheSocketStrLen + 1);
@@ -349,19 +357,19 @@ AllocateAndInitCacheInformation (
**/
VOID
AddSmbiosCacheTypeTable (
- IN UINTN ProcessorIndex,
- OUT EFI_SMBIOS_HANDLE *L1CacheHandle,
- OUT EFI_SMBIOS_HANDLE *L2CacheHandle,
- OUT EFI_SMBIOS_HANDLE *L3CacheHandle
+ IN UINTN ProcessorIndex,
+ OUT EFI_SMBIOS_HANDLE *L1CacheHandle,
+ OUT EFI_SMBIOS_HANDLE *L2CacheHandle,
+ OUT EFI_SMBIOS_HANDLE *L3CacheHandle
)
{
- EFI_STATUS Status;
- SMBIOS_TABLE_TYPE7 *Type7Record;
- EFI_SMBIOS_HANDLE SmbiosHandle;
- UINT8 CacheLevel;
- UINT8 MaxCacheLevel;
- BOOLEAN DataCacheType;
- BOOLEAN SeparateCaches;
+ EFI_STATUS Status;
+ SMBIOS_TABLE_TYPE7 *Type7Record;
+ EFI_SMBIOS_HANDLE SmbiosHandle;
+ UINT8 CacheLevel;
+ UINT8 MaxCacheLevel;
+ BOOLEAN DataCacheType;
+ BOOLEAN SeparateCaches;
Status = EFI_SUCCESS;
@@ -385,34 +393,46 @@ AddSmbiosCacheTypeTable (
// process the instruction cache.
for (DataCacheType = 0; DataCacheType <= 1; DataCacheType++) {
// If there's no separate data/instruction cache, skip the second iteration
- if (DataCacheType == 1 && !SeparateCaches) {
+ if ((DataCacheType == 1) && !SeparateCaches) {
continue;
}
- Type7Record = AllocateAndInitCacheInformation (CacheLevel,
- DataCacheType,
- !SeparateCaches
- );
+ Type7Record = AllocateAndInitCacheInformation (
+ CacheLevel,
+ DataCacheType,
+ !SeparateCaches
+ );
if (Type7Record == NULL) {
continue;
}
- ConfigureCacheArchitectureInformation(CacheLevel,
- DataCacheType,
- !SeparateCaches,
- Type7Record
- );
+ ConfigureCacheArchitectureInformation (
+ CacheLevel,
+ DataCacheType,
+ !SeparateCaches,
+ Type7Record
+ );
// Allow the platform to fill in other information such as speed, SRAM type etc.
- if (!OemGetCacheInformation (ProcessorIndex, CacheLevel,
- DataCacheType, !SeparateCaches, Type7Record)) {
+ if (!OemGetCacheInformation (
+ ProcessorIndex,
+ CacheLevel,
+ DataCacheType,
+ !SeparateCaches,
+ Type7Record
+ ))
+ {
continue;
}
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
// Finally, install the table
- Status = mSmbios->Add (mSmbios, NULL, &SmbiosHandle,
- (EFI_SMBIOS_TABLE_HEADER *)Type7Record);
+ Status = mSmbios->Add (
+ mSmbios,
+ NULL,
+ &SmbiosHandle,
+ (EFI_SMBIOS_TABLE_HEADER *)Type7Record
+ );
if (EFI_ERROR (Status)) {
continue;
}
@@ -449,33 +469,33 @@ AddSmbiosCacheTypeTable (
**/
EFI_STATUS
AllocateType4AndSetProcessorInformationStrings (
- SMBIOS_TABLE_TYPE4 **Type4Record,
- UINT8 ProcessorIndex,
- BOOLEAN Populated
+ SMBIOS_TABLE_TYPE4 **Type4Record,
+ UINT8 ProcessorIndex,
+ BOOLEAN Populated
)
{
- EFI_STATUS Status;
- EFI_STRING_ID ProcessorManu;
- EFI_STRING_ID ProcessorVersion;
- EFI_STRING_ID SerialNumber;
- EFI_STRING_ID AssetTag;
- EFI_STRING_ID PartNumber;
- EFI_STRING ProcessorStr;
- EFI_STRING ProcessorManuStr;
- EFI_STRING ProcessorVersionStr;
- EFI_STRING SerialNumberStr;
- EFI_STRING AssetTagStr;
- EFI_STRING PartNumberStr;
- CHAR8 *OptionalStrStart;
- CHAR8 *StrStart;
- UINTN ProcessorStrLen;
- UINTN ProcessorManuStrLen;
- UINTN ProcessorVersionStrLen;
- UINTN SerialNumberStrLen;
- UINTN AssetTagStrLen;
- UINTN PartNumberStrLen;
- UINTN TotalSize;
- UINTN StringBufferSize;
+ EFI_STATUS Status;
+ EFI_STRING_ID ProcessorManu;
+ EFI_STRING_ID ProcessorVersion;
+ EFI_STRING_ID SerialNumber;
+ EFI_STRING_ID AssetTag;
+ EFI_STRING_ID PartNumber;
+ EFI_STRING ProcessorStr;
+ EFI_STRING ProcessorManuStr;
+ EFI_STRING ProcessorVersionStr;
+ EFI_STRING SerialNumberStr;
+ EFI_STRING AssetTagStr;
+ EFI_STRING PartNumberStr;
+ CHAR8 *OptionalStrStart;
+ CHAR8 *StrStart;
+ UINTN ProcessorStrLen;
+ UINTN ProcessorManuStrLen;
+ UINTN ProcessorVersionStrLen;
+ UINTN SerialNumberStrLen;
+ UINTN AssetTagStrLen;
+ UINTN PartNumberStrLen;
+ UINTN TotalSize;
+ UINTN StringBufferSize;
Status = EFI_SUCCESS;
@@ -485,11 +505,11 @@ AllocateType4AndSetProcessorInformationStrings (
AssetTagStr = NULL;
PartNumberStr = NULL;
- ProcessorManu = STRING_TOKEN (STR_PROCESSOR_MANUFACTURE);
- ProcessorVersion = STRING_TOKEN (STR_PROCESSOR_VERSION);
- SerialNumber = STRING_TOKEN (STR_PROCESSOR_SERIAL_NUMBER);
- AssetTag = STRING_TOKEN (STR_PROCESSOR_ASSET_TAG);
- PartNumber = STRING_TOKEN (STR_PROCESSOR_PART_NUMBER);
+ ProcessorManu = STRING_TOKEN (STR_PROCESSOR_MANUFACTURE);
+ ProcessorVersion = STRING_TOKEN (STR_PROCESSOR_VERSION);
+ SerialNumber = STRING_TOKEN (STR_PROCESSOR_SERIAL_NUMBER);
+ AssetTag = STRING_TOKEN (STR_PROCESSOR_ASSET_TAG);
+ PartNumber = STRING_TOKEN (STR_PROCESSOR_PART_NUMBER);
SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorManufacturer, ProcessorManu);
SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorVersion, ProcessorVersion);
@@ -499,32 +519,36 @@ AllocateType4AndSetProcessorInformationStrings (
// Processor Designation
StringBufferSize = sizeof (CHAR16) * SMBIOS_STRING_MAX_LENGTH;
- ProcessorStr = AllocateZeroPool (StringBufferSize);
+ ProcessorStr = AllocateZeroPool (StringBufferSize);
if (ProcessorStr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- ProcessorStrLen = UnicodeSPrint (ProcessorStr, StringBufferSize,
- L"CPU%02d", ProcessorIndex + 1);
+ ProcessorStrLen = UnicodeSPrint (
+ ProcessorStr,
+ StringBufferSize,
+ L"CPU%02d",
+ ProcessorIndex + 1
+ );
// Processor Manufacture
- ProcessorManuStr = HiiGetPackageString (&gEfiCallerIdGuid, ProcessorManu, NULL);
+ ProcessorManuStr = HiiGetPackageString (&gEfiCallerIdGuid, ProcessorManu, NULL);
ProcessorManuStrLen = StrLen (ProcessorManuStr);
// Processor Version
- ProcessorVersionStr = HiiGetPackageString (&gEfiCallerIdGuid, ProcessorVersion, NULL);
+ ProcessorVersionStr = HiiGetPackageString (&gEfiCallerIdGuid, ProcessorVersion, NULL);
ProcessorVersionStrLen = StrLen (ProcessorVersionStr);
// Serial Number
- SerialNumberStr = HiiGetPackageString (&gEfiCallerIdGuid, SerialNumber, NULL);
+ SerialNumberStr = HiiGetPackageString (&gEfiCallerIdGuid, SerialNumber, NULL);
SerialNumberStrLen = StrLen (SerialNumberStr);
// Asset Tag
- AssetTagStr = HiiGetPackageString (&gEfiCallerIdGuid, AssetTag, NULL);
+ AssetTagStr = HiiGetPackageString (&gEfiCallerIdGuid, AssetTag, NULL);
AssetTagStrLen = StrLen (AssetTagStr);
// Part Number
- PartNumberStr = HiiGetPackageString (&gEfiCallerIdGuid, PartNumber, NULL);
+ PartNumberStr = HiiGetPackageString (&gEfiCallerIdGuid, PartNumber, NULL);
PartNumberStrLen = StrLen (PartNumberStr);
TotalSize = sizeof (SMBIOS_TABLE_TYPE4) +
@@ -604,33 +628,33 @@ Exit:
**/
EFI_STATUS
AddSmbiosProcessorTypeTable (
- IN UINTN ProcessorIndex
+ IN UINTN ProcessorIndex
)
{
- EFI_STATUS Status;
- SMBIOS_TABLE_TYPE4 *Type4Record;
- EFI_SMBIOS_HANDLE SmbiosHandle;
- EFI_SMBIOS_HANDLE L1CacheHandle;
- EFI_SMBIOS_HANDLE L2CacheHandle;
- EFI_SMBIOS_HANDLE L3CacheHandle;
- UINT8 *LegacyVoltage;
- PROCESSOR_STATUS_DATA ProcessorStatus;
- UINT64 *ProcessorId;
- PROCESSOR_CHARACTERISTIC_FLAGS ProcessorCharacteristics;
- OEM_MISC_PROCESSOR_DATA MiscProcessorData;
- BOOLEAN ProcessorPopulated;
-
- Type4Record = NULL;
-
- MiscProcessorData.Voltage = 0;
- MiscProcessorData.CurrentSpeed = 0;
- MiscProcessorData.CoreCount = 0;
- MiscProcessorData.CoresEnabled = 0;
- MiscProcessorData.ThreadCount = 0;
- MiscProcessorData.MaxSpeed = 0;
- L1CacheHandle = 0xFFFF;
- L2CacheHandle = 0xFFFF;
- L3CacheHandle = 0xFFFF;
+ EFI_STATUS Status;
+ SMBIOS_TABLE_TYPE4 *Type4Record;
+ EFI_SMBIOS_HANDLE SmbiosHandle;
+ EFI_SMBIOS_HANDLE L1CacheHandle;
+ EFI_SMBIOS_HANDLE L2CacheHandle;
+ EFI_SMBIOS_HANDLE L3CacheHandle;
+ UINT8 *LegacyVoltage;
+ PROCESSOR_STATUS_DATA ProcessorStatus;
+ UINT64 *ProcessorId;
+ PROCESSOR_CHARACTERISTIC_FLAGS ProcessorCharacteristics;
+ OEM_MISC_PROCESSOR_DATA MiscProcessorData;
+ BOOLEAN ProcessorPopulated;
+
+ Type4Record = NULL;
+
+ MiscProcessorData.Voltage = 0;
+ MiscProcessorData.CurrentSpeed = 0;
+ MiscProcessorData.CoreCount = 0;
+ MiscProcessorData.CoresEnabled = 0;
+ MiscProcessorData.ThreadCount = 0;
+ MiscProcessorData.MaxSpeed = 0;
+ L1CacheHandle = 0xFFFF;
+ L2CacheHandle = 0xFFFF;
+ L3CacheHandle = 0xFFFF;
ProcessorPopulated = OemIsProcessorPresent (ProcessorIndex);
@@ -643,54 +667,70 @@ AddSmbiosProcessorTypeTable (
return Status;
}
- OemGetProcessorInformation (ProcessorIndex,
- &ProcessorStatus,
- (PROCESSOR_CHARACTERISTIC_FLAGS*)
- &Type4Record->ProcessorCharacteristics,
- &MiscProcessorData);
+ OemGetProcessorInformation (
+ ProcessorIndex,
+ &ProcessorStatus,
+ (PROCESSOR_CHARACTERISTIC_FLAGS *)
+ &Type4Record->ProcessorCharacteristics,
+ &MiscProcessorData
+ );
if (ProcessorPopulated) {
- AddSmbiosCacheTypeTable (ProcessorIndex, &L1CacheHandle,
- &L2CacheHandle, &L3CacheHandle);
+ AddSmbiosCacheTypeTable (
+ ProcessorIndex,
+ &L1CacheHandle,
+ &L2CacheHandle,
+ &L3CacheHandle
+ );
}
- LegacyVoltage = (UINT8*)&Type4Record->Voltage;
-
- *LegacyVoltage = MiscProcessorData.Voltage;
- Type4Record->CurrentSpeed = MiscProcessorData.CurrentSpeed;
- Type4Record->MaxSpeed = MiscProcessorData.MaxSpeed;
- Type4Record->Status = ProcessorStatus.Data;
- Type4Record->L1CacheHandle = L1CacheHandle;
- Type4Record->L2CacheHandle = L2CacheHandle;
- Type4Record->L3CacheHandle = L3CacheHandle;
- Type4Record->CoreCount = MiscProcessorData.CoreCount;
- Type4Record->CoreCount2 = MiscProcessorData.CoreCount;
- Type4Record->EnabledCoreCount = MiscProcessorData.CoresEnabled;
- Type4Record->EnabledCoreCount2 = MiscProcessorData.CoresEnabled;
- Type4Record->ThreadCount = MiscProcessorData.ThreadCount;
- Type4Record->ThreadCount2 = MiscProcessorData.ThreadCount;
-
- Type4Record->CurrentSpeed = GetCpuFrequency (ProcessorIndex);
+ LegacyVoltage = (UINT8 *)&Type4Record->Voltage;
+
+ *LegacyVoltage = MiscProcessorData.Voltage;
+ Type4Record->CurrentSpeed = MiscProcessorData.CurrentSpeed;
+ Type4Record->MaxSpeed = MiscProcessorData.MaxSpeed;
+ Type4Record->Status = ProcessorStatus.Data;
+ Type4Record->L1CacheHandle = L1CacheHandle;
+ Type4Record->L2CacheHandle = L2CacheHandle;
+ Type4Record->L3CacheHandle = L3CacheHandle;
+ Type4Record->CoreCount = MiscProcessorData.CoreCount;
+ Type4Record->CoreCount2 = MiscProcessorData.CoreCount;
+ Type4Record->EnabledCoreCount = MiscProcessorData.CoresEnabled;
+ Type4Record->EnabledCoreCount2 = MiscProcessorData.CoresEnabled;
+ Type4Record->ThreadCount = MiscProcessorData.ThreadCount;
+ Type4Record->ThreadCount2 = MiscProcessorData.ThreadCount;
+
+ Type4Record->CurrentSpeed = GetCpuFrequency (ProcessorIndex);
Type4Record->ExternalClock =
(UINT16)(SmbiosGetExternalClockFrequency () / 1000 / 1000);
- ProcessorId = (UINT64*)&Type4Record->ProcessorId;
+ ProcessorId = (UINT64 *)&Type4Record->ProcessorId;
*ProcessorId = SmbiosGetProcessorId ();
- ProcessorCharacteristics = SmbiosGetProcessorCharacteristics ();
- Type4Record->ProcessorCharacteristics |= *((UINT64*)&ProcessorCharacteristics);
+ ProcessorCharacteristics = SmbiosGetProcessorCharacteristics ();
+ Type4Record->ProcessorCharacteristics |= *((UINT64 *)&ProcessorCharacteristics);
- Type4Record->ProcessorFamily = SmbiosGetProcessorFamily ();
+ Type4Record->ProcessorFamily = SmbiosGetProcessorFamily ();
Type4Record->ProcessorFamily2 = SmbiosGetProcessorFamily2 ();
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
- Status = mSmbios->Add (mSmbios, NULL, &SmbiosHandle,
- (EFI_SMBIOS_TABLE_HEADER *)Type4Record);
+ Status = mSmbios->Add (
+ mSmbios,
+ NULL,
+ &SmbiosHandle,
+ (EFI_SMBIOS_TABLE_HEADER *)Type4Record
+ );
if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type04 Table Log Failed! %r \n",
- __FUNCTION__, DEBUG_LINE_NUMBER, Status));
+ DEBUG ((
+ DEBUG_ERROR,
+ "[%a]:[%dL] Smbios Type04 Table Log Failed! %r \n",
+ __FUNCTION__,
+ DEBUG_LINE_NUMBER,
+ Status
+ ));
}
+
FreePool (Type4Record);
return Status;
@@ -707,18 +747,18 @@ AddSmbiosProcessorTypeTable (
**/
EFI_STATUS
EFIAPI
-ProcessorSubClassEntryPoint(
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ProcessorSubClassEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- UINT32 ProcessorIndex;
+ EFI_STATUS Status;
+ UINT32 ProcessorIndex;
//
// Locate dependent protocols
//
- Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID**)&mSmbios);
+ Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&mSmbios);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Could not locate SMBIOS protocol. %r\n", Status));
return Status;
@@ -727,12 +767,13 @@ ProcessorSubClassEntryPoint(
//
// Add our default strings to the HII database. They will be modified later.
//
- mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid,
- NULL,
- ProcessorSubClassStrings,
- NULL,
- NULL
- );
+ mHiiHandle = HiiAddPackages (
+ &gEfiCallerIdGuid,
+ NULL,
+ ProcessorSubClassStrings,
+ NULL,
+ NULL
+ );
if (mHiiHandle == NULL) {
return EFI_OUT_OF_RESOURCES;
}