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
>