summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Deppenwiese <zaolin@das-labor.org>2017-03-01 02:24:33 +0100
committerPatrick Georgi <pgeorgi@google.com>2017-05-11 16:50:27 +0200
commit30670121c32a7e99c24271216c6f9450d14e7d90 (patch)
treebccf52fd6be09a128afbe0013e269644704c9e23
parent5fd00ce71a1bfd5cd36f9d42ab657a8e7d6c54f2 (diff)
downloadcoreboot-30670121c32a7e99c24271216c6f9450d14e7d90.tar.xz
amd/pi: Add AMD fam16h TPM ACPI path support
Change-Id: I5322d731a0dc655f2da14b87fa6cbc1e54b5abd5 Signed-off-by: Philipp Deppenwiese <zaolin@das-labor.org> Reviewed-on: https://review.coreboot.org/18522 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/northbridge/amd/pi/00730F01/northbridge.c9
-rw-r--r--src/southbridge/amd/pi/hudson/lpc.c13
-rw-r--r--src/southbridge/amd/pi/hudson/pci_devs.h1
3 files changed, 23 insertions, 0 deletions
diff --git a/src/northbridge/amd/pi/00730F01/northbridge.c b/src/northbridge/amd/pi/00730F01/northbridge.c
index ed8e17a753..3a2f730e63 100644
--- a/src/northbridge/amd/pi/00730F01/northbridge.c
+++ b/src/northbridge/amd/pi/00730F01/northbridge.c
@@ -864,6 +864,14 @@ static void domain_set_resources(device_t dev)
}
}
+static const char *domain_acpi_name(struct device *dev)
+{
+ if (dev->path.type == DEVICE_PATH_DOMAIN)
+ return "PCI0";
+
+ return NULL;
+}
+
static struct device_operations pci_domain_ops = {
.read_resources = domain_read_resources,
.set_resources = domain_set_resources,
@@ -871,6 +879,7 @@ static struct device_operations pci_domain_ops = {
.init = NULL,
.scan_bus = pci_domain_scan_bus,
.ops_pci_bus = pci_bus_default_ops,
+ .acpi_name = domain_acpi_name,
};
static void sysconf_init(device_t dev) // first node
diff --git a/src/southbridge/amd/pi/hudson/lpc.c b/src/southbridge/amd/pi/hudson/lpc.c
index c18a5590fa..7a3914a9bd 100644
--- a/src/southbridge/amd/pi/hudson/lpc.c
+++ b/src/southbridge/amd/pi/hudson/lpc.c
@@ -30,6 +30,7 @@
#include <pc80/i8259.h>
#include "hudson.h"
#include <vboot/vbnv.h>
+#include "pci_devs.h"
static void lpc_init(device_t dev)
{
@@ -338,6 +339,17 @@ unsigned long acpi_fill_mcfg(unsigned long current)
return current;
}
+static const char *lpc_acpi_name(struct device *dev)
+{
+ if (dev->path.type != DEVICE_PATH_PCI)
+ return NULL;
+
+ if (dev->path.pci.devfn == LPC_DEVFN)
+ return "LIBR";
+
+ return NULL;
+}
+
static struct pci_operations lops_pci = {
.set_subsystem = pci_dev_set_subsystem,
};
@@ -352,6 +364,7 @@ static struct device_operations lpc_ops = {
.init = lpc_init,
.scan_bus = scan_lpc_bus,
.ops_pci = &lops_pci,
+ .acpi_name = lpc_acpi_name,
};
static const unsigned short pci_device_ids[] = {
diff --git a/src/southbridge/amd/pi/hudson/pci_devs.h b/src/southbridge/amd/pi/hudson/pci_devs.h
index 76480e51ee..7d4dea2938 100644
--- a/src/southbridge/amd/pi/hudson/pci_devs.h
+++ b/src/southbridge/amd/pi/hudson/pci_devs.h
@@ -86,6 +86,7 @@
/* LPC BUS */
#define PCU_DEV 0x14
+#define LPC_DEV PCU_DEV
#define LPC_FUNC 3
#define LPC_DEVID 0x780E
#define LPC_DEVFN PCI_DEVFN(LPC_DEV,LPC_FUNC)