- if (LatestRevision > GetCurrentMicrocodeSignature ()) {\r
- AsmWriteMsr64 (\r
- EFI_MSR_IA32_BIOS_UPDT_TRIG,\r
- (UINT64) (UINTN) MicrocodeInfo.MicrocodeData\r
- );\r
- //\r
- // Get and verify new microcode signature\r
- //\r
- ASSERT (LatestRevision == GetCurrentMicrocodeSignature ());\r
- MicrocodeInfo.Load = TRUE;\r
- } else {\r
- MicrocodeInfo.Load = FALSE;\r
+ AsmWriteMsr64 (\r
+ EFI_MSR_IA32_BIOS_UPDT_TRIG,\r
+ (UINT64) (UINTN) MicrocodeInfo.MicrocodeData\r
+ );\r
+ //\r
+ // Get and check new microcode signature\r
+ //\r
+ CurrentRevision = GetCurrentMicrocodeSignature ();\r
+ if (CurrentRevision != LatestRevision) {\r
+ AcquireSpinLock(&PeiCpuMpData->MpLock);\r
+ DEBUG ((EFI_D_ERROR, "Updated microcode signature [0x%08x] does not match \\r
+ loaded microcode signature [0x%08x]\n", CurrentRevision, LatestRevision));\r
+ ReleaseSpinLock(&PeiCpuMpData->MpLock);\r