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:
@@ -352,20 +352,11 @@ static void lpc_init(struct device *dev)
|
||||
unsigned long acpi_fill_madt(unsigned long current)
|
||||
{
|
||||
/* Local APICs */
|
||||
current = acpi_create_madt_lapics(current);
|
||||
current = acpi_create_madt_lapics_with_nmis(current);
|
||||
|
||||
/* IOAPIC */
|
||||
current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
|
||||
|
||||
/* LAPIC_NMI */
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 0,
|
||||
MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 1, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
|
||||
/* INT_SRC_OVR */
|
||||
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
|
||||
current, 0, 0, 2, MP_IRQ_POLARITY_HIGH | MP_IRQ_TRIGGER_EDGE);
|
||||
|
@@ -7,20 +7,11 @@
|
||||
unsigned long acpi_fill_madt(unsigned long current)
|
||||
{
|
||||
/* Local APICs */
|
||||
current = acpi_create_madt_lapics(current);
|
||||
current = acpi_create_madt_lapics_with_nmis(current);
|
||||
|
||||
/* IOAPIC */
|
||||
current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
|
||||
|
||||
/* LAPIC_NMI */
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 0,
|
||||
MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 1, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
|
||||
/* INT_SRC_OVR */
|
||||
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
|
||||
current, 0, 0, 2, MP_IRQ_POLARITY_HIGH | MP_IRQ_TRIGGER_EDGE);
|
||||
|
@@ -367,20 +367,11 @@ static void lpc_init(struct device *dev)
|
||||
unsigned long acpi_fill_madt(unsigned long current)
|
||||
{
|
||||
/* Local APICs */
|
||||
current = acpi_create_madt_lapics(current);
|
||||
current = acpi_create_madt_lapics_with_nmis(current);
|
||||
|
||||
/* IOAPIC */
|
||||
current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
|
||||
|
||||
/* LAPIC_NMI */
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 0,
|
||||
MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 1, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
|
||||
/* INT_SRC_OVR */
|
||||
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
|
||||
current, 0, 0, 2, MP_IRQ_POLARITY_HIGH | MP_IRQ_TRIGGER_EDGE);
|
||||
|
@@ -9,7 +9,7 @@
|
||||
unsigned long acpi_fill_madt(unsigned long current)
|
||||
{
|
||||
/* Local APICs */
|
||||
current = acpi_create_madt_lapics(current);
|
||||
current = acpi_create_madt_lapics_with_nmis(current);
|
||||
|
||||
/* IOAPIC */
|
||||
current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
|
||||
@@ -24,19 +24,5 @@ unsigned long acpi_fill_madt(unsigned long current)
|
||||
MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_LEVEL);
|
||||
|
||||
/* LAPIC_NMI */
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 0,
|
||||
MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 1, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 2, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)
|
||||
current, 3, MP_IRQ_POLARITY_HIGH |
|
||||
MP_IRQ_TRIGGER_EDGE, 0x01);
|
||||
return current;
|
||||
}
|
||||
|
Reference in New Issue
Block a user