mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0
Set EXTENDED_PROCESSOR_INFORMATION to 0 in API MpInitLibGetProcessorInfo() of MpInitLibUp. This commit use ZeroMem() to set all fileds in output EFI_PROCESSOR_INFORMATION to 0 before StatusFlag field is reassigned. Previously EXTENDED_PROCESSOR_INFORMATION in the API MpInitLibGetProcessorInfo() of MpInitLibUp is ignored. In PEI/DXE MpInitLib, EXTENDED_PROCESSOR_INFORMATION will be retrived when BIT24 of input ProcessorNumber is set. This commit can avoid garbage in the output structure in MpInitLibGetProcessorInfo() of MpInitLibUp. Signed-off-by: Dun Tan <dun.tan@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Min Xu <min.m.xu@intel.com> Message-Id: <20240108050804.1718-2-dun.tan@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
parent
f2b074398c
commit
2a5c08caaf
|
@ -63,6 +63,8 @@ MpInitLibGetNumberOfProcessors (
|
||||||
instant this call is made. This service may only be called from the BSP.
|
instant this call is made. This service may only be called from the BSP.
|
||||||
|
|
||||||
@param[in] ProcessorNumber The handle number of processor.
|
@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
|
@param[out] ProcessorInfoBuffer A pointer to the buffer where information for
|
||||||
the requested processor is deposited.
|
the requested processor is deposited.
|
||||||
@param[out] HealthData Return processor health data.
|
@param[out] HealthData Return processor health data.
|
||||||
|
|
|
@ -2333,6 +2333,8 @@ MpInitLibInitialize (
|
||||||
instant this call is made. This service may only be called from the BSP.
|
instant this call is made. This service may only be called from the BSP.
|
||||||
|
|
||||||
@param[in] ProcessorNumber The handle number of processor.
|
@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
|
@param[out] ProcessorInfoBuffer A pointer to the buffer where information for
|
||||||
the requested processor is deposited.
|
the requested processor is deposited.
|
||||||
@param[out] HealthData Return processor health data.
|
@param[out] HealthData Return processor health data.
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/LocalApicLib.h>
|
#include <Library/LocalApicLib.h>
|
||||||
#include <Library/HobLib.h>
|
#include <Library/HobLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
MP Initialize Library initialization.
|
MP Initialize Library initialization.
|
||||||
|
@ -77,6 +78,8 @@ MpInitLibGetNumberOfProcessors (
|
||||||
instant this call is made. This service may only be called from the BSP.
|
instant this call is made. This service may only be called from the BSP.
|
||||||
|
|
||||||
@param[in] ProcessorNumber The handle number of processor.
|
@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
|
@param[out] ProcessorInfoBuffer A pointer to the buffer where information for
|
||||||
the requested processor is deposited.
|
the requested processor is deposited.
|
||||||
@param[out] HealthData Return processor health data.
|
@param[out] HealthData Return processor health data.
|
||||||
|
@ -108,13 +111,11 @@ MpInitLibGetProcessorInfo (
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessorInfoBuffer->ProcessorId = 0;
|
ZeroMem (ProcessorInfoBuffer, sizeof (*ProcessorInfoBuffer));
|
||||||
ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT |
|
ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT |
|
||||||
PROCESSOR_ENABLED_BIT |
|
PROCESSOR_ENABLED_BIT |
|
||||||
PROCESSOR_HEALTH_STATUS_BIT;
|
PROCESSOR_HEALTH_STATUS_BIT;
|
||||||
ProcessorInfoBuffer->Location.Package = 0;
|
|
||||||
ProcessorInfoBuffer->Location.Core = 0;
|
|
||||||
ProcessorInfoBuffer->Location.Thread = 0;
|
|
||||||
if (HealthData != NULL) {
|
if (HealthData != NULL) {
|
||||||
GuidHob = GetFirstGuidHob (&gEfiSecPlatformInformationPpiGuid);
|
GuidHob = GetFirstGuidHob (&gEfiSecPlatformInformationPpiGuid);
|
||||||
if (GuidHob != NULL) {
|
if (GuidHob != NULL) {
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
DebugLib
|
DebugLib
|
||||||
LocalApicLib
|
LocalApicLib
|
||||||
HobLib
|
HobLib
|
||||||
|
BaseMemoryLib
|
||||||
|
|
||||||
[Ppis]
|
[Ppis]
|
||||||
gEfiSecPlatformInformationPpiGuid ## SOMETIMES_CONSUMES
|
gEfiSecPlatformInformationPpiGuid ## SOMETIMES_CONSUMES
|
||||||
|
|
Loading…
Reference in New Issue