On 19/03/20 10:42, Philippe Mathieu-Daudé wrote:
> On 3/19/20 10:36 AM, Paolo Bonzini wrote:
>> On 18/03/20 23:15, Philippe Mathieu-Daudé wrote:
>>> The I/O ranges registered by the piix4_acpi_system_hot_add_init()
>>> function are not documented in the PIIX4 datasheet.
>>> This appears to be a PC-only feature added in commit 5e3cb5347e
>>> ("initialize hot add system / acpi gpe") which was then moved
>>> to the PIIX4 device model in commit 9d5e77a22f ("make
>>> qemu_system_device_hot_add piix independent")
>>> Add a property (default enabled, to not modify the current
>>> behavior) to allow machines wanting to model a simple PIIX4
>>> to disable this feature.
>>
>> Yes, all hotplug stuff (PCI/memory/CPU) are custom additions by QEMU.
>>
>>> + DEFINE_PROP_BOOL("system-hotplug-support", PIIX4PMState,
>>> + use_acpi_system_hotplug, true),
>>
>> Why not cpu-hotplug-support?
>
> Because I have no idea what this code is about, and it seems more than
> cpu (pci, memory):
Right, I should have been more verbose. You mentioned I/O port 0xaf00
which is CPU hotplug. Perhaps unless you can also crash with PCI
hotplug (0xae00-0xae0f) it's worth removing only CPU hotplug from MIPS
machines, and keep PCI hotplug.
Paolo
> static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
> PCIBus *bus, PIIX4PMState *s)
> {
> memory_region_init_io(&s->io_gpe, OBJECT(s), &piix4_gpe_ops, s,
> "acpi-gpe0", GPE_LEN);
> memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
>
> acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
> s->use_acpi_pci_hotplug);
>
> s->cpu_hotplug_legacy = true;
> object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
> piix4_get_cpu_hotplug_legacy,
> piix4_set_cpu_hotplug_legacy,
> NULL);
> legacy_acpi_cpu_hotplug_init(parent, OBJECT(s), &s->gpe_cpu,
> PIIX4_CPU_HOTPLUG_IO_BASE);
>
> if (s->acpi_memory_hotplug.is_enabled) {
> acpi_memory_hotplug_init(parent, OBJECT(s),
> &s->acpi_memory_hotplug,
> ACPI_MEMORY_HOTPLUG_BASE);
> }
> }
>