Gerd Hoffmann (kraxel@redhat.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6773
-gerrit
commit 58269bd8c92189215a977231190a3031e673f9f9 Author: Gerd Hoffmann kraxel@redhat.com Date: Wed Aug 27 13:22:20 2014 +0200
qemu: make MAX_ACPI_SIZE big enougth for qemu 2.1+
The size allocated for acpi tables in the recently released qemu 2.1 version has changed. In 2.0 it was automatically sized according to the actual size of the acpi tables. Which caused problems because the allocation size could change depending on qemu version and guest configuration. Now it is 128k fixed, which should be enougth even for very large guests.
Problem with that is that MAX_ACPI_SIZE is 45k, i.e. too small.
This patch adds a MAX_ACPI_SIZE_KB config option, defaulting to the traditional 45, which can be overridden by boards if needed. The new option is used to set the size for the qemu bords to 129k (128k for the bulk of tables plus some extra space for the rdsp table).
Change-Id: I1268a4a443583f7a856d4b2e6416b866026d52bc Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- src/Kconfig | 5 +++++ src/arch/x86/boot/tables.c | 2 +- src/mainboard/emulation/qemu-i440fx/Kconfig | 4 ++++ src/mainboard/emulation/qemu-q35/Kconfig | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/Kconfig b/src/Kconfig index 6b674ed..f9893a7 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -476,6 +476,11 @@ config GENERATE_ACPI_TABLES
If unsure, say Y.
+config MAX_ACPI_SIZE_KB + int + default 45 + depends on GENERATE_ACPI_TABLES + config GENERATE_MP_TABLE prompt "Generate an MP table" if HAVE_MP_TABLE || DRIVERS_GENERIC_IOAPIC bool diff --git a/src/arch/x86/boot/tables.c b/src/arch/x86/boot/tables.c index 16c752a..22b0abc 100644 --- a/src/arch/x86/boot/tables.c +++ b/src/arch/x86/boot/tables.c @@ -109,7 +109,7 @@ void write_tables(void) #endif /* CONFIG_GENERATE_MP_TABLE */
#if CONFIG_GENERATE_ACPI_TABLES -#define MAX_ACPI_SIZE (45 * 1024) +#define MAX_ACPI_SIZE (CONFIG_MAX_ACPI_SIZE_KB * 1024) post_code(0x9c);
/* Write ACPI tables to F segment and high tables area */ diff --git a/src/mainboard/emulation/qemu-i440fx/Kconfig b/src/mainboard/emulation/qemu-i440fx/Kconfig index 34f3342..48f64a0 100644 --- a/src/mainboard/emulation/qemu-i440fx/Kconfig +++ b/src/mainboard/emulation/qemu-i440fx/Kconfig @@ -33,4 +33,8 @@ config DCACHE_RAM_SIZE hex default 0x10000
+config MAX_ACPI_SIZE_KB + int + default 129 + endif # BOARD_EMULATION_QEMU_X86_I440FX diff --git a/src/mainboard/emulation/qemu-q35/Kconfig b/src/mainboard/emulation/qemu-q35/Kconfig index 3949937..9c6d086 100644 --- a/src/mainboard/emulation/qemu-q35/Kconfig +++ b/src/mainboard/emulation/qemu-q35/Kconfig @@ -44,4 +44,8 @@ config DCACHE_RAM_SIZE hex default 0x10000
+config MAX_ACPI_SIZE_KB + int + default 129 + endif # BOARD_EMULATION_QEMU_X86_Q35