On 23.06.2018 07:58, Jorge Fernandez Monteagudo wrote:
I guess it's used, but you need an acpi name for all devices along the path. "LIBR" is the name for the LPC device, there should also be one for the PCI bus/domain. I would try `src/northbridge/amd/pi/00660F01/ northbridge.c`.
Could you point me to an example to know what I have to look for, p.e, to a good supported board or something related. I'm still introducing me in the coreboot world :)
Didn't use a TPM with coreboot so far, so I don't know full working examples (but there are some, I'm sure).
Regarding the domain, the code for 00730F01 looks like what I had in mind: `src/northbridge/amd/pi/00730F01/northbridge.c:813`.
Background: the TPM driver calls acpi_device_path() which walks the devicetree hierarchy up and asks every device for its acpi_name(). If you look at your devicetree, there is above your TPM, the `device pci 14.3` (LIBR), then `device domain 0` (PCI0) and finally an implicit root device (_SB_). The latter is hardcoded for all of coreboot.
Now this acpi_name() has one peculiarity: When one device doesn't have this function, its parent's acpi_name() function is queried. That is why the acpi_name() implementations don't just `return "...";` but check for what device they were called, first.
The names returned have to match the names in the static ACPI tables. See your board's `dsdt.asl` and what it includes.
Nico