Problems with PCI-E devices not being detected with switch

Ayman El-Khashab AymanE at tanisys.com
Fri Oct 17 02:01:55 EST 2008


Benjamin Herrenschmidt wrote:
> On Wed, 2008-10-15 at 10:47 -0500, Ayman El-Khashab wrote:
> 
> Note for people on CC: This is a problem on 460EX on a canyonland
> using the 4x port. 
> 
>> The problem occurs when Linux boots. It sees the switch (and looking
>> in /sys/bus/... confirms it), but nothing on the downstream sides of
>> the switch (secondary busses) is visible.  There were no boot
>> messages to indicate it had seen the Sil 3531 and it doesn't
>> function.  We've also tried other PCI-E devices (NI GPIB) on the
>> downstream side and they are also not detected, so it seems to be
>> something in Linux, my configuration, etc.  I've included the boot
>> messages below from u-boot and the kernel.  It is more than just the
>> pci boot messages, but I was not sure if something else in the log
>> with provide some insight. 
> 
> The messages below look really fishy indeed:
> 
>> pci 0001:02:00.0: unknown header type 03, ignoring device pci
>> 0001:02:01.0: unknown header type 41, ignoring device pci
>> 0001:02:02.0: unknown header type 03, ignoring device pci
>> 0001:02:03.0: unknown header type 41, ignoring device pci
>> 0001:02:04.0: ignoring class 1d09 (doesn't match header type 02) pci
>> 0001:02:05.0: unknown header type 41, ignoring device pci
>> 0001:02:06.0: ignoring class 1d09 (doesn't match header type 02) pci
>> 0001:02:07.0: unknown header type 41, ignoring device pci
>> 0001:02:08.0: unknown header type 03, ignoring device pci
>> 0001:02:09.0: unknown header type 41, ignoring device pci
>> 0001:02:0a.0: ignoring class 7d09 (doesn't match header type 02) pci
>> 0001:02:0b.0: unknown header type 41, ignoring device pci
>> 0001:02:0c.0: ignoring class 1d01 (doesn't match header type 02) pci
>> 0001:02:0d.0: unknown header type 41, ignoring device pci
>> 0001:02:0e.0: ignoring class 7d09 (doesn't match header type 02) pci
>> 0001:02:0f.0: unknown header type 41, ignoring device pci
>> 0001:02:10.0: unknown header type 03, ignoring device pci
>> 0001:02:11.0: unknown header type 41, ignoring device pci
>> 0001:02:12.0: unknown header type 03, ignoring device pci
>> 0001:02:13.0: unknown header type 41, ignoring device pci
>> 0001:02:14.0: unknown header type 03, ignoring device pci
>> 0001:02:15.0: unknown header type 41, ignoring device pci
>> 0001:02:16.0: ignoring class 3d09 (doesn't match header type 02) pci
>> 0001:02:17.0: unknown header type 41, ignoring device pci
>> 0001:02:18.0: unknown header type 03, ignoring device pci
>> 0001:02:19.0: unknown header type 41, ignoring device pci
>> 0001:02:1a.0: unknown header type 03, ignoring device pci
>> 0001:02:1b.0: unknown header type 41, ignoring device pci
>> 0001:02:1c.0: ignoring class 5d01 (doesn't match header type 02) pci
>> 0001:02:1d.0: unknown header type 41, ignoring device pci
>> 0001:02:1e.0: unknown header type 03, ignoring device pci
>> 0001:02:1f.0: unknown header type 41, ignoring device
> 
> 
> Ayman, can you try adding a long delay (such as msleep(5000), ie 5s)
> at the beginning of pcibios_init() in arch/powerpc/kernel/pci_32.c ? 
> This will add 5s delay between the init/reset of the port and the
> probing by linux. Do that help ? 
> 

Thanks for your help.  I did try a 5s delay and other than the boot
taking an extra couple of seconds, there was no change.  The messages
above "unknown header" still showed up.  Downstream devices were not
found.
BTW, this is with both the Denx kernel tree and the official 2.6.27
kernel.  
Both have the same results. One added note, just to rule out bad
electronics,
I have confirmed that the switch+sata work correctly together if placed
into a plain x86 pc with 2.6.24.  So the electronics are fine.

Ayman



More information about the Linuxppc-dev mailing list