<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi Nico!</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">I'll give a try to your suggestion!</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">In <font size="2"><span style="font-size:11pt;">00730F01/northbridge.c</span></font> I can see:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"></p>
<div>static const char *domain_acpi_name(const struct device *dev)<br>
{<br>
    if (dev->path.type == DEVICE_PATH_DOMAIN)<br>
        return "PCI0";<br>
<br>
    return NULL;<br>
}<br>
<br>
static struct device_operations pci_domain_ops = {<br>
    .read_resources      = domain_read_resources,<br>
    .set_resources      = domain_set_resources,<br>
    .enable_resources = domain_enable_resources,<br>
    .init          = NULL,<br>
    .scan_bus      = pci_domain_scan_bus,<br>
    .acpi_name        = domain_acpi_name,<br>
};<br>
<br>
</div>
<p></p>
<p style="margin-top:0;margin-bottom:0">and in <font size="2"><span style="font-size:11pt;">00660F01/northbridge.c</span></font> there is no acpi_name! The most related to the previous one is:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"></p>
<div>static void northbridge_fill_ssdt_generator(device_t device)<br>
{<br>
    msr_t msr;<br>
    char pscope[] = "\\_SB.PCI0";<br>
<br>
    acpigen_write_scope(pscope);<br>
    msr = rdmsr(TOP_MEM);<br>
    acpigen_write_name_dword("TOM1", msr.lo);<br>
    msr = rdmsr(TOP_MEM2);<br>
    /*<br>
     * Since XP only implements parts of ACPI 2.0, we can't use a qword<br>
     * here.<br>
     * See http://www.acpi.info/presentations/S01USMOBS169_OS%2520new.ppt<br>
     * slide 22ff.<br>
     * Shift value right by 20 bit to make it fit into 32bit,<br>
     * giving us 1MB granularity and a limit of almost 4Exabyte of memory.<br>
     */<br>
    acpigen_write_name_dword("TOM2", (msr.hi << 12) | msr.lo >> 20);<br>
    acpigen_pop_len();<br>
}<br>
<br>
</div>
<br>
<p></p>
<p style="margin-top:0;margin-bottom:0"></p>
<div>static struct device_operations northbridge_operations = {<br>
    .read_resources      = read_resources,<br>
    .set_resources      = set_resources,<br>
    .enable_resources = pci_dev_enable_resources,<br>
    .init          = northbridge_init,<br>
    .acpi_fill_ssdt_generator = northbridge_fill_ssdt_generator,<br>
    .write_acpi_tables = agesa_write_acpi_tables,<br>
    .enable          = 0,<br>
    .ops_pci      = 0,<br>
};</div>
<div><br>
</div>
<div>On monday I'll try to add the method to <font size="2"><span style="font-size:11pt;">00660F01</span></font> code!<br>
</div>
<br>
<p></p>
<p style="margin-top:0;margin-bottom:0">Regards!</p>
<p style="margin-top:0;margin-bottom:0">Jorge<br>
</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>De:</b> Nico Huber <nico.h@gmx.de><br>
<b>Enviado:</b> viernes, 29 de junio de 2018 15:47:09<br>
<b>Para:</b> Jorge Fernandez Monteagudo; coreboot@coreboot.org; Zaolin<br>
<b>Asunto:</b> Re: [coreboot] RV: Error booting with TPM enabled.</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On 29.06.2018 12:48, Jorge Fernandez Monteagudo wrote:<br>
> Ok, I think I've found the problem... If I force in 'src/drivers/pc80/tpm/tis.c'<br>
> <br>
> the path value to "\\_SB_.PCI0.LIBR" it works!<br>
> <br>
> Now, I'll try to guess from where the "\_SB.\_SB.LIBR" current value comes from...<br>
> but now it's working.<br>
<br>
This is expected if you still haven't implemented `.acpi_name` for<br>
your northbridge device. In case you haven't tried it yet: Just copy<br>
what `nb/amd/pi/00730F01/northbridge.c` does about `.acpi_name` to<br>
`nb/amd/pi/00660F01/northbridge.c`.<br>
<br>
Again, if the domain device doesn't implement `.acpi_name`, its parent<br>
device will be asked. And in this case the parent, the root device,<br>
always returns `\_SB`.<br>
<br>
Nico<br>
</div>
</span></font></div>
</body>
</html>