From 46fd118219fcce638f1eb9c861f4a037530b64b9 Mon Sep 17 00:00:00 2001 From: Jeff Fan Date: Fri, 1 Jul 2016 14:51:10 +0800 Subject: [PATCH] UefiCpuPkg/CpuMpPei: Skip microcode check/load if it has been loaded Actually, there is only one microcode region in platform. If microcode has been loaded, its signature will not be zero and should be loaded successfully. We needn't to check microcode region and load microcode again. This update is to skip checking/loading microcode if current microcode signature is not zero. Cc: Michael Kinney Cc: Feng Tian Cc: Giri P Mudusuru Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan Reviewed-by: Giri P Mudusuru --- UefiCpuPkg/CpuMpPei/Microcode.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/UefiCpuPkg/CpuMpPei/Microcode.c b/UefiCpuPkg/CpuMpPei/Microcode.c index 3fd3a8bb81..67280d334d 100644 --- a/UefiCpuPkg/CpuMpPei/Microcode.c +++ b/UefiCpuPkg/CpuMpPei/Microcode.c @@ -53,6 +53,7 @@ MicrocodeDetect ( UINTN Index; UINT8 PlatformId; UINT32 RegEax; + UINT32 CurrentRevision; UINT32 LatestRevision; UINTN TotalSize; UINT32 CheckSum32; @@ -69,6 +70,14 @@ MicrocodeDetect ( return; } + CurrentRevision = GetCurrentMicrocodeSignature (); + if (CurrentRevision != 0) { + // + // Skip loading microcode if it has been loaded successfully + // + return; + } + ExtendedTableLength = 0; // // Here data of CPUID leafs have not been collected into context buffer, so