summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/denverton_ns/include
diff options
context:
space:
mode:
authorJulien Viard de Galbert <jviarddegalbert@online.net>2018-04-05 11:59:07 +0200
committerPatrick Georgi <pgeorgi@google.com>2020-11-16 12:09:32 +0000
commita0e5046a08d991cafe34d9d91baf4dc82f4d86e8 (patch)
treeed6c9cc64ffdd1178c988cdc1724af7391a3e481 /src/soc/intel/denverton_ns/include
parent81b88a1963ce44418c814c8107440429784d0f9c (diff)
downloadcoreboot-a0e5046a08d991cafe34d9d91baf4dc82f4d86e8.tar.gz
coreboot-a0e5046a08d991cafe34d9d91baf4dc82f4d86e8.tar.bz2
coreboot-a0e5046a08d991cafe34d9d91baf4dc82f4d86e8.zip
soc/intel/denverton_ns: Generate ACPI DMAR Table
- Write ACPI DMAR Table if VT-d is enabled. - The entries are defined to follow FSP settings. Change-Id: I263b03b96280599266d4c5e193583ecdfe9697b7 Signed-off-by: Julien Viard de Galbert <jviarddegalbert@online.net> Reviewed-on: https://review.coreboot.org/c/coreboot/+/25446 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/denverton_ns/include')
-rw-r--r--src/soc/intel/denverton_ns/include/soc/acpi.h3
-rw-r--r--src/soc/intel/denverton_ns/include/soc/iomap.h4
-rw-r--r--src/soc/intel/denverton_ns/include/soc/pci_devs.h8
-rw-r--r--src/soc/intel/denverton_ns/include/soc/systemagent.h7
4 files changed, 22 insertions, 0 deletions
diff --git a/src/soc/intel/denverton_ns/include/soc/acpi.h b/src/soc/intel/denverton_ns/include/soc/acpi.h
index 9bc5ed09243f..86bed0024d91 100644
--- a/src/soc/intel/denverton_ns/include/soc/acpi.h
+++ b/src/soc/intel/denverton_ns/include/soc/acpi.h
@@ -12,5 +12,8 @@ unsigned long southcluster_write_acpi_tables(const struct device *device,
unsigned long current,
struct acpi_rsdp *rsdp);
void southcluster_inject_dsdt(const struct device *device);
+unsigned long systemagent_write_acpi_tables(const struct device *dev,
+ unsigned long start,
+ struct acpi_rsdp *const rsdp);
#endif /* _DENVERTON_NS_ACPI_H_ */
diff --git a/src/soc/intel/denverton_ns/include/soc/iomap.h b/src/soc/intel/denverton_ns/include/soc/iomap.h
index 6e5f313381b2..fb5aafdfc80a 100644
--- a/src/soc/intel/denverton_ns/include/soc/iomap.h
+++ b/src/soc/intel/denverton_ns/include/soc/iomap.h
@@ -24,4 +24,8 @@
#define DEFAULT_HPET_ADDR CONFIG_HPET_ADDRESS
#define DEFAULT_SPI_BASE 0xfed01000
+/* "VTD PLATFORM CONFIGURATION" (Set to match FSP settings) */
+#define RMRR_USB_BASE_ADDRESS 0x3e2e0000
+#define RMRR_USB_LIMIT_ADDRESS 0x3e2fffff
+
#endif /* _DENVERTON_NS_IOMAP_H_ */
diff --git a/src/soc/intel/denverton_ns/include/soc/pci_devs.h b/src/soc/intel/denverton_ns/include/soc/pci_devs.h
index b6bac0b9a5a3..5eac5bddbe0f 100644
--- a/src/soc/intel/denverton_ns/include/soc/pci_devs.h
+++ b/src/soc/intel/denverton_ns/include/soc/pci_devs.h
@@ -143,4 +143,12 @@
#define PCH_DEV_LPC _PCH_DEV(LPC, 0)
#define PCH_DEV_SPI _PCH_DEV(LPC, 5)
+/* VT-d support value to match FSP settings */
+/* "PCH IOAPIC Config" */
+#define PCH_IOAPIC_PCI_BUS 0xf0
+#define PCH_IOAPIC_PCI_SLOT 0x1f
+/* "PCH HPET Config" */
+#define PCH_HPET_PCI_BUS 0
+#define PCH_HPET_PCI_SLOT 0
+
#endif /* _DENVERTON_NS_PCI_DEVS_H_ */
diff --git a/src/soc/intel/denverton_ns/include/soc/systemagent.h b/src/soc/intel/denverton_ns/include/soc/systemagent.h
index 561f482f2bb7..0606a3ebcb3a 100644
--- a/src/soc/intel/denverton_ns/include/soc/systemagent.h
+++ b/src/soc/intel/denverton_ns/include/soc/systemagent.h
@@ -31,6 +31,9 @@
#define TOLUD 0xbc /* Top of Low Used Memory */
#define MASK_TOLUD 0xFFF00000
+#define CAPID0_A 0xe4
+#define VTD_DISABLE (1 << 23)
+
/* SideBand B-UNIT */
#define B_UNIT 3
@@ -57,6 +60,10 @@
#define MCH_BMISC_RESDRAM \
0x01 /* Bit 0: 1 - reads targeting E-segment are routed to DRAM. */
+#define MCH_VTBAR_OFFSET 0x6c80
+#define MCH_VTBAR_ENABLE_MASK 0x1
+#define MCH_VTBAR_MASK 0x7ffffff000
+
#define MCH_BAR_BIOS_RESET_CPL 0x7078
#define RST_CPL_BIT (1 << 0)
#define PCODE_INIT_DONE (1 << 8)