summaryrefslogtreecommitdiff
path: root/src/northbridge/intel/nehalem
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-09-02 22:25:36 +0200
committerVladimir Serbinenko <phcoder@gmail.com>2014-09-11 21:53:33 +0200
commit35c0f439fc2bc29817d643a7629a4d2b79d6b903 (patch)
tree1cb70aedcc75e29752a50fde10eca720c0e6f0ac /src/northbridge/intel/nehalem
parent955ca5d948519e89573b1508bb85d3b01353ac60 (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/intel/nehalem')
-rw-r--r--src/northbridge/intel/nehalem/Kconfig1
-rw-r--r--src/northbridge/intel/nehalem/acpi.c23
-rw-r--r--src/northbridge/intel/nehalem/nehalem.h2
-rw-r--r--src/northbridge/intel/nehalem/northbridge.c1
4 files changed, 27 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,
};