arch/x86/tables: Move max ACPI table size to Kconfig

The maximum ACPI table size is currently hardcoded to 144 KiB.
When using QEMU with TPM enabled there is ~200 KiB of ACPI tables
returned by the fw_cfg interface, so in order to allow this to be
overridden by a mainboard move it to Kconfig.

This is seen when using a TPM with qemu as it will hang when
processing the fw_cfg tables.

qemu-system-x86_64 \
  -machine q35 -enable-kvm -vga virtio -serial stdio \
  -drive 'id=hd,file=disk.bin' -bios coreboot.rom \
  -chardev 'socket,id=swtpm,path=/tmp/swtpm/swtpm-sock' \
  -tpmdev 'emulator,id=tpm0,chardev=swtpm' \
  -device 'tpm-tis,tpmdev=tpm0'

Change-Id: Ib5baa8fe12cb9027a340875f1ccf5fef6f9460bd
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39832
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/src/arch/x86/tables.c b/src/arch/x86/tables.c
index 066e635..7e653f7 100644
--- a/src/arch/x86/tables.c
+++ b/src/arch/x86/tables.c
@@ -78,8 +78,7 @@
 static unsigned long write_acpi_table(unsigned long rom_table_end)
 {
 	unsigned long high_table_pointer;
-
-#define MAX_ACPI_SIZE (144 * 1024)
+	const size_t max_acpi_size = CONFIG_MAX_ACPI_TABLE_SIZE_KB * KiB;
 
 	post_code(0x9c);
 
@@ -96,7 +95,7 @@
 	 * how far we get.
 	 */
 	high_table_pointer = (unsigned long)cbmem_add(CBMEM_ID_ACPI,
-		MAX_ACPI_SIZE);
+		max_acpi_size);
 	if (high_table_pointer) {
 		unsigned long acpi_start = high_table_pointer;
 		unsigned long new_high_table_pointer;
@@ -104,7 +103,7 @@
 		rom_table_end = ALIGN_UP(rom_table_end, 16);
 		new_high_table_pointer = write_acpi_tables(high_table_pointer);
 		if (new_high_table_pointer > (high_table_pointer
-			+ MAX_ACPI_SIZE))
+			+ max_acpi_size))
 			printk(BIOS_ERR, "ERROR: Increase ACPI size\n");
 		printk(BIOS_DEBUG, "ACPI tables: %ld bytes.\n",
 				new_high_table_pointer - high_table_pointer);