qemu-patch-raspberry4/hw/acpi
Igor Mammedov 9cc5a90b0e x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
In case firmware has negotiated CPU hotplug SMI feature, generate
AML to describe SMI IO port region and send SMI to firmware
on each CPU hotplug SCI in case new CPUs were hotplugged.

Since new CPUs can be hotplugged while CPU_SCAN_METHOD is running
we can't send SMI before new CPUs are fetched from QEMU as it
could cause sending Notify to a CPU that firmware hasn't seen yet.
So fetch new CPUs into local cache first, then send SMI and
after that send Notify events to cached CPUs. This should ensure
that Notify is sent only to CPUs which were processed by firmware
first.
Any CPUs that were hotplugged after caching will be processed
by the next CPU_SCAN_METHOD, when pending SCI is handled.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-10-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-09-29 02:15:24 -04:00
..
acpi-stub.c Include qmp-commands.h exactly where needed 2018-02-09 13:52:10 +01:00
acpi-x86-stub.c acpi: move PC stubs out of stubs/ 2019-12-17 19:33:50 +01:00
acpi_interface.c acpi: extend ACPI interface to provide send_event hook 2016-06-07 15:36:54 +03:00
aml-build-stub.c acpi: add aml builder stubs 2020-05-04 10:25:02 -04:00
aml-build.c acpi: add aml_land() and aml_break() primitives 2020-09-29 02:15:24 -04:00
bios-linker-loader.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
core.c acpi: accept byte and word access to core ACPI registers 2020-07-22 07:57:07 -04:00
cpu.c x68: acpi: trigger SMI before sending hotplug Notify event to OSPM 2020-09-29 02:15:24 -04:00
cpu_hotplug.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
generic_event_device.c acpi: move acpi_dsdt_add_power_button() to ged 2020-09-17 14:16:19 +02:00
ghes.c ACPI: Assert that we don't run out of the preallocated memory 2020-07-27 16:12:10 +01:00
hmat.c hmat acpi: Build Memory Side Cache Information Structure(s) 2020-01-05 07:03:03 -05:00
hmat.h hmat acpi: Build Memory Proximity Domain Attributes Structure(s) 2020-01-05 07:03:03 -05:00
ich9.c x86: cpuhp: refuse cpu hot-unplug request earlier if not supported 2020-09-29 02:15:24 -04:00
ipmi-stub.c ipmi: Fix SSIF ACPI handling to use the right CRS 2019-09-20 14:08:10 -05:00
ipmi.c ipmi: Fix SSIF ACPI handling to use the right CRS 2019-09-20 14:08:10 -05:00
Kconfig ACPI: Build related register address fields via hardware error fw_cfg blob 2020-05-14 15:03:09 +01:00
memory_hotplug.c hw/acpi: Do not create memory hotplug method when handler is not defined 2019-10-05 17:12:08 -04:00
meson.build meson: convert hw/acpi 2020-08-21 06:30:32 -04:00
nvdimm.c hw/acpi/nvdimm: add a helper to augment SRAT generation 2020-06-09 11:17:59 -04:00
pci.c acpi: pci: use build_append_foo() API to construct MCFG 2019-05-29 18:00:57 -04:00
pcihp.c Introduce a new flag for i440fx to disable PCI hotplug on the root bus 2020-08-27 08:29:08 -04:00
piix4.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
tco.c hw/acpi/tco: Remove unused definitions 2020-09-09 15:26:41 +02:00
tpm.c acpi: add ACPI memory clear interface 2019-01-17 21:10:57 -05:00
trace-events acpi: cpuhp: introduce 'Command data 2' field 2020-01-22 00:23:07 -05:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
utils.c hw/acpi: extract acpi_add_rom_blob() 2019-06-16 16:16:52 -04:00
vmgenid.c vmgenid: Rename VMGENID_DEVICE to TYPE_VMGENID 2020-09-09 13:20:22 -04:00