coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
madt.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <acpi/acpi.h>
4 #include <arch/ioapic.h>
5 #include <arch/smp/mpspec.h>
6 
7 unsigned long acpi_fill_madt(unsigned long current)
8 {
9  /* Local APICs */
10  current = acpi_create_madt_lapics(current);
11 
12  /* IOAPIC */
13  current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,
14  2, IO_APIC_ADDR, 0);
15 
16  /* LAPIC_NMI */
18  current, 0,
20  MP_IRQ_TRIGGER_EDGE, 0x01);
22  current, 1, MP_IRQ_POLARITY_HIGH |
23  MP_IRQ_TRIGGER_EDGE, 0x01);
24 
25  /* INT_SRC_OVR */
27  current, 0, 0, 2, MP_IRQ_POLARITY_HIGH | MP_IRQ_TRIGGER_EDGE);
29  current, 0, 9, 9, MP_IRQ_POLARITY_HIGH | MP_IRQ_TRIGGER_LEVEL);
30 
31  return current;
32 }
unsigned long acpi_create_madt_lapics(unsigned long current)
Definition: acpi.c:144
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride, u8 bus, u8 source, u32 gsirq, u16 flags)
Definition: acpi.c:187
int acpi_create_madt_ioapic(acpi_madt_ioapic_t *ioapic, u8 id, u32 addr, u32 gsi_base)
Definition: acpi.c:174
int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu, u16 flags, u8 lint)
Definition: acpi.c:200
#define IO_APIC_ADDR
Definition: ioapic.h:6
unsigned long acpi_fill_madt(unsigned long current)
Definition: madt.c:7
#define MP_IRQ_POLARITY_HIGH
Definition: mpspec.h:124
#define MP_IRQ_TRIGGER_EDGE
Definition: mpspec.h:128
#define MP_IRQ_TRIGGER_LEVEL
Definition: mpspec.h:129