UefiCpuPkg: Shadow microcode patch according to FIT microcode entry.
The existing MpInitLib will shadow the microcode update patches from flash to memory and this is done by searching microcode region specified by PCD PcdCpuMicrocodePatchAddress and PcdCpuMicrocodePatchRegionSize. This brings a limition to platform FW that all the microcode patches must be placed in one continuous flash space. This patch shadows microcode update according to FIT microcode entries if it's present, otherwise it will fallback to original logic (by PCD). A new featured PCD gUefiCpuPkgTokenSpaceGuid.PcdCpuShadowMicrocodeByFit is added for enabling/disabling this support. TEST: Tested on FIT enabled platform. BZ: https://tianocore.acgmultimedia.com/show_bug.cgi?id=2449 Cc: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Siyuan Fu <siyuan.fu@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
@@ -29,6 +29,9 @@
|
||||
#include <Library/MtrrLib.h>
|
||||
#include <Library/HobLib.h>
|
||||
|
||||
#include <IndustryStandard/FirmwareInterfaceTable.h>
|
||||
|
||||
|
||||
#define WAKEUP_AP_SIGNAL SIGNATURE_32 ('S', 'T', 'A', 'P')
|
||||
|
||||
#define CPU_INIT_MP_LIB_HOB_GUID \
|
||||
@@ -587,12 +590,12 @@ MicrocodeDetect (
|
||||
);
|
||||
|
||||
/**
|
||||
Load the required microcode patches data into memory.
|
||||
Shadow the required microcode patches data into memory.
|
||||
|
||||
@param[in, out] CpuMpData The pointer to CPU MP Data structure.
|
||||
**/
|
||||
VOID
|
||||
LoadMicrocodePatch (
|
||||
ShadowMicrocodeUpdatePatch (
|
||||
IN OUT CPU_MP_DATA *CpuMpData
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user