diff --git a/UefiCpuPkg/Include/Library/MpInitLib.h b/UefiCpuPkg/Include/Library/MpInitLib.h index 1853c46415..842c6f7ff9 100644 --- a/UefiCpuPkg/Include/Library/MpInitLib.h +++ b/UefiCpuPkg/Include/Library/MpInitLib.h @@ -63,6 +63,8 @@ MpInitLibGetNumberOfProcessors ( instant this call is made. This service may only be called from the BSP. @param[in] ProcessorNumber The handle number of processor. + Lower 24 bits contains the actual processor number. + BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived. @param[out] ProcessorInfoBuffer A pointer to the buffer where information for the requested processor is deposited. @param[out] HealthData Return processor health data. diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c index a359906923..cdfb570e61 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -2333,6 +2333,8 @@ MpInitLibInitialize ( instant this call is made. This service may only be called from the BSP. @param[in] ProcessorNumber The handle number of processor. + Lower 24 bits contains the actual processor number. + BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived. @param[out] ProcessorInfoBuffer A pointer to the buffer where information for the requested processor is deposited. @param[out] HealthData Return processor health data. diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c index 86f9fbf903..d4f8611af8 100644 --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c @@ -12,6 +12,7 @@ #include #include #include +#include /** MP Initialize Library initialization. @@ -77,6 +78,8 @@ MpInitLibGetNumberOfProcessors ( instant this call is made. This service may only be called from the BSP. @param[in] ProcessorNumber The handle number of processor. + Lower 24 bits contains the actual processor number. + BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived. @param[out] ProcessorInfoBuffer A pointer to the buffer where information for the requested processor is deposited. @param[out] HealthData Return processor health data. @@ -108,13 +111,11 @@ MpInitLibGetProcessorInfo ( return EFI_NOT_FOUND; } - ProcessorInfoBuffer->ProcessorId = 0; - ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | - PROCESSOR_ENABLED_BIT | - PROCESSOR_HEALTH_STATUS_BIT; - ProcessorInfoBuffer->Location.Package = 0; - ProcessorInfoBuffer->Location.Core = 0; - ProcessorInfoBuffer->Location.Thread = 0; + ZeroMem (ProcessorInfoBuffer, sizeof (*ProcessorInfoBuffer)); + ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | + PROCESSOR_ENABLED_BIT | + PROCESSOR_HEALTH_STATUS_BIT; + if (HealthData != NULL) { GuidHob = GetFirstGuidHob (&gEfiSecPlatformInformationPpiGuid); if (GuidHob != NULL) { diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf index 24ad29c03c..eb0a168f74 100644 --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf @@ -32,6 +32,7 @@ DebugLib LocalApicLib HobLib + BaseMemoryLib [Ppis] gEfiSecPlatformInformationPpiGuid ## SOMETIMES_CONSUMES