blob: 61771c74169b5e3be59212ae98c2cba5e498bafa [file] [log] [blame]
Angel Pons585495e2020-04-03 01:21:38 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Stefan Reinauer597ff872013-01-07 13:21:22 -08002
Furquan Shaikh76cedd22020-05-02 10:24:23 -07003#include <acpi/acpi.h>
Stefan Reinauer597ff872013-01-07 13:21:22 -08004#include <arch/ioapic.h>
Stefan Reinauer597ff872013-01-07 13:21:22 -08005#include <arch/smp/mpspec.h>
6#include <device/device.h>
Stefan Reinauer597ff872013-01-07 13:21:22 -08007
Gerd Hoffmannd69da842013-07-25 15:59:07 +02008#include "fw_cfg.h"
Vladimir Serbinenko41877d82014-09-01 22:18:01 +02009#include "acpi.h"
Stefan Reinauer597ff872013-01-07 13:21:22 -080010
11unsigned long acpi_fill_madt(unsigned long current)
12{
13 /* Local APICs */
14 current = acpi_create_madt_lapics(current);
15
16 /* IOAPIC */
Kyösti Mälkki8ea8eba2022-11-11 19:46:05 +020017 current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
Stefan Reinauer597ff872013-01-07 13:21:22 -080018
19 /* INT_SRC_OVR */
20 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
21 current, 0, 0, 2, 0);
22 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
23 current, 0, 9, 9, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_HIGH);
24
25 return current;
26}