arm: acpi: Add generic ACPI methods

Add generic ACPI code to generate
- MADT GICC
- MADT GICD
- MADT GICR
- MADT GIC ITS
- PPTT processor
- PPTT cache

as commonly used on arm platforms.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
This commit is contained in:
Patrick Rudolph
2024-10-23 15:19:50 +02:00
committed by Tom Rini
parent 04001adce1
commit f36e29e8da
4 changed files with 263 additions and 1 deletions

View File

@@ -342,7 +342,10 @@ enum acpi_apic_types {
ACPI_APIC_LX2APIC, /* Processor local x2APIC */
ACPI_APIC_LX2APIC_NMI, /* Local x2APIC NMI */
ACPI_APIC_GICC, /* Generic Interrupt Ctlr CPU i/f */
ACPI_APIC_GICD /* Generic Interrupt Ctlr Distributor */
ACPI_APIC_GICD, /* Generic Interrupt Ctlr Distributor */
ACPI_APIC_MSI_FRAME, /* Generic Interrupt MSI Frame */
ACPI_APIC_GICR, /* Generic Interrupt Ctlr Redistributor */
ACPI_APIC_ITS, /* Interrupt Translation Service */
};
/* MADT: Processor Local APIC Structure */
@@ -437,6 +440,35 @@ struct acpi_madt_gicd {
u8 reserved3[3];
} __packed;
/**
* struct __packed acpi_madt_gicr - GIC Redistributor (type 0xe)
*
* This holds information about the Generic Interrupt Controller (GIC)
* Redistributor interface. See ACPI Spec v6.3 section 5.2.12.17
*/
struct acpi_madt_gicr {
u8 type;
u8 length;
u16 reserved;
u64 discovery_range_base_address;
u32 discovery_range_length;
} __packed;
/**
* struct __packed acpi_madt_its - GIC Interrupt Translation Service (type 0xf)
*
* This holds information about the Interrupt Translation Service (ITS)
* Structure. See ACPI Spec v6.3 section 5.2.12.18
*/
struct acpi_madt_its {
u8 type;
u8 length;
u16 reserved;
u32 gic_its_id;
u64 physical_base_address;
u32 reserved2;
} __packed;
/* MCFG (PCI Express MMIO config space BAR description table) */
struct acpi_mcfg {
struct acpi_table_header header;