ACPI: Use common code for MADT LAPIC NMIs

Use the broadcast ID to deliver LINT1 as NMI to all CPUs,
instead of listing individual LAPIC IDs.

Change-Id: Iaf714d8c2aabd16c59c3bcebc4a207406fc85ca9
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69527
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Kyösti Mälkki
2022-11-12 21:13:45 +02:00
parent da1a58a503
commit 66b5e1b32d
13 changed files with 32 additions and 95 deletions

View File

@@ -678,7 +678,8 @@ typedef struct acpi_madt_lapic_nmi {
u8 lint; /* Local APIC LINT# */
} __packed acpi_madt_lapic_nmi_t;
#define ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS 0xff
#define ACPI_MADT_LAPIC_NMI_ALL_PROCESSORS 0xff
#define ACPI_MADT_LX2APIC_NMI_ALL_PROCESSORS ((u32)-1)
/* MADT: I/O APIC Structure */
typedef struct acpi_madt_ioapic {
@@ -1333,6 +1334,7 @@ int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
u16 flags, u8 lint);
void acpi_create_madt(acpi_madt_t *madt);
unsigned long acpi_create_madt_lapics(unsigned long current);
unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current);
int acpi_create_madt_lx2apic(acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic);
int acpi_create_madt_lx2apic_nmi(acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu,
u16 flags, u8 lint);