[edk2-devel] [PATCH v5 3/9] OvmfPkg/CpuHotplugSmm: add Qemu Cpu Status helper

Ankur Arora ankur.a.arora at oracle.com
Tue Jan 26 06:44:34 UTC 2021


Add QemuCpuhpWriteCpuStatus() which will be used to update the QEMU
CPU status register. On error, it hangs in a similar fashion as
other helper functions.

Cc: Laszlo Ersek <lersek at redhat.com>
Cc: Jordan Justen <jordan.l.justen at intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel at arm.com>
Cc: Igor Mammedov <imammedo at redhat.com>
Cc: Boris Ostrovsky <boris.ostrovsky at oracle.com>
Cc: Aaron Young <aaron.young at oracle.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3132
Signed-off-by: Ankur Arora <ankur.a.arora at oracle.com>
---
 OvmfPkg/CpuHotplugSmm/QemuCpuhp.h |  6 ++++++
 OvmfPkg/CpuHotplugSmm/QemuCpuhp.c | 22 ++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/OvmfPkg/CpuHotplugSmm/QemuCpuhp.h b/OvmfPkg/CpuHotplugSmm/QemuCpuhp.h
index 8adaa0ad91f0..804809846890 100644
--- a/OvmfPkg/CpuHotplugSmm/QemuCpuhp.h
+++ b/OvmfPkg/CpuHotplugSmm/QemuCpuhp.h
@@ -30,6 +30,12 @@ QemuCpuhpReadCpuStatus (
   IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo

   );

 

+VOID

+QemuCpuhpWriteCpuStatus (

+  IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,

+  IN UINT8                        CpuStatus

+  );

+

 UINT32

 QemuCpuhpReadCommandData (

   IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo

diff --git a/OvmfPkg/CpuHotplugSmm/QemuCpuhp.c b/OvmfPkg/CpuHotplugSmm/QemuCpuhp.c
index 2dd783ebf42e..c35ae31d2db0 100644
--- a/OvmfPkg/CpuHotplugSmm/QemuCpuhp.c
+++ b/OvmfPkg/CpuHotplugSmm/QemuCpuhp.c
@@ -67,6 +67,28 @@ QemuCpuhpReadCpuStatus (
   return CpuStatus;

 }

 

+VOID

+QemuCpuhpWriteCpuStatus (

+  IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,

+  IN UINT8                        CpuStatus

+  )

+{

+  EFI_STATUS Status;

+

+  Status = MmCpuIo->Io.Write(

+                         MmCpuIo,

+                         MM_IO_UINT8,

+                         ICH9_CPU_HOTPLUG_BASE + QEMU_CPUHP_R_CPU_STAT,

+                         1,

+                         &CpuStatus

+                         );

+  if (EFI_ERROR (Status)) {

+    DEBUG ((DEBUG_ERROR, "%a: %r\n", __FUNCTION__, Status));

+    ASSERT (FALSE);

+    CpuDeadLoop ();

+  }

+}

+

 UINT32

 QemuCpuhpReadCommandData (

   IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo

-- 
2.9.3



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70762): https://edk2.groups.io/g/devel/message/70762
Mute This Topic: https://groups.io/mt/80125310/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list