[coreboot] RV: Error booting with TPM enabled.

Nico Huber nico.h at gmx.de
Sat Jun 23 12:28:05 CEST 2018

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.


More information about the coreboot mailing list