ACPI: Flag boards with ACPI_NO_MADT

These boards do no fill MADT with useful information.

Change-Id: Ie61e4e4b03c9b7fcd70aba7a2bd71eadd6f4dab1
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69777
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/src/acpi/Kconfig b/src/acpi/Kconfig
index 7afff4e..816f9fb 100644
--- a/src/acpi/Kconfig
+++ b/src/acpi/Kconfig
@@ -30,6 +30,11 @@
 	  Set to indicate <soc/nvs.h> exists for the platform with a definition
 	  for global_nvs.
 
+config ACPI_NO_MADT
+	bool
+	help
+	  Selected by platforms that don't expose a useful MADT.
+
 config ACPI_NO_PCAT_8259
 	bool
 	help
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c
index f6a36f8..c567299 100644
--- a/src/acpi/acpi.c
+++ b/src/acpi/acpi.c
@@ -282,7 +282,8 @@
 	if (CONFIG(ACPI_HAVE_PCAT_8259))
 		madt->flags |= 1;
 
-	current = acpi_fill_madt(current);
+	if (!CONFIG(ACPI_NO_MADT))
+		current = acpi_fill_madt(current);
 
 	/* (Re)calculate length and checksum. */
 	header->length = current - (unsigned long)madt;
diff --git a/src/mainboard/asus/p2b/Kconfig b/src/mainboard/asus/p2b/Kconfig
index 8e46fb9..986cfde 100644
--- a/src/mainboard/asus/p2b/Kconfig
+++ b/src/mainboard/asus/p2b/Kconfig
@@ -9,6 +9,7 @@
 
 config BOARD_SPECIFIC_OPTIONS
 	def_bool y
+	select ACPI_NO_MADT
 	select CPU_INTEL_SLOT_1
 	select NORTHBRIDGE_INTEL_I440BX
 	select SOUTHBRIDGE_INTEL_I82371EB
diff --git a/src/mainboard/asus/p2b/acpi_tables.c b/src/mainboard/asus/p2b/acpi_tables.c
deleted file mode 100644
index b35610a..0000000
--- a/src/mainboard/asus/p2b/acpi_tables.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <acpi/acpi.h>
-
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	/* mainboard has no ioapic */
-	return current;
-}
diff --git a/src/soc/intel/quark/Kconfig b/src/soc/intel/quark/Kconfig
index 9783c1d..58f01da 100644
--- a/src/soc/intel/quark/Kconfig
+++ b/src/soc/intel/quark/Kconfig
@@ -9,6 +9,7 @@
 
 config CPU_SPECIFIC_OPTIONS
 	def_bool y
+	select ACPI_NO_MADT
 	select ARCH_X86
 	select NO_ECAM_MMCONF_SUPPORT
 	select NO_SMM
diff --git a/src/soc/intel/quark/acpi.c b/src/soc/intel/quark/acpi.c
index 9e41b31..6a7f2c2 100644
--- a/src/soc/intel/quark/acpi.c
+++ b/src/soc/intel/quark/acpi.c
@@ -5,11 +5,6 @@
 #include <soc/acpi.h>
 #include <soc/ramstage.h>
 
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	return current;
-}
-
 void acpi_fill_fadt(acpi_fadt_t *fadt)
 {
 	struct device *dev = pcidev_on_root(PCI_DEVICE_NUMBER_QNC_LPC,