diff options
author | Vladimir Serbinenko <phcoder@gmail.com> | 2014-09-02 22:25:36 +0200 |
---|---|---|
committer | Vladimir Serbinenko <phcoder@gmail.com> | 2014-09-11 21:53:33 +0200 |
commit | 35c0f439fc2bc29817d643a7629a4d2b79d6b903 (patch) | |
tree | 1cb70aedcc75e29752a50fde10eca720c0e6f0ac /src/northbridge | |
parent | 955ca5d948519e89573b1508bb85d3b01353ac60 (diff) |
Move nehalem/sandy/ivy to per-device acpi
Change-Id: I3d664ab575bf9c49a7bff9a395fbab96748430d0
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/6802
Reviewed-by: Aaron Durbin <adurbin@google.com>
Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/northbridge')
-rw-r--r-- | src/northbridge/intel/nehalem/Kconfig | 1 | ||||
-rw-r--r-- | src/northbridge/intel/nehalem/acpi.c | 23 | ||||
-rw-r--r-- | src/northbridge/intel/nehalem/nehalem.h | 2 | ||||
-rw-r--r-- | src/northbridge/intel/nehalem/northbridge.c | 1 | ||||
-rw-r--r-- | src/northbridge/intel/sandybridge/Kconfig | 4 | ||||
-rw-r--r-- | src/northbridge/intel/sandybridge/acpi.c | 22 | ||||
-rw-r--r-- | src/northbridge/intel/sandybridge/northbridge.c | 2 | ||||
-rw-r--r-- | src/northbridge/intel/sandybridge/sandybridge.h | 2 |
8 files changed, 57 insertions, 0 deletions
diff --git a/src/northbridge/intel/nehalem/Kconfig b/src/northbridge/intel/nehalem/Kconfig index 18aa0e3f00..b49f3315b5 100644 --- a/src/northbridge/intel/nehalem/Kconfig +++ b/src/northbridge/intel/nehalem/Kconfig @@ -26,6 +26,7 @@ config NORTHBRIDGE_INTEL_NEHALEM select VGA select INTEL_EDID select TSC_MONOTONIC_TIMER + select PER_DEVICE_ACPI_TABLES if NORTHBRIDGE_INTEL_NEHALEM diff --git a/src/northbridge/intel/nehalem/acpi.c b/src/northbridge/intel/nehalem/acpi.c index 0ede2376e4..9b7357c64a 100644 --- a/src/northbridge/intel/nehalem/acpi.c +++ b/src/northbridge/intel/nehalem/acpi.c @@ -32,6 +32,10 @@ #include <device/pci.h> #include <device/pci_ids.h> #include <build.h> +#include <arch/acpigen.h> +#include <cpu/cpu.h> +#include <drivers/intel/gma/i915.h> +#include <cbmem.h> #include "nehalem.h" unsigned long acpi_fill_mcfg(unsigned long current) @@ -195,3 +199,22 @@ int init_igd_opregion(igd_opregion_t * opregion) return 0; } + +void *igd_make_opregion(void) +{ + igd_opregion_t *opregion; + + printk(BIOS_DEBUG, "ACPI: * IGD OpRegion\n"); + opregion = cbmem_add(CBMEM_ID_IGD_OPREGION, sizeof (*opregion)); + if (opregion) + init_igd_opregion(opregion); + return opregion; +} + +unsigned long northbridge_acpi_fill_ssdt_generator(unsigned long current, + const char *oem_table_id) +{ + generate_cpu_entries(); + return (unsigned long) (acpigen_get_current()); +} + diff --git a/src/northbridge/intel/nehalem/nehalem.h b/src/northbridge/intel/nehalem/nehalem.h index 60cafdf275..1a2165f44f 100644 --- a/src/northbridge/intel/nehalem/nehalem.h +++ b/src/northbridge/intel/nehalem/nehalem.h @@ -619,6 +619,8 @@ struct mrc_data_container *find_current_mrc_cache(void); #if !defined(__PRE_RAM__) #include "gma.h" int init_igd_opregion(igd_opregion_t *igd_opregion); +unsigned long northbridge_acpi_fill_ssdt_generator(unsigned long current, + const char *oem_table_id); #endif #endif diff --git a/src/northbridge/intel/nehalem/northbridge.c b/src/northbridge/intel/nehalem/northbridge.c index 2d96b2f7b7..e6b9ca76a2 100644 --- a/src/northbridge/intel/nehalem/northbridge.c +++ b/src/northbridge/intel/nehalem/northbridge.c @@ -313,6 +313,7 @@ static struct device_operations mc_ops = { .enable_resources = pci_dev_enable_resources, .init = northbridge_init, .enable = northbridge_enable, + .acpi_fill_ssdt_generator = northbridge_acpi_fill_ssdt_generator, .scan_bus = 0, .ops_pci = &intel_pci_ops, }; diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig index 18fd175bfc..c6ac4580b0 100644 --- a/src/northbridge/intel/sandybridge/Kconfig +++ b/src/northbridge/intel/sandybridge/Kconfig @@ -24,6 +24,7 @@ config NORTHBRIDGE_INTEL_SANDYBRIDGE select MMCONF_SUPPORT_DEFAULT select DYNAMIC_CBMEM select CPU_INTEL_MODEL_206AX + select PER_DEVICE_ACPI_TABLES config NORTHBRIDGE_INTEL_SANDYBRIDGE_NATIVE bool @@ -32,6 +33,7 @@ config NORTHBRIDGE_INTEL_SANDYBRIDGE_NATIVE select MMCONF_SUPPORT_DEFAULT select CPU_INTEL_MODEL_206AX select HAVE_DEBUG_RAM_SETUP + select PER_DEVICE_ACPI_TABLES config NORTHBRIDGE_INTEL_IVYBRIDGE bool @@ -40,6 +42,7 @@ config NORTHBRIDGE_INTEL_IVYBRIDGE select MMCONF_SUPPORT_DEFAULT select DYNAMIC_CBMEM select CPU_INTEL_MODEL_306AX + select PER_DEVICE_ACPI_TABLES config NORTHBRIDGE_INTEL_IVYBRIDGE_NATIVE bool @@ -48,6 +51,7 @@ config NORTHBRIDGE_INTEL_IVYBRIDGE_NATIVE select MMCONF_SUPPORT_DEFAULT select CPU_INTEL_MODEL_306AX select HAVE_DEBUG_RAM_SETUP + select PER_DEVICE_ACPI_TABLES if NORTHBRIDGE_INTEL_SANDYBRIDGE || NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_IVYBRIDGE_NATIVE || NORTHBRIDGE_INTEL_SANDYBRIDGE_NATIVE diff --git a/src/northbridge/intel/sandybridge/acpi.c b/src/northbridge/intel/sandybridge/acpi.c index 58e3b544f5..925812a238 100644 --- a/src/northbridge/intel/sandybridge/acpi.c +++ b/src/northbridge/intel/sandybridge/acpi.c @@ -29,7 +29,10 @@ #include <device/pci.h> #include <device/pci_ids.h> #include <build.h> +#include <drivers/intel/gma/i915.h> +#include <arch/acpigen.h> #include "sandybridge.h" +#include <cbmem.h> unsigned long acpi_fill_mcfg(unsigned long current) { @@ -198,3 +201,22 @@ int init_igd_opregion(igd_opregion_t *opregion) return 0; } + +void *igd_make_opregion(void) +{ + igd_opregion_t *opregion; + + printk(BIOS_DEBUG, "ACPI: * IGD OpRegion\n"); + opregion = cbmem_add(CBMEM_ID_IGD_OPREGION, sizeof (*opregion)); + if (opregion) + init_igd_opregion(opregion); + return opregion; +} + +unsigned long northbridge_acpi_fill_ssdt_generator(unsigned long current, + const char *oem_table_id) +{ + generate_cpu_entries(); + return (unsigned long) (acpigen_get_current()); +} + diff --git a/src/northbridge/intel/sandybridge/northbridge.c b/src/northbridge/intel/sandybridge/northbridge.c index b46ae2294d..39a95af037 100644 --- a/src/northbridge/intel/sandybridge/northbridge.c +++ b/src/northbridge/intel/sandybridge/northbridge.c @@ -444,6 +444,8 @@ static struct device_operations mc_ops = { .enable = northbridge_enable, .scan_bus = 0, .ops_pci = &intel_pci_ops, + .acpi_fill_ssdt_generator = northbridge_acpi_fill_ssdt_generator, + }; static const struct pci_driver mc_driver_0100 __pci_driver = { diff --git a/src/northbridge/intel/sandybridge/sandybridge.h b/src/northbridge/intel/sandybridge/sandybridge.h index 291ea46d8b..71a9d2f2e4 100644 --- a/src/northbridge/intel/sandybridge/sandybridge.h +++ b/src/northbridge/intel/sandybridge/sandybridge.h @@ -235,6 +235,8 @@ struct mrc_data_container *find_current_mrc_cache(void); #if !defined(__PRE_RAM__) #include "gma.h" int init_igd_opregion(igd_opregion_t *igd_opregion); +unsigned long northbridge_acpi_fill_ssdt_generator(unsigned long current, + const char *oem_table_id); #endif #endif |