blob: 3eb63c8920a71f810169d751a7a02fb845837aa8 [file] [log] [blame]
Angel Pons5c596802020-04-03 01:21:01 +02001/* SPDX-License-Identifier: GPL-2.0-only */
2/* This file is part of the coreboot project. */
zbao323a9232012-07-19 16:39:01 +08003
zbao323a9232012-07-19 16:39:01 +08004#include <arch/acpi.h>
zbao323a9232012-07-19 16:39:01 +08005#include <arch/ioapic.h>
zbao323a9232012-07-19 16:39:01 +08006
zbao323a9232012-07-19 16:39:01 +08007unsigned long acpi_fill_madt(unsigned long current)
8{
9 /* create all subtables for processors */
10 current = acpi_create_madt_lapics(current);
11
Martin Rothf5726ea2013-01-18 12:55:40 -070012 /* Write Hudson IOAPIC, only one */
zbao323a9232012-07-19 16:39:01 +080013 current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current, CONFIG_MAX_CPUS,
14 IO_APIC_ADDR, 0);
15
16 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
17 current, 0, 0, 2, 0);
18 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
19 current, 0, 9, 9, 0xF);
20 /* 0: mean bus 0--->ISA */
21 /* 0: PIC 0 */
22 /* 2: APIC 2 */
Kyösti Mälkkid8747572014-06-26 05:30:54 +030023 /* 5 mean: 0101 --> Edge-triggered, Active high */
zbao323a9232012-07-19 16:39:01 +080024
25 /* create all subtables for processors */
zbao15945442012-08-03 11:47:53 +080026 current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current, 0xff, 5, 1);
zbao323a9232012-07-19 16:39:01 +080027 /* 1: LINT1 connect to NMI */
28
29 return current;
30}