Subject: Re: PCI-PCI bridge scanning broken on 460EX

From: Benjamin Herrenschmidt <[email-masked]>
Date: Mon, 11 Jan 2010 07:38:26 +1100

On Sun, 2010-01-10 at 14:56 +0200, Felix Radensky wrote:

> I now have a custom board with 460EX and the same PLX bridge, running 
> 2.6.23-rc3
> Things look better here, as u-boot is now able to properly detect PLX 
> and device behind
> it, but kernel still has problems. First, I'm still getting hard reset on
> 
> pci_write_config_dword(dev, PCI_PRIMARY_BUS,
>                                buses & ~0xffffff);
> 
> If this line is removed, PLX is detected twice, see below. I also get 
> hard reset
> if pass test is modified as you requested and broken test removed.
> 
> Any ideas how to fix this ? I was suspecting PLX evaluation board, but
> PLX on our custom board seems to be OK, so it looks like kernel needs 
> fixing.

I have no idea no. It looks like something is wrong with the PLX bridge
but again, I don't know why that would cause the 460EX to hard reset
like that, unless some of the PCIe error handling of the 460 has been
configured to cause such a reset on some kind of errors (which it
shouldn't at least not in host mode).

Can you try instead of writing all the bus number related registers in
one single dword write above, writing them byte by byte ? Which one is
causing the reset ? Does it reset whatever the value you write there
is ?

It looks like something is causing a hard reset as soon as you try to
configure the PLX bridge and without configuring it properly I fail to
see how you'll get things working.

Cheers,
Ben.