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;