summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/broadwell/acpi.c10
-rw-r--r--src/soc/intel/broadwell/include/soc/systemagent.h3
-rw-r--r--src/soc/intel/broadwell/northbridge.c14
3 files changed, 8 insertions, 19 deletions
diff --git a/src/soc/intel/broadwell/acpi.c b/src/soc/intel/broadwell/acpi.c
index 5d3992c0a0..67b193e1f7 100644
--- a/src/soc/intel/broadwell/acpi.c
+++ b/src/soc/intel/broadwell/acpi.c
@@ -7,6 +7,7 @@
#include <cpu/intel/haswell/haswell.h>
#include <device/pci_ops.h>
#include <console/console.h>
+#include <device/device.h>
#include <types.h>
#include <cpu/x86/msr.h>
#include <cpu/intel/turbo.h>
@@ -69,8 +70,13 @@ static unsigned long acpi_fill_dmar(unsigned long current)
if (emit_igd) {
const unsigned long tmp = current;
- current += acpi_create_dmar_rmrr(current, 0,
- sa_get_gsm_base(), sa_get_tolud_base() - 1);
+ const struct device *sa_dev = pcidev_on_root(0, 0);
+
+ /* Bit 0 is lock bit, not part of address */
+ const u32 tolud = pci_read_config32(sa_dev, TOLUD) & ~1;
+ const u32 bgsm = pci_read_config32(sa_dev, BGSM) & ~1;
+
+ current += acpi_create_dmar_rmrr(current, 0, bgsm, tolud - 1);
current += acpi_create_dmar_ds_pci(current, 0, 2, 0);
acpi_dmar_rmrr_fixup(tmp, current);
}
diff --git a/src/soc/intel/broadwell/include/soc/systemagent.h b/src/soc/intel/broadwell/include/soc/systemagent.h
index 331bbc7ca3..0230f5f4e5 100644
--- a/src/soc/intel/broadwell/include/soc/systemagent.h
+++ b/src/soc/intel/broadwell/include/soc/systemagent.h
@@ -135,7 +135,4 @@
/* System Agent identification */
u8 systemagent_revision(void);
-uintptr_t sa_get_tolud_base(void);
-uintptr_t sa_get_gsm_base(void);
-
#endif
diff --git a/src/soc/intel/broadwell/northbridge.c b/src/soc/intel/broadwell/northbridge.c
index 838b41b953..623ab70887 100644
--- a/src/soc/intel/broadwell/northbridge.c
+++ b/src/soc/intel/broadwell/northbridge.c
@@ -21,20 +21,6 @@ u8 systemagent_revision(void)
return pci_read_config8(sa_dev, PCI_REVISION_ID);
}
-uintptr_t sa_get_tolud_base(void)
-{
- struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
- /* Bit 0 is lock bit, not part of address */
- return pci_read_config32(sa_dev, TOLUD) & ~1;
-}
-
-uintptr_t sa_get_gsm_base(void)
-{
- struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
- /* Bit 0 is lock bit, not part of address */
- return pci_read_config32(sa_dev, BGSM) & ~1;
-}
-
static int get_pcie_bar(struct device *dev, unsigned int index, u32 *base,
u32 *len)
{