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@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Aaron Young <aaron.young@oracle.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3132
Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <
20210312062656.
2477515-4-ankur.a.arora@oracle.com>
}\r
}\r
\r
+VOID\r
+QemuCpuhpWriteCpuStatus (\r
+ IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,\r
+ IN UINT8 CpuStatus\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ Status = MmCpuIo->Io.Write (\r
+ MmCpuIo,\r
+ MM_IO_UINT8,\r
+ ICH9_CPU_HOTPLUG_BASE + QEMU_CPUHP_R_CPU_STAT,\r
+ 1,\r
+ &CpuStatus\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_ERROR, "%a: %r\n", __FUNCTION__, Status));\r
+ ASSERT (FALSE);\r
+ CpuDeadLoop ();\r
+ }\r
+}\r
+\r
VOID\r
QemuCpuhpWriteCommand (\r
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,\r
IN UINT32 Selector\r
);\r
\r
+VOID\r
+QemuCpuhpWriteCpuStatus (\r
+ IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,\r
+ IN UINT8 CpuStatus\r
+ );\r
+\r
VOID\r
QemuCpuhpWriteCommand (\r
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,\r