Kernel > 2.6.30: PCI issue causes Kernel freeze at booting

From: Hornung, Michael
Date: Tue May 17 2011 - 03:15:50 EST


Hello list,

the system from which I'm talking about is a Menlow XL (Intel Atom Z510PT and SCH US15WPT) platform with 512 megabyte RAM.
There is one PCIe-switch (PI7C9X20404SL) attached to each of both PCIe-ports of the US15WPT (see attached 2.6.30-lspci.txt for details).

With both switches enabled, all Kernel versions (vanilla) above 2.6.30 refuse to boot. With only one switch active
(the other one with no supply voltage ), all Kernel versions boot properly. It does not matter which switch is removed, it
is sufficient just to remove one of the two.

There is an UART (FPGA IP Core) in that system located at address 1900h using interrupt 3. In order to get Kernel messages at boot time,
I changed file arch/x86/include/asm/serial.h as follows:

- { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
+ { 0, BASE_BAUD, 0x1900, 3, STD_COM_FLAGS }, /* ttyS0 */ \

that is the only change I made to the kernel sources.

The build process has been the same for all kernel versions (Host: Ubuntu 10.04 LTS gcc version 4.4.3):

$ sudo make i386_defconfig
$ sudo make menuconfig (enabled PCI debugging)
$ sudo make-kpkg clean
$ sudo make-kpkg --initrd kernel_image --revision KernelRebuild.01

The target system is a voyage 0.6.5 (Debian Lenny based). On the target I did the following in order to install the new kernels:

# dpkg -i linux-image-2.6.38.6_KernelRebuild.01_i386.deb
# dpkg -i linux-image-2.6.30_KernelRebuild.01_i386.deb
# update-initramfs -c -k 2.6.38.6
# update-initramfs -c -k 2.6.30
# update-grub

To the grub command line I added the following:

debug console=tty0 console=ttyS0,115200

I attached the kernel boot messages from Kernel versions 2.6.30 (2.6.30.log) and 2.6.38.6 (2.6.38.6.log) both were dumped from
the serial line.

While looking at the kernel messages on the attached monitor, the kernel output seems to stop always on different positions.
Looking at the serial line, the kernel output always stops after the following message:

pci 0000:00:1c.0: enabling device (0006 -> 0007)

The monitor shows a few lines more than the serial line, before the output stops as well.

Any hints what I'm doing wrong?


Thank you very much in advance.


With best regards


Michael Hornung


------------------------------------------------------------
Michael Hornung
Hardware
Mobile Telematic and Fare Collection Systems

E-Mail mhornung@xxxxxxxxxx

INIT Innovative Informatikanwendungen
in Transport-, Verkehrs- und Leitsystemen GmbH
Käppelestrasse 4-6
76131 Karlsruhe
Germany
http://www.init-ka.de

Geschäftsführer:
Dr.-Ing. Gottfried Greschner, Dipl.-Inform. Achim Becker, Dipl.-Ing. (FH) Wolfgang Degen, Dipl.-Kfm. Dr. Jürgen Greschner

Amtsgericht Mannheim HRB 103679 . Internationale Registrierungen: 988055689MVA (Norwegen), FC027220 (UK)

Vertraulichkeitshinweis:
Der Inhalt dieser E-Mail ist vertraulich zu behandeln. Das Schreiben ist nur zur Kenntnis des oben genannten Empfängers bestimmt. Wenn Sie nicht der richtige Adressat sind, informieren Sie bitte sofort den Absender und vernichten diese Nachricht. Unerlaubte Kopien sowie unbefugte Weitergabe sind nicht gestattet.
Bitte beachten Sie, dass durch diese E-Mail keine rechtsverbindlichen Willenserklärungen abgegeben werden.

Privacy Notice:
Content of this e-mail must be treated as strictly confidential. This writing is intended only for the knowledge of the above-mentioned addressee. If you are not the correct recipient please inform the sender immediately and permanently erase this message. Illegal copies as well as unauthorized passing is not permitted and strictly forbidden.
Please note that by sending this mail INIT does not make any commitment and is under no obligation.


Attachment: 2.6.38.6.log
Description: 2.6.38.6.log

Attachment: 2.6.30.log
Description: 2.6.30.log