edk2/UefiCpuPkg/Library/MpInitLib
Hao A Wu d786a17232 UefiCpuPkg/MpInitLib: Reduce the size when loading microcode patches
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2429

This commit will attempt to reduce the copy size when loading the
microcode patches data from flash into memory.

Such optimization is done by a pre-process of the microcode patch headers
(on flash). A microcode patch will be loaded into memory only when the
below 3 criteria are met:

A. With a microcode patch header (which means the data is not padding data
   between microcode patches);
B. The 'ProcessorSignature' & 'ProcessorFlags' fields in the header match
   at least one processor within system;
C. If the Extended Signature Table exists in a microcode patch, the
   'ProcessorSignature' & 'ProcessorFlag' fields in the table entries
   match at least one processor within system.

Criterion B and C will require all the processors to be woken up once to
collect their CPUID and Platform ID information. Hence, this commit will
move the copy, detect and apply of microcode patch on BSP and APs after
all the processors have been woken up.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2020-01-02 03:10:36 +00:00
..
Ia32 UefiCpuPkg/MpInitLib: increase NumApsExecuting only for ApInitConfig 2019-06-10 10:53:42 +08:00
X64 UefiCpuPkg/MpInitLib: Enable 5-level paging for AP when BSP's enabled 2019-08-09 08:52:08 +08:00
DxeMpInitLib.inf UefiCpuPkg/MpInitLib: honor the platform's boot CPU count in AP detection 2019-10-11 23:20:09 +02:00
DxeMpInitLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
DxeMpLib.c UefiCpuPkg/MpInitLib: Add MpInitLibStartupAllCPUs API. 2019-07-29 09:25:20 +08:00
Microcode.c UefiCpuPkg/MpInitLib: Reduce the size when loading microcode patches 2020-01-02 03:10:36 +00:00
MpLib.c UefiCpuPkg/MpInitLib: Reduce the size when loading microcode patches 2020-01-02 03:10:36 +00:00
MpLib.h UefiCpuPkg/MpInitLib: Reduce the size when loading microcode patches 2020-01-02 03:10:36 +00:00
PeiMpInitLib.inf UefiCpuPkg/MpInitLib: honor the platform's boot CPU count in AP detection 2019-10-11 23:20:09 +02:00
PeiMpInitLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
PeiMpLib.c UefiCpuPkg/MpInitLib: Add MpInitLibStartupAllCPUs API. 2019-07-29 09:25:20 +08:00