diff options
author | Marc Jones <marcj303@gmail.com> | 2017-06-19 23:34:04 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-07-31 17:31:00 +0000 |
commit | 5ebc8652cc50932286ce6752135e30a53ce69cee (patch) | |
tree | 66229fb440de0119ff5e42675773288a1aa75d0c | |
parent | a8754bd2a362071ef8db21907beb8d7040eb71e1 (diff) |
soc/amd/stoneyridge: Move ACPI MADT table to soc
Move the mainboard MADT tables to generic soc ACPI code.
Change-Id: I49fb55b1315da8fe65421b43fc4312ed588d5ecb
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: https://review.coreboot.org/20277
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/mainboard/amd/gardenia/acpi_tables.c | 51 | ||||
-rw-r--r-- | src/mainboard/google/kahlee/acpi_tables.c | 51 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/acpi.c | 30 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/include/soc/hudson.h | 2 |
4 files changed, 38 insertions, 96 deletions
diff --git a/src/mainboard/amd/gardenia/acpi_tables.c b/src/mainboard/amd/gardenia/acpi_tables.c index f55d9cea8d..8d4d1cf7e7 100644 --- a/src/mainboard/amd/gardenia/acpi_tables.c +++ b/src/mainboard/amd/gardenia/acpi_tables.c @@ -1,8 +1,4 @@ /* - * This file is part of the coreboot project. - * - * Copyright (C) 2015 Advanced Micro Devices, Inc. - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. @@ -13,47 +9,6 @@ * GNU General Public License for more details. */ -#include <agesawrapper.h> - -#include <console/console.h> -#include <string.h> -#include <arch/acpi.h> -#include <arch/acpigen.h> -#include <arch/ioapic.h> -#include <device/pci.h> -#include <device/pci_ids.h> -#include <cpu/x86/msr.h> -#include <cpu/amd/mtrr.h> -#include <cpu/amd/amdfam16.h> - -#define IO_APIC2_ADDR 0xFEC20000 - -unsigned long acpi_fill_madt(unsigned long current) -{ - /* create all subtables for processors */ - current = acpi_create_madt_lapics(current); - - /* Write Kern IOAPIC, only one */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - CONFIG_MAX_CPUS, IO_APIC_ADDR, 0); - - /* TODO: Remove the hardcode */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - CONFIG_MAX_CPUS+1, IO_APIC2_ADDR, 24); - - current += acpi_create_madt_irqoverride( - (acpi_madt_irqoverride_t *)current, 0, 0, 2, 0); - current += acpi_create_madt_irqoverride( - (acpi_madt_irqoverride_t *)current, 0, 9, 9, 0xF); - /* 0: mean bus 0--->ISA */ - /* 0: PIC 0 */ - /* 2: APIC 2 */ - /* 5 mean: 0101 --> Edge-triggered, Active high */ - - /* create all subtables for processors */ - current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current, - 0xff, 5, 1); - /* 1: LINT1 connect to NMI */ - - return current; -} +/* + * Blank file required by build system assumptions of this file being present. + */ diff --git a/src/mainboard/google/kahlee/acpi_tables.c b/src/mainboard/google/kahlee/acpi_tables.c index f55d9cea8d..8d4d1cf7e7 100644 --- a/src/mainboard/google/kahlee/acpi_tables.c +++ b/src/mainboard/google/kahlee/acpi_tables.c @@ -1,8 +1,4 @@ /* - * This file is part of the coreboot project. - * - * Copyright (C) 2015 Advanced Micro Devices, Inc. - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. @@ -13,47 +9,6 @@ * GNU General Public License for more details. */ -#include <agesawrapper.h> - -#include <console/console.h> -#include <string.h> -#include <arch/acpi.h> -#include <arch/acpigen.h> -#include <arch/ioapic.h> -#include <device/pci.h> -#include <device/pci_ids.h> -#include <cpu/x86/msr.h> -#include <cpu/amd/mtrr.h> -#include <cpu/amd/amdfam16.h> - -#define IO_APIC2_ADDR 0xFEC20000 - -unsigned long acpi_fill_madt(unsigned long current) -{ - /* create all subtables for processors */ - current = acpi_create_madt_lapics(current); - - /* Write Kern IOAPIC, only one */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - CONFIG_MAX_CPUS, IO_APIC_ADDR, 0); - - /* TODO: Remove the hardcode */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - CONFIG_MAX_CPUS+1, IO_APIC2_ADDR, 24); - - current += acpi_create_madt_irqoverride( - (acpi_madt_irqoverride_t *)current, 0, 0, 2, 0); - current += acpi_create_madt_irqoverride( - (acpi_madt_irqoverride_t *)current, 0, 9, 9, 0xF); - /* 0: mean bus 0--->ISA */ - /* 0: PIC 0 */ - /* 2: APIC 2 */ - /* 5 mean: 0101 --> Edge-triggered, Active high */ - - /* create all subtables for processors */ - current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current, - 0xff, 5, 1); - /* 1: LINT1 connect to NMI */ - - return current; -} +/* + * Blank file required by build system assumptions of this file being present. + */ diff --git a/src/soc/amd/stoneyridge/acpi.c b/src/soc/amd/stoneyridge/acpi.c index fb97441da1..54af59b59d 100644 --- a/src/soc/amd/stoneyridge/acpi.c +++ b/src/soc/amd/stoneyridge/acpi.c @@ -23,6 +23,7 @@ #include <arch/acpi.h> #include <arch/acpigen.h> #include <arch/io.h> +#include <arch/ioapic.h> #include <cbmem.h> #include <device/device.h> #include <soc/acpi.h> @@ -30,6 +31,35 @@ #include <soc/nvs.h> #include <soc/smi.h> +unsigned long acpi_fill_madt(unsigned long current) +{ + /* create all subtables for processors */ + current = acpi_create_madt_lapics(current); + + /* Write Kern IOAPIC, only one */ + current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, + CONFIG_MAX_CPUS, IO_APIC_ADDR, 0); + + current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, + CONFIG_MAX_CPUS+1, IO_APIC2_ADDR, 24); + + /* 0: mean bus 0--->ISA */ + /* 0: PIC 0 */ + /* 2: APIC 2 */ + /* 5 mean: 0101 --> Edge-triggered, Active high */ + current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *) + current, 0, 0, 2, 0); + current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *) + current, 0, 9, 9, 0xF); + + /* create all subtables for processors */ + current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current, + 0xff, 5, 1); + /* 1: LINT1 connect to NMI */ + + return current; +} + /* * Reference section 5.2.9 Fixed ACPI Description Table (FADT) * in the ACPI 3.0b specification. diff --git a/src/soc/amd/stoneyridge/include/soc/hudson.h b/src/soc/amd/stoneyridge/include/soc/hudson.h index 62d5a84395..48f5e0d937 100644 --- a/src/soc/amd/stoneyridge/include/soc/hudson.h +++ b/src/soc/amd/stoneyridge/include/soc/hudson.h @@ -23,6 +23,8 @@ #include <device/device.h> #include "chip.h" +#define IO_APIC2_ADDR 0xfec20000 + /* Offsets from ACPI_MMIO_BASE * This is defined by AGESA, but we don't include AGESA headers to avoid * polluting the namespace. |