]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.c
OvmfPkg: enable SMM Monarch Election in PiSmmCpuDxeSmm
[mirror_edk2.git] / OvmfPkg / Library / SmmCpuPlatformHookLibQemu / SmmCpuPlatformHookLibQemu.c
index 257e1d399cc6d8add51990003e04c3a4733069c0..c88a95c6deffe6757148c3d7631ac1f45e43046e 100644 (file)
@@ -6,7 +6,10 @@ Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
+#include <Library/BaseLib.h>                 // AsmReadMsr64()\r
 #include <PiSmm.h>\r
+#include <Register/Intel/ArchitecturalMsr.h> // MSR_IA32_APIC_BASE_REGISTER\r
+\r
 #include <Library/SmmCpuPlatformHookLib.h>\r
 \r
 /**\r
@@ -75,7 +78,11 @@ PlatformSmmBspElection (
   OUT BOOLEAN     *IsBsp\r
   )\r
 {\r
-  return EFI_NOT_READY;\r
+  MSR_IA32_APIC_BASE_REGISTER ApicBaseMsr;\r
+\r
+  ApicBaseMsr.Uint64 = AsmReadMsr64 (MSR_IA32_APIC_BASE);\r
+  *IsBsp = (BOOLEAN)(ApicBaseMsr.Bits.BSP == 1);\r
+  return EFI_SUCCESS;\r
 }\r
 \r
 /**\r