blob: 306b2c5257428f0c34a078a8d8623370b88923a4 [file] [log] [blame]
Angel Pons5c596802020-04-03 01:21:01 +02001/* SPDX-License-Identifier: GPL-2.0-only */
zbao323a9232012-07-19 16:39:01 +08002
Furquan Shaikh76cedd22020-05-02 10:24:23 -07003#include <acpi/acpi.h>
zbao323a9232012-07-19 16:39:01 +08004#include <arch/ioapic.h>
zbao323a9232012-07-19 16:39:01 +08005
zbao323a9232012-07-19 16:39:01 +08006unsigned long acpi_fill_madt(unsigned long current)
7{
8 /* create all subtables for processors */
9 current = acpi_create_madt_lapics(current);
10
Martin Rothf5726ea2013-01-18 12:55:40 -070011 /* Write Hudson IOAPIC, only one */
Elyes Haouasf58c7872022-07-16 09:35:13 +020012 current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, CONFIG_MAX_CPUS,
zbao323a9232012-07-19 16:39:01 +080013 IO_APIC_ADDR, 0);
14
15 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
16 current, 0, 0, 2, 0);
17 current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
18 current, 0, 9, 9, 0xF);
19 /* 0: mean bus 0--->ISA */
20 /* 0: PIC 0 */
21 /* 2: APIC 2 */
Kyösti Mälkkid8747572014-06-26 05:30:54 +030022 /* 5 mean: 0101 --> Edge-triggered, Active high */
zbao323a9232012-07-19 16:39:01 +080023
24 /* create all subtables for processors */
zbao15945442012-08-03 11:47:53 +080025 current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current, 0xff, 5, 1);
zbao323a9232012-07-19 16:39:01 +080026 /* 1: LINT1 connect to NMI */
27
28 return current;
29}