06f1f4958b
ACPI GED (as described in the ACPI 6.4 spec) uses an interrupt listed in the _CRS object of GED to intimate OSPM about an event. Later then demultiplexes the notified event by evaluating ACPI _EVT method to know the type of event. Use ACPI GED to also notify the guest kernel about any CPU hot(un)plug events. Note, GED interface is used by many hotplug events like memory hotplug, NVDIMM hotplug and non-hotplug events like system power down event. Each of these can be selected using a bit in the 32 bit GED IO interface. A bit has been reserved for the CPU hotplug event. ACPI CPU hotplug related initialization should only happen if ACPI_CPU_HOTPLUG support has been enabled for particular architecture. Add cpu_hotplug_hw_init() stub to avoid compilation break. Co-developed-by: Keqian Zhu <zhukeqian1@huawei.com> Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Gavin Shan <gshan@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Shaoqin Huang <shahuang@redhat.com> Tested-by: Vishnu Pajjuri <vishnu@os.amperecomputing.com> Tested-by: Xianglai Li <lixianglai@loongson.cn> Tested-by: Miguel Luis <miguel.luis@oracle.com> Reviewed-by: Vishnu Pajjuri <vishnu@os.amperecomputing.com> Tested-by: Zhao Liu <zhao1.liu@intel.com> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Message-Id: <20240716111502.202344-4-salil.mehta@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Igor Mammedov <imammedo@redhat.com>
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
#include "qemu/osdep.h"
|
|
#include "hw/acpi/cpu_hotplug.h"
|
|
#include "migration/vmstate.h"
|
|
|
|
|
|
/* Following stubs are all related to ACPI cpu hotplug */
|
|
const VMStateDescription vmstate_cpu_hotplug;
|
|
|
|
void acpi_switch_to_modern_cphp(AcpiCpuHotplug *gpe_cpu,
|
|
CPUHotplugState *cpuhp_state,
|
|
uint16_t io_port)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
|
|
AcpiCpuHotplug *gpe_cpu, uint16_t base)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void cpu_hotplug_hw_init(MemoryRegion *as, Object *owner,
|
|
CPUHotplugState *state, hwaddr base_addr)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void acpi_cpu_ospm_status(CPUHotplugState *cpu_st, ACPIOSTInfoList ***list)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
|
|
CPUHotplugState *cpu_st, DeviceState *dev, Error **errp)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
|
|
AcpiCpuHotplug *g, DeviceState *dev, Error **errp)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void acpi_cpu_unplug_cb(CPUHotplugState *cpu_st,
|
|
DeviceState *dev, Error **errp)
|
|
{
|
|
return;
|
|
}
|
|
|
|
void acpi_cpu_unplug_request_cb(HotplugHandler *hotplug_dev,
|
|
CPUHotplugState *cpu_st,
|
|
DeviceState *dev, Error **errp)
|
|
{
|
|
return;
|
|
}
|