Hi,
Currently the acpi (+smbios) io regions are in the middle of the addres space: At 0xb000 and 0xb100. And we start allocating I/O ports at 0xc000. piix additionally has some magic io ports (for cpu + pci hotplug) between 0xae00 and 0xaffff.
For q35 I'd like to move the acpi ports out if the way, so we can start allocating io ports at 0x2000 and use the whole 0x2000 -> 0xffff range.
This patch series does just that. There is one problem with that though (as you might have guessed from the 'RfC' tag):
To simplify things the acpi port move is done for both piix and q35, even though it doesn't buy us much on piix due to the hotplug ports. Programming the piix smbios base register was broken in qemu until very recently (1.4 will be the first release with this fixed). Bummer.
So what are our options?
(1) Set ACPI_PM_BASE at runtime, continue to use 0xb000 for piix. I'd prefer that one. Looks non-trivial due to apci dependencies and src/smm.c though.
(2) Make ACPI_PM_BASE a config option, so we can leave it at 0xb000 by default and allow switching to 0x1000 manually if we know qemu is new enougth to handle it properly. acpi dependency is still there, but as we pipe the aml through cpp anyway it shouldn't be that bad.
(3) Your bright idea?
cheers, Gerd
Gerd Hoffmann (2): move ACPI_PM_BASE from 0xb000 to 0x1000 q35: allocate from ioports from 0x2000 up
src/ioport.h | 4 ++-- src/pciinit.c | 6 +++++- src/ssdt-proc.dsl | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-)