Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- src/Kconfig | 7 +++++++ src/fw/paravirt.h | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig index cce3ad8..df3512d 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -309,6 +309,13 @@ menu "Hardware support" default y help Initialize the Memory Type Range Registers (on emulators). + config PMBASE_LOW + depends on QEMU + bool "Map ACPI PM below 0x1000" + default n + help + Map ACPI PM bar below 0x1000. This makes room in the io address + space for PCI bridges, but requires qemu 1.4+ to work correctly. config PMTIMER bool "Use ACPI timer" default y diff --git a/src/fw/paravirt.h b/src/fw/paravirt.h index 69d7248..64fe4c6 100644 --- a/src/fw/paravirt.h +++ b/src/fw/paravirt.h @@ -29,8 +29,13 @@ static inline int runningOnKVM(void) { #define PORT_SMI_STATUS 0x00b3 #define PORT_QEMU_CFG_CTL 0x0510 #define PORT_QEMU_CFG_DATA 0x0511 -#define PORT_ACPI_PM_BASE 0xb000 -#define PORT_SMB_BASE 0xb100 +#ifdef CONFIG_PMBASE_LOW +# define PORT_ACPI_PM_BASE 0x0600 +# define PORT_SMB_BASE 0x0700 +#else +# define PORT_ACPI_PM_BASE 0xb000 +# define PORT_SMB_BASE 0xb100 +#endif #define PORT_BIOS_APM 0x8900
void qemu_preinit(void);