OvmfPkg/CpuHotplugSmm: add hotplug register block helper functions
Add a handful of simple functions for accessing QEMU's hotplug registers more conveniently. These functions thinly wrap some of the registers described in "docs/specs/acpi_cpu_hotplug.txt" in the QEMU tree. The functions hang (by design) if they encounter an internal failure. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1512 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20200226221156.29589-8-lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
This commit is contained in:
committed by
mergify[bot]
parent
17efae27ac
commit
590f5f09b7
47
OvmfPkg/CpuHotplugSmm/QemuCpuhp.h
Normal file
47
OvmfPkg/CpuHotplugSmm/QemuCpuhp.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/** @file
|
||||
Simple wrapper functions that access QEMU's modern CPU hotplug register
|
||||
block.
|
||||
|
||||
These functions thinly wrap some of the registers described in
|
||||
"docs/specs/acpi_cpu_hotplug.txt" in the QEMU source. IO Ports are accessed
|
||||
via EFI_MM_CPU_IO_PROTOCOL. If a protocol call fails, these functions don't
|
||||
return.
|
||||
|
||||
Copyright (c) 2020, Red Hat, Inc.
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#ifndef QEMU_CPUHP_H_
|
||||
#define QEMU_CPUHP_H_
|
||||
|
||||
#include <Protocol/MmCpuIo.h> // EFI_MM_CPU_IO_PROTOCOL
|
||||
|
||||
UINT32
|
||||
QemuCpuhpReadCommandData2 (
|
||||
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo
|
||||
);
|
||||
|
||||
UINT8
|
||||
QemuCpuhpReadCpuStatus (
|
||||
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo
|
||||
);
|
||||
|
||||
UINT32
|
||||
QemuCpuhpReadCommandData (
|
||||
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo
|
||||
);
|
||||
|
||||
VOID
|
||||
QemuCpuhpWriteCpuSelector (
|
||||
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,
|
||||
IN UINT32 Selector
|
||||
);
|
||||
|
||||
VOID
|
||||
QemuCpuhpWriteCommand (
|
||||
IN CONST EFI_MM_CPU_IO_PROTOCOL *MmCpuIo,
|
||||
IN UINT8 Command
|
||||
);
|
||||
|
||||
#endif // QEMU_CPUHP_H_
|
Reference in New Issue
Block a user