audk/UefiCpuPkg/Include/Library
Ray Ni 534fcb84de UefiCpuPkg/CpuFeature: Introduce First to indicate 1st unit.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1584

The flow of CPU feature initialization logic is:
1. BSP calls GetConfigDataFunc() for each thread/AP;
2. Each thread/AP calls SupportFunc() to detect its own capability;
3. BSP calls InitializeFunc() for each thread/AP.

There is a design gap in step . For a package scope feature that only
requires one thread of each package does the initialization operation,
what InitializeFunc() currently does is to do the initialization
operation only CPU physical location Core# is 0.
But in certain platform, Core#0 might be disabled in hardware level
which results the certain package scope feature isn't initialized at
all.

The patch adds a new field First to indicate the CPU's location in
its parent scope.
First.Package is set for all APs/threads under first package;
First.Core is set for all APs/threads under first core of each
package;
First.Thread is set for the AP/thread of each core.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
2020-02-14 03:15:00 +00:00
..
LocalApicLib.h
MpInitLib.h
MtrrLib.h
PlatformSecLib.h
RegisterCpuFeaturesLib.h UefiCpuPkg/CpuFeature: Introduce First to indicate 1st unit. 2020-02-14 03:15:00 +00:00
SmmCpuFeaturesLib.h UefiCpuPkg/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmCpuPlatformHookLib.h
UefiCpuLib.h