blob: c5b1f0bf2259eb1aa679d24448ff05904f9173f4 [file] [log] [blame]
Angel Pons182dbde2020-04-02 23:49:05 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +02002
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +02003#include <arch/ioapic.h>
Furquan Shaikh76cedd22020-05-02 10:24:23 -07004#include <acpi/acpi.h>
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +02005#include <arch/smp/mpspec.h>
6#include <device/device.h>
7#include <device/pci.h>
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +02008
9unsigned long acpi_fill_madt(unsigned long current)
10{
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +020011 /* IOAPIC */
Kyösti Mälkkic0457352021-06-08 06:12:25 +030012 current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +020013
14 /* INT_SRC_OVR */
15 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
16 current, 0, 0, 2,
17 MP_IRQ_POLARITY_DEFAULT |
18 MP_IRQ_TRIGGER_DEFAULT);
19 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
20 current, 0, 9, 9,
21 MP_IRQ_POLARITY_HIGH |
22 MP_IRQ_TRIGGER_LEVEL);
23
Vladimir Serbinenko33b535f2014-10-19 10:13:14 +020024 return current;
25}