Skip to content

Commit 0cc5b09

Browse files
jmarinhorafaeljw
authored andcommitted
ACPICA: Add GICv5 MADT structures
The GICv5 adds the following MADT structures: - IRS - ITS Config Frame - ITS Translate Frame The ACPI spec ECR is at tianocore/edk2#11148 Link: acpica/acpica@69cca52ddf04 Signed-off-by: Jose Marinho <jose.marinho@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://patch.msgid.link/1953107.CQOukoFCf9@rafael.j.wysocki
1 parent c3bc5f6 commit 0cc5b09

1 file changed

Lines changed: 45 additions & 4 deletions

File tree

include/acpi/actbl2.h

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

14211424
struct 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

14641469
enum 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

17431784
struct acpi_madt_oem_data {

0 commit comments

Comments
 (0)