[PATCH] acpi: update fadt and madt revisions to ACPI 6.5

Ivan Hu ivan.hu at canonical.com
Thu Jul 13 06:30:54 UTC 2023


BugLink: https://bugs.launchpad.net/ubuntu/+source/fwts/+bug/2026305

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/acpi/madt/madt.c        | 16 ++++++++++++++--
 src/lib/include/fwts_acpi.h | 12 ++++++++++--
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
index 973cf6b8..05f93ed8 100644
--- a/src/acpi/madt/madt.c
+++ b/src/acpi/madt/madt.c
@@ -118,11 +118,11 @@
 
 #define FADT_MAX_MAJOR_REVISION	((uint8_t)((FWTS_ACPI_VERSION_NOW & 0xF00) >> 8))
 #define FADT_MAX_MINOR_REVISION	((uint8_t)(FWTS_ACPI_VERSION_NOW & 0xF0) >> 4)
-#define MADT_MAX_REVISION	((uint8_t)5)
+#define MADT_MAX_REVISION	((uint8_t)6)
 
 #define SUBTABLE_UNDEFINED	0x00
 #define SUBTABLE_VARIABLE	0xff
-#define NUM_SUBTABLE_TYPES	16
+#define NUM_SUBTABLE_TYPES	24
 #define MAX_IO_APIC_ID		256 /* IO APIC ID field is 1 byte */
 
 #define SBBR_ACPI_MAJOR_VERSION 6
@@ -238,6 +238,18 @@ static struct acpi_madt_subtable_lengths spec_info[] = {
 		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
 			     16, 16, 12, 80, 24, 24, 16, 20 }
 	},
+	{ /* for ACPI 6.5 */
+		.major_version = 6,
+		.minor_version = 5,
+		.madt_version = 6,
+		.num_types = 24,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
+			     16, 16, 12, 82, 24, 24, 16, 20, 16,
+			     SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
+			     SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
+			     SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
+			     SUBTABLE_VARIABLE }
+	},
 	{ /* terminator */
 		.major_version = 0,
 		.minor_version = 0,
diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
index 9c3aa9fd..8b85fac2 100644
--- a/src/lib/include/fwts_acpi.h
+++ b/src/lib/include/fwts_acpi.h
@@ -87,8 +87,9 @@
 #define FWTS_GAS_ADDR_SPACE_ID_PCC		(0x0a)
 #define FWTS_GAS_ADDR_SPACE_ID_FFH		(0x7f)
 
-#define FWTS_ACPI_VERSION_NOW	(FWTS_ACPI_VERSION_64)
-#define FWTS_ACPI_VERSION_NEXT	(0x650)
+#define FWTS_ACPI_VERSION_NOW	(FWTS_ACPI_VERSION_65)
+#define FWTS_ACPI_VERSION_NEXT	(0x660)
+#define FWTS_ACPI_VERSION_65	(0x650)
 #define FWTS_ACPI_VERSION_64 	(0x640)
 #define FWTS_ACPI_VERSION_63 	(0x630)
 #define FWTS_ACPI_VERSION_62 	(0x620)
@@ -523,6 +524,13 @@ typedef enum {
 	FWTS_MADT_GIC_R_REDISTRIBUTOR,
 	FWTS_MADT_GIC_ITS,
 	FWTS_MADT_MP_WAKEUP,
+	FWTS_MADT_CORE_PIC,
+	FWTS_MADT_LIO_PIC,
+	FWTS_MADT_HT_PIC,
+	FWTS_MADT_EIO_PIC,
+	FWTS_MADT_MSI_PIC,
+	FWTS_MADT_BIO_PIC,
+	FWTS_MADT_LPC_PIC,
 	FWTS_MADT_RESERVED, /* does not have defined structure */
 	FWTS_MADT_OEM /* does not have defined structure */
 } fwts_acpi_madt_type;
-- 
2.34.1




More information about the fwts-devel mailing list