
Dear Ayman El-Khashab,
In message 4ADC055C.6080006@elkhashab.com you wrote:
I am using a recent version of u-boot (git from the past couple of weeks) and have an LSI SAS adapter on a canyonlands board. What I see happening is that u-boot reads the bist bit, then does numerous bar accesses, then sets the bist fail and latency words. Once the bist is set to fail, the lsi adapter doesn't respond to anything else and so Linux fails to see it when it boots. I've tried turning off pcie support in u-boot, in that case the bist did not get written but Linux kernel crashed during the init of the adapter. The LSI adapter does work fine in a ubuntu PC, so the hardware is likely good. This adapter is an LSISAS2008 gen 2 pcie board. On the PC it uses both IO and MEM spaces.
Did you try setting the "pciscandelay" variable? Try setting it to 5 (or 10) [seconds]. See also
commit 6efc1fc0b63e55f94c5bc61d8dd23c918e3bc778 Author: Grzegorz Bernacki gjb@semihalf.com Date: Fri Sep 7 18:35:37 2007 +0200
[PPC440SPe] PCIe environment settings for Katmai and Yucca
- 'pciconfighost' is set by default in order to be able to scan bridges behind the primary host/PCIe
- 'pciscandelay' env variable is recognized to allow for user-controlled delay before the PCIe bus enumeration; some peripheral devices require a significant delay before they can be scanned (e.g. LSI8408E); without the delay they are not detected
Signed-off-by: Grzegorz Bernacki gjb@semihalf.com
Best regards,
Wolfgang Denk