How to block pci config-reads during device self-test?

Linas Vepstas linas at denx.de
Tue Jul 13 07:16:55 EST 2004


On Thu, Jul 08, 2004 at 06:37:59PM +0100, Matthew Wilcox was heard to remark:
> On Thu, Jul 08, 2004 at 11:36:28AM -0500, Brian King wrote:
> > I don't like the idea of "learning to live with this". People do
> > run into this problem and telling them it can't be fixed is not an
> > acceptable answer.
>
> Sure it is. Even the taiwanese knock-off PCI boards don't have these
> kinds of problems. Your hardware guys need to fix it.

Actually, I just talked to the PCI guys here, and they seem to be saying
that this behaviour is expected by the PCI spec;  this implies that *all*
cards with BIST will have this problem.

To recap: device driver has started a BIST on the PCI card; and some
other linux daemon performs a PCI config-space I/O to the adapter.
Since the card under BIST cannot assert DEVSEL#, the PCI bridge
does a Master Abort, with the result that the device now placed
offline.

It sounds to me like its pretty normal that a device in BIST
is going to be ignoring pretty much anything going into it,
so the master abort is no surpirse.  So the answer does indeed
seem to be that blocking pci config-space i/o during BIST is the
right thing to do (for all architectures, and not just for ppc64
where I guess we'll do it first).

--linas

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list