@@ -1294,7 +1294,10 @@ enum acpi_madt_type {
12941294 ACPI_MADT_TYPE_IMSIC = 25 ,
12951295 ACPI_MADT_TYPE_APLIC = 26 ,
12961296 ACPI_MADT_TYPE_PLIC = 27 ,
1297- ACPI_MADT_TYPE_RESERVED = 28 , /* 28 to 0x7F are reserved */
1297+ ACPI_MADT_TYPE_GICV5_IRS = 28 ,
1298+ ACPI_MADT_TYPE_GICV5_ITS = 29 ,
1299+ ACPI_MADT_TYPE_GICV5_ITS_TRANSLATE = 30 ,
1300+ ACPI_MADT_TYPE_RESERVED = 31 , /* 31 to 0x7F are reserved */
12981301 ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */
12991302};
13001303
@@ -1416,7 +1419,7 @@ struct acpi_madt_local_x2apic_nmi {
14161419 u8 reserved [3 ]; /* reserved - must be zero */
14171420};
14181421
1419- /* 11: Generic interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 changes) */
1422+ /* 11: Generic interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 + ACPI 6.7 changes) */
14201423
14211424struct acpi_madt_generic_interrupt {
14221425 struct acpi_subtable_header header ;
@@ -1437,6 +1440,8 @@ struct acpi_madt_generic_interrupt {
14371440 u8 reserved2 [1 ];
14381441 u16 spe_interrupt ; /* ACPI 6.3 */
14391442 u16 trbe_interrupt ; /* ACPI 6.5 */
1443+ u16 iaffid ; /* ACPI 6.7 */
1444+ u32 irs_id ;
14401445};
14411446
14421447/* Masks for Flags field above */
@@ -1459,15 +1464,16 @@ struct acpi_madt_generic_distributor {
14591464 u8 reserved2 [3 ]; /* reserved - must be zero */
14601465};
14611466
1462- /* Values for Version field above */
1467+ /* Values for Version field above and Version field in acpi_madt_gicv5_irs */
14631468
14641469enum acpi_madt_gic_version {
14651470 ACPI_MADT_GIC_VERSION_NONE = 0 ,
14661471 ACPI_MADT_GIC_VERSION_V1 = 1 ,
14671472 ACPI_MADT_GIC_VERSION_V2 = 2 ,
14681473 ACPI_MADT_GIC_VERSION_V3 = 3 ,
14691474 ACPI_MADT_GIC_VERSION_V4 = 4 ,
1470- ACPI_MADT_GIC_VERSION_RESERVED = 5 /* 5 and greater are reserved */
1475+ ACPI_MADT_GIC_VERSION_V5 = 5 ,
1476+ ACPI_MADT_GIC_VERSION_RESERVED = 6 /* 6 and greater are reserved */
14711477};
14721478
14731479/* 13: Generic MSI Frame (ACPI 5.1) */
@@ -1738,6 +1744,41 @@ struct acpi_madt_plic {
17381744 u32 gsi_base ;
17391745};
17401746
1747+ /* 28: Arm GICv5 IRS (ACPI 6.7) */
1748+ struct acpi_madt_gicv5_irs {
1749+ struct acpi_subtable_header header ;
1750+ u8 version ;
1751+ u8 reserved ;
1752+ u32 irs_id ;
1753+ u32 flags ;
1754+ u32 reserved2 ;
1755+ u64 config_base_address ;
1756+ u64 setlpi_base_address ;
1757+ };
1758+
1759+ #define ACPI_MADT_IRS_NON_COHERENT (1)
1760+
1761+ /* 29: Arm GICv5 ITS Config Frame (ACPI 6.7) */
1762+ struct acpi_madt_gicv5_translator {
1763+ struct acpi_subtable_header header ;
1764+ u8 flags ;
1765+ u8 reserved ; /* reserved - must be zero */
1766+ u32 translator_id ;
1767+ u64 base_address ;
1768+ };
1769+
1770+ #define ACPI_MADT_GICV5_ITS_NON_COHERENT (1)
1771+
1772+ /* 30: Arm GICv5 ITS Translate Frame (ACPI 6.7) */
1773+ struct acpi_madt_gicv5_translate_frame {
1774+ struct acpi_subtable_header header ;
1775+ u16 reserved ; /* reserved - must be zero */
1776+ u32 linked_translator_id ;
1777+ u32 translate_frame_id ;
1778+ u32 reserved2 ;
1779+ u64 base_address ;
1780+ };
1781+
17411782/* 80: OEM data */
17421783
17431784struct acpi_madt_oem_data {
0 commit comments