aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/intel/sandybridge
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/intel/sandybridge')
-rw-r--r--src/northbridge/intel/sandybridge/Kconfig4
-rw-r--r--src/northbridge/intel/sandybridge/acpi.c22
-rw-r--r--src/northbridge/intel/sandybridge/northbridge.c2
-rw-r--r--src/northbridge/intel/sandybridge/sandybridge.h2
4 files changed, 30 insertions, 0 deletions
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