diff options
-rw-r--r-- | src/soc/intel/broadwell/acpi.c | 10 | ||||
-rw-r--r-- | src/soc/intel/broadwell/include/soc/systemagent.h | 3 | ||||
-rw-r--r-- | src/soc/intel/broadwell/northbridge.c | 14 |
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) { |