diff options
author | Philipp Deppenwiese <zaolin@das-labor.org> | 2017-03-01 02:24:33 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2017-05-11 16:50:27 +0200 |
commit | 30670121c32a7e99c24271216c6f9450d14e7d90 (patch) | |
tree | bccf52fd6be09a128afbe0013e269644704c9e23 | |
parent | 5fd00ce71a1bfd5cd36f9d42ab657a8e7d6c54f2 (diff) |
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.c | 9 | ||||
-rw-r--r-- | src/southbridge/amd/pi/hudson/lpc.c | 13 | ||||
-rw-r--r-- | src/southbridge/amd/pi/hudson/pci_devs.h | 1 |
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) |