[coreboot] Dealing with PCI reset

Paul Menzel paulepanter at users.sourceforge.net
Sun Dec 18 23:32:02 CET 2016

Dear Timothy,

Thank you for your reply.

Am Sonntag, den 11.12.2016, 15:54 -0600 schrieb Timothy Pearson:
> > Several devices using the Intel 945 chipset copied code for PCI reset,
> > costing 200 ms of boot time.
> > 
> > ```
> >          /* Force PCIRST# */
> >          pci_write_config16(PCI_DEV(0, 0x1e, 0), BCTRL, SBR);
> >          udelay(200 * 1000);
> >          pci_write_config16(PCI_DEV(0, 0x1e, 0), BCTRL, 0);
> > ```
> > 
> > The change-set Ia37d9f0ecf5655531616edb20b53757d5d47b42f [1] removes
> > that code from the Lenovo X60.
> > 
> > That code was added for some crypto card on a Roda device.
> > 
> > My question is, if removing that code is fine, or if it should be left
> > in and be made configurable (Kconfig/NVRAM)?
> > 
> > Are there often cases where there are extensions card with problems,
> > that need such a PCI reset?
> We have run into this issue on the KGPE-D16 and LSI SAS controllers.
> However, in this case it's not so much the reset itself as it is the
> time it takes for the card to start up and become ready for PCI scan.
> We handled this with a devicetree.cb option to set a delay between reset
> and PCI scan.  Perhaps something similar could be used in this instance?

I guess you are referring to the following line in

register "pcie_settling_time" = "1000000" # Allow PIKE to be detected / configured

This option is only available for that particular southbridge, AMD
SR5650, right?

In the Lenovo X60 case, it’d probably would be better to have it as a
run time option in NVRAM, so that it can be configured depending if
such a problematic card is used or not.

Would it be feasible to implement something like that in `src/device`,
so that all devices can use it?

Or is that overkill, and such pluggable(?), that means external, cards
are rare, and the code should just be removed for the Lenovo X60?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20161218/e97aa05c/attachment.asc>

More information about the coreboot mailing list