Antwort: RE: Migrating from 2.6.11 to 2.6.23 breaks pci-e

joachim.bader at joachim.bader at
Mon Jul 21 17:14:34 EST 2008

Hello Vince,

we ran into the similar problem using U-boot version 1.1.4 and Linux 
kernel 2.6.23 on a Freescale MPC8641D platform.
The kernel did not scan all buses and did not recognize the connected 
pci-e bridges and devices.

Your mail was very helpfull and due to the information you sent we 
disabled CONFIG_PCI in U-boot and now the kernel was able to detect all 
connected bridges and devices. But during allocation of the pci-e 
resources the kernel runs in an address access violation. We will continue 
to investigate this behavior.

Do you have some more information? regarding behavior of newer kernels?

Thank you
Joachim Bader
Dipl.-Ing. Joachim Bader
Research & Technology
Cockpit and Display Systems

Diehl Aerospace GmbH
An der Sandelmuehle 13
D-60439 Frankfurt
Phone +49-69-5805-1270
Fax       +49-69-5805-1400
e-mail:  joachim.bader at

"Vince Asbridge" <vasbridge at> 
Gesendet von: at
02.07.2008 23:40

<linuxppc-embedded at>, "'Stephen Shirron'" 
<sshirron at>, "'Mitul Patel'" <mpatel at>, "'Dave 
Maruska'" <dmaruska at>, "'Geary Sean-R60898'" 
<sean.geary at>, "'Hynes, Stephen'" <Stephen.Hynes at>

RE: Migrating from 2.6.11 to 2.6.23 breaks pci-e with LSI 1068 SAS chip 


Problem summary.

LSI logic devices (1068e, 1064e, fc949e) do not work with uBoot version
1.3.0 and Linux kernel 2.6.23, where they work perfectly fine in kernel

Symptom is that they do not show up at all to Linux once booted (lspci 

We obtained a pci-e analyzer and found the following:

uBoot V1.3.0 now scans the pci configuration, and when it does it assigns
bus numbers to the pci-e devices it finds.  These numbers that are 
are different from those that are assigned by Linux when the system boots.

It is legal to change pci-e bus numbers "on the fly" but doing so requires 
config write cycle to the pci-e device, because the pci-e spec states that
the device must register a new bus number if a config write cycle is 
with the new bus number.

When we boot the Freescale machine with uBoot 1.3.0 and kernel 2.6.23, the
bus number under uBoot gets assigned to 1, and the bus number under Linux
gets assigned to 4.  Between the change of bus numbers we do not see a
config write go to the LSI device with the new bus number, and therefore 
continues to respond on bus 1 and ignore config reads to bus 4.

We temporarily fixed the issue by defining the CONFIG_PCI_NOSCAN flag 
uBoot, which causes the LSI device not to get assigned a bus number at
uBoot, and therefore when Linux begins doing config reads at bus 4 to the
LSI device registers the bus number and responds correctly.

We will do a bit more investigation to see if this has already been fixed 
a newer kernel, but for now not scanning at uBoot fixes the issue.

It's a bit of a mystery why the LSI devices behave differently from any
other pci-e device we put in the system, but they seem to be adhering to 
letter of the specification.

Vince Asbridge

------- original post -------


I'm new to this mailing list, but have not had any luck finding 
on this issue.

Please be kind if I break the forum rules on my first post.

We recently tried to upgrade our Freescale CDS 8548 look-alike module 
name ATCA1000) from the 2.6.11 based BSP to the 2.6.23 based BSP.

The upgrade went fairly smoothly, until we tried using SOME pci-e devices
(some work fine, some don't show up to lspci).

LSI pci-e controllers no longer show up at all!

We see the ixgbe (intel 10G), SiliconImage SATA controller but do not see
LSI devices (Specifically 1068 SAS, FC949-E fibrechannel).

We're guessing it's a resource issue behind the bridge, because the LSI
devices try to allocate 1 - 3M behind the bridge, but we can't find the 
or where we would debug such an issue.

The devices seem to "train" correctly, because we have an LED on the pci-e
switch (PLX 8 port pci-e switch), and it's ON indicating pci-e link 
the bridge and the 1068 device).

We're totally at a loss as to why this always worked on the 2.6.11 kernel
but doesn't work on 2.6.23.

Using lspci, the LSI adapters do not show up in the list at all, as though
they are not plugged into the system.

Is there something that needs to be done with respect to PCI-E devices 
is new in the 2.6.23 based BSP that did not need to be done in the 2.6.11
based kit?  For example, are pci resources allocated by a different piece 
code, that may have some issue allocating resources for the LSI adapters?

I currently do not have access to a pci-e analyzer.

Thanks for any help,
Vince Asbridge

Linuxppc-embedded mailing list
Linuxppc-embedded at

Der Inhalt dieser E-Mail ist für den Absender rechtlich nicht verbindlich. 
Informieren Sie uns bitte, wenn Sie diese E-Mail fälschlicherweise erhalten haben (Fax: +49-69-5805-1399). Bitte löschen Sie in diesem Fall die Nachricht. Jede Form der weiteren Benutzung ist untersagt.

The content of this e-mail is not legally binding upon the sender.
If this e-mail was transmitted to you by error, then please inform us accordingly (Fax: +49-69-5805-1399). In such case you are requested to erase the message. Any use of such e-mail message is strictly prohibited.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/octet-stream
Size: 3002 bytes
Desc: not available
URL: <>

More information about the Linuxppc-embedded mailing list