Attention is currently required from: Christian Walter, Jérémy Compostella.
Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/81276?usp=email )
Change subject: drivers/pc80/tpm: Support Xeon-SP ......................................................................
drivers/pc80/tpm: Support Xeon-SP
On Xeon-SP the first PCI domain isn't named PCI0 and thus the TPM ACPI code fails to evaluate. Instead of hardcoding an ACPI path use the domain name set in the SoC chip_ops.
Change-Id: I6130b937ec81bbde78d2619eb859ecf354fc3854 Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M src/drivers/pc80/tpm/tis.c 1 file changed, 13 insertions(+), 7 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/76/81276/1
diff --git a/src/drivers/pc80/tpm/tis.c b/src/drivers/pc80/tpm/tis.c index 90fa32e..fda89c4 100644 --- a/src/drivers/pc80/tpm/tis.c +++ b/src/drivers/pc80/tpm/tis.c @@ -799,9 +799,20 @@ #if CONFIG(HAVE_ACPI_TABLES) static void lpc_tpm_fill_ssdt(const struct device *dev) { - /* Windows 11 requires the following path for TPM to be detected */ - const char *path = "\_SB_.PCI0"; + const struct device *domain = dev_get_pci_domain(dev); + const char *path;
+ /* Windows 11 requires the following path for TPM to be detected */ + assert(domain); + if (domain) + path = acpi_device_path(domain); + else + path = "\_SB_.PCI0"; + +#if !DEVTREE_EARLY + printk(BIOS_INFO, "%s.%s: %s %s\n", path, acpi_device_name(dev), + dev->chip_ops->name, dev_path(dev)); +#endif /* Device */ acpigen_write_scope(path); acpigen_write_device(acpi_device_name(dev)); @@ -867,11 +878,6 @@
acpigen_pop_len(); /* Device */ acpigen_pop_len(); /* Scope */ - -#if !DEVTREE_EARLY - printk(BIOS_INFO, "%s.%s: %s %s\n", path, acpi_device_name(dev), - dev->chip_ops->name, dev_path(dev)); -#endif }
static const char *lpc_tpm_acpi_name(const struct device *dev)