44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
|
|
From bea23b0f82cedbd860b66c7b9e1f6bb0ca85d1cf Mon Sep 17 00:00:00 2001
|
||
|
|
From: Salil Mehta <salil.mehta@huawei.com>
|
||
|
|
Date: Sun, 6 Aug 2023 17:05:30 +0000
|
||
|
|
Subject: [PATCH] arm/virt/acpi: Build CPUs AML with CPU Hotplug support
|
||
|
|
|
||
|
|
Support of vCPU Hotplug requires sequence of ACPI handshakes between Qemu and
|
||
|
|
Guest kernel when a vCPU is plugged or unplugged. Most of the AML code to
|
||
|
|
support these handshakes already exists. This AML need to be build during VM
|
||
|
|
init for ARM architecture as well if the GED support exists.
|
||
|
|
|
||
|
|
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
|
||
|
|
---
|
||
|
|
hw/arm/virt-acpi-build.c | 14 +++++++++++++-
|
||
|
|
1 file changed, 13 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
|
||
|
|
index 084c8abc7c..d88f3cded1 100644
|
||
|
|
--- a/hw/arm/virt-acpi-build.c
|
||
|
|
+++ b/hw/arm/virt-acpi-build.c
|
||
|
|
@@ -937,7 +937,19 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
|
||
|
|
* the RTC ACPI device at all when using UEFI.
|
||
|
|
*/
|
||
|
|
scope = aml_scope("\\_SB");
|
||
|
|
- acpi_dsdt_add_cpus(scope, vms);
|
||
|
|
+ /* if GED is enabled then cpus AML shall be added as part build_cpus_aml */
|
||
|
|
+ if (vms->acpi_dev) {
|
||
|
|
+ CPUHotplugFeatures opts = {
|
||
|
|
+ .acpi_1_compatible = false,
|
||
|
|
+ .has_legacy_cphp = false
|
||
|
|
+ };
|
||
|
|
+
|
||
|
|
+ build_cpus_aml(scope, ms, opts, NULL, virt_acpi_dsdt_cpu_cppc,
|
||
|
|
+ memmap[VIRT_CPUHP_ACPI].base,
|
||
|
|
+ "\\_SB", NULL, AML_SYSTEM_MEMORY);
|
||
|
|
+ } else {
|
||
|
|
+ acpi_dsdt_add_cpus(scope, vms);
|
||
|
|
+ }
|
||
|
|
acpi_dsdt_add_uart(scope, &memmap[VIRT_UART],
|
||
|
|
(irqmap[VIRT_UART] + ARM_SPI_BASE));
|
||
|
|
if (vmc->acpi_expose_flash) {
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|