Hi Nico,
The change you pointed do the trick!
How can I submit a little patch to Coreboot in order to add this change?
--- a/src/northbridge/amd/pi/00660F01/northbridge.c 2018-05-10 09:39:18.647612837 +0200 +++ b/src/northbridge/amd/pi/00660F01/northbridge.c 2018-07-03 07:56:12.794972857 +0200 @@ -796,12 +796,21 @@ } }
+static const char *domain_acpi_name(const 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, .enable_resources = domain_enable_resources, .init = NULL, .scan_bus = pci_domain_scan_bus, + .acpi_name = domain_acpi_name, };
static void sysconf_init(device_t dev) // first node
________________________________ De: Nico Huber nico.h@gmx.de Enviado: viernes, 29 de junio de 2018 17:28:52 Para: Jorge Fernandez Monteagudo; coreboot@coreboot.org; Zaolin Asunto: Re: [coreboot] RV: Error booting with TPM enabled.
Hi,
On 29.06.2018 16:13, Jorge Fernandez Monteagudo wrote:
In 00730F01/northbridge.c I can see: [...] static struct device_operations pci_domain_ops = { [...] and in 00660F01/northbridge.c there is no acpi_name! The most related to the previous one is: [...] static struct device_operations northbridge_operations =
sorry, I wrote `northbridge device` sometimes, what I really meant is the `domain device`, hence you have to add it to `pci_domain_ops` just like in the 00730F01 case.
On monday I'll try to add the method to 00660F01 code!
Good luck!
Nico
De: Nico Huber nico.h@gmx.de Enviado: viernes, 29 de junio de 2018 15:47:09 Para: Jorge Fernandez Monteagudo; coreboot@coreboot.org; Zaolin Asunto: Re: [coreboot] RV: Error booting with TPM enabled.
On 29.06.2018 12:48, Jorge Fernandez Monteagudo wrote:
Ok, I think I've found the problem... If I force in 'src/drivers/pc80/tpm/tis.c'
the path value to "\_SB_.PCI0.LIBR" it works!
Now, I'll try to guess from where the "_SB._SB.LIBR" current value comes from... but now it's working.
This is expected if you still haven't implemented `.acpi_name` for your northbridge device. In case you haven't tried it yet: Just copy what `nb/amd/pi/00730F01/northbridge.c` does about `.acpi_name` to `nb/amd/pi/00660F01/northbridge.c`.
Again, if the domain device doesn't implement `.acpi_name`, its parent device will be asked. And in this case the parent, the root device, always returns `_SB`.
Nico