Tobias Diedrich (ranma+coreboot@tdiedrich.de) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18315
-gerrit
commit 60ccf606672cecb8e81b94d8b28477360e2c6c47 Author: Tobias Diedrich ranma+openocd@tdiedrich.de Date: Fri Feb 10 00:28:45 2017 +0100
drivers/pc80/tpm: Update default acpi path
The existing default path of PCI0.LPCB is missing the _SB prefix and prevents Linux from detecting the TPM. This is assuming that normally the LPCB device is most commonly on _SB.PCI0.LPCB.
SSDT excerpt without the patch: """ DefinitionBlock ("", "SSDT", 2, "CORE ", "COREBOOT", 0x0000002A) { External (_SB_.PCI0.GFX0, DeviceObj) [...] External (_SB_.PCI0.SATA, DeviceObj) External (PCI0.LPCB, DeviceObj) [...] Scope (PCI0.LPCB) { Device (TPM) [...] Scope (_SB.PCI0.GFX0) { Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices [...] """
SSDT excerpt with the patch: """ DefinitionBlock ("", "SSDT", 2, "CORE ", "COREBOOT", 0x0000002A) { External (_SB_.PCI0.GFX0, DeviceObj) [...] External (_SB_.PCI0.LPCB, DeviceObj) [...] External (_SB_.PCI0.SATA, DeviceObj) [...] Scope (_SB.PCI0.LPCB) { Device (TPM) [...] Scope (_SB.PCI0.GFX0) { Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices [...] """
After the patch the TPM shows up in /sys/bus/acpi/devices/PNP0C31:00. Previously it was missing and not detected by the kernel.
Change-Id: I615b4873ca829a859211403c84234d43d60f2243 Signed-off-by: Tobias Diedrich ranma+coreboot@tdiedrich.de --- src/drivers/pc80/tpm/tpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/drivers/pc80/tpm/tpm.c b/src/drivers/pc80/tpm/tpm.c index 83dc923..3c3e491 100644 --- a/src/drivers/pc80/tpm/tpm.c +++ b/src/drivers/pc80/tpm/tpm.c @@ -876,7 +876,7 @@ static void lpc_tpm_fill_ssdt(struct device *dev) CONFIG_TPM_TIS_BASE_ADDRESS, 0x5000);
if (!path) { - path = "PCI0.LPCB"; + path = "\_SB_.PCI0.LPCB"; printk(BIOS_DEBUG, "Using default TPM ACPI path: '%s'\n", path); }