Help: Kernel BUG with U-boot 1.1.4 and kernel 2.6.23 scanning PCIe on a MPC8641D board
joachim.bader at diehl-aerospace.de
joachim.bader at diehl-aerospace.de
Tue Jul 22 23:33:50 EST 2008
Hello folks,
we run a proprietary board with Freescale MPC8641D using U-boot 1.1.4 and
Linux kernel 2.6.23
First of all, we are no experts in PCIe-Bus handling and management.
We started with the problem that U-Boot was able to scan the devices
connected to PCIe-Bus where the kernel fails.
Using the information provided by Vince Asbridge regarding the different
numbering of devices on PCIe bus by U-Boot and kernel we were able to get
the kernel up recognizing the devices correctly.
Thanks for this info.
But now we are blocked by an exception in kernel mode during
initialisation of the PCIe-Buses and devices. We instrumented the kernel
additional to the standard print outs to get more information and to
understand the behavior of the scan and allocation process. But now we get
lost. I assume that the problem is caused by the transparent bridges.
I appent here after the trace log. Perhaps someone knows this problem
already or can give me a hint .
I read in the logs some messages that 2.6.23 does contain some bugs
related to PCIe and it would be a good choice to upgrade to 2.6.25. Is
this one of that cases?
Currently we would like to prevent switching the kernel version.
Any help is appreciated.
Thanks in advance.
Joachim
--
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 diehl-aerospace.de
http://www.diehl-aerospace.de
------ TRACE LOG --------
Load address: 0x1000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
############
done
Bytes transferred = 1389893 (153545 hex)
## Booting image at 01000000 ...
Image Name: Linux-2.6.23
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1389829 Bytes = 1.3 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Current stack ends at 0x0FF9B968 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF9B
bd address = 0x0FF9BFB0
memstart = 0x00000000
memsize = 0x20000000
flashstart = 0xF0000000
flashsize = 0x10000000
flashoffset = 0x00000000
sramstart = 0x00000000
sramsize = 0x00000000
bootflags = 0x00000001
intfreq = 990 MHz
busfreq = 396 MHz
ethaddr = 00:E0:0C:00:00:10
eth1addr = 00:E0:0C:00:01:10
eth2addr = 00:E0:0C:00:02:10
eth3addr = 00:E0:0C:00:03:10
IP addr = 172.30.222.10
baudrate = 115200 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
Linux Kernel Parameters:
of_flat_tree: 007fde60 = d00dfeed
kernel: 00000000 = 60000000
Using MPC86xx HPCN machine description
Total memory = 512MB; using 1024kB for hash table (at cff00000)
Linux version 2.6.23 (vowinkel at ariadne) (gcc version 3.3.2) #94 Tue Jul 22
14:43:39 CEST 2008
console [udbg0] enabled
setup_arch: bootmem
mpc86xx_hpcn_setup_arch()
Found FSL PCI host bridge at 0x00000000d4008000.Firmware bus number:
0->254
Dump of resource ranges:
len=12
0x02000000
0x00000000
0x40000000
0x40000000
0x00000000
0x10000000
0x01000000
0x00000000
0x00000000
0x5e000000
0x00000000
0x01000000
PCI: MEM[0] 0x40000000 -> 0x4fffffff
PCI: IO Phys = 0x5e000000
PCI: IO Virt = 0x5e000000
PCI: IO 0x0 -> 0xffffff
Found FSL PCI host bridge at 0x00000000d4009000.Firmware bus number:
0->254
Dump of resource ranges:
len=12
0x02000000
0x00000000
0x80000000
0x80000000
0x00000000
0x10000000
0x01000000
0x00000000
0x00000000
0x9e000000
0x00000000
0x 1000000
PCI: MEM[0] 0x80000000 -> 0x8fffffff
PCI: IO Phys = 0x9e000000
PCI: IO Virt = 0x9e000000
PCI: IO 0x0 -> 0xffffff
MPC86xx HPCN board from Freescale Semiconductor
arch: exit
Zone PFN ranges:
DMA 0 -> 131072
Normal 131072 -> 131072
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 131072
Built 1 zonelists in Zone order. Total pages: 130048
Kernel command line: root=/dev/nfs rw
nfsroot=172.30.222.1:/data/home/pub/taurus10
ip=172.30.222.10:172.30.222.1:172.30.222.1:255.255.255.0:taurus:eth2:off
console=ttyS0,115200
mpic: Setting up MPIC " MPIC " version 1.2 at d4040000, max 2 CPUs
mpic: ISU size: 88, shift: 7, mask: 7f
mpic: Initializing for 88 sources
PID hash table entries: 2048 (order: 11, 8192 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 515328k/524288k available (2712k kernel code, 8620k reserved, 144k
data, 140k bss, 136k init)
Mount-cache hash table entries: 512
====== bus.c -> registering device: ID = 'platform'
NET: Registered protocol family 16
====== bus.c -> registering device: ID = 'vtcon0'
====== bus.c -> registering device: ID = 'fsl-gianfar_mdio.35'
====== bus.c -> registering device: ID = 'fsl-gianfar.1'
====== bus.c -> registering device: ID = 'fsl-gianfar.2'
====== bus.c -> registering device: ID = 'fsl-gianfar.3'
====== bus.c -> registering device: ID = 'fsl-gianfar.4'
====== bus.c -> registering device: ID = 'fsl-i2c.1'
====== bus.c -> registering device: ID = 'fsl-i2c.2'
====== bus.c -> registering device: ID = 'fsl-hydra.1'
PCI: Probing PCI hardware
====== bus.c -> registering device: ID = 'pci0000:00'
PCI: 0000:00:00.0: class b20 doesn't match header type 01. Ignoring class.
PCI: Transparent bridge - 0000:00:00.0
====== bus.c -> registering device: ID = '0000:00:00.0'
====== bus.c -> registering device: ID = '0000:01:00.0'
====== bus.c -> registering device: ID = '0000:02:01.0'
====== bus.c -> registering device: ID = '0000:02:02.0'
====== bus.c -> registering device: ID = 'pci0001:05'
PCI: 0001:05:00.0: class b20 doesn't match header type 01. Ignoring class.
PCI: Transparent bridge - 0001:05:00.0
====== bus.c -> registering device: ID = '0001:05:00.0'
====== bus.c -> registering device: ID = '0001:06:00.0'
====== bus.c -> registering device: ID = '0001:07:01.0'
====== bus.c -> registering device: ID = '0001:07:02.0'
====== bus.c -> registering device: ID = '0001:07:03.0'
====== bus.c -> registering device: ID = '0001:09:00.0'
====== bus.c -> registering device: ID = '0001:0a:04.0'
====== bus.c -> registering device: ID = '0001:0a:04.1'
====== bus.c -> registering device: ID = '0001:0a:04.2'
Res: 0xC02F5040
Start: 0x0
End: 0xFFFFFF
Name: /soc8641 at d4000000/pcie at 8000
Flags: 0x100
Par: 0xC02AB2A4
Start: 0x0
End: 0xFFFFFFFF
Name: PCI IO
Flags: 0x100
PCI: bridge rsrc 0..ffffff (100), parent c02ab2a4
Res: 0xC02F505C
Start: 0x40000000
End: 0x4FFFFFFF
Name: /soc8641 at d4000000/pcie at 8000
Flags: 0x200
Par: 0xC02AB2C0
Start: 0x0
End: 0xFFFFFFFF
Name: PCI mem
Flags: 0x200
PCI: bridge rsrc 40000000..4fffffff (200), parent c02ab2c0
Res: 0xDFFE32C8
Start: 0x0
End: 0xFFFFFF
Name: PCI Bus #01
Flags: 0x100
Par: 0xC02F5040
Start: 0x0
End: 0xFFFFFF
Name: /soc8641 at d4000000/pcie at 8000
Flags: 0x100
PCI: bridge rsrc 0..ffffff (100), parent c02f5040
Res: 0xDFFE32E4
Start: 0x40000000
End: 0x4FFFFFFF
Name: PCI Bus #01
Flags: 0x200
Par: 0xC02F505C
Start: 0x40000000
End: 0x4FFFFFFF
Name: /soc8641 at d4000000/pcie at 8000
Flags: 0x200
PCI: bridge rsrc 40000000..4fffffff (200), parent c02f505c
Res: 0xC02FA040
Start: 0xFF000000
End: 0xFFFFFFFF
Name: /soc8641 at d4000000/pcie at 9000
Flags: 0x100
Par: 0xC02AB2A4
Start: 0x0
End: 0xFFFFFFFF
Name: PCI IO
Flags: 0x100
PCI: bridge rsrc ff000000..ffffffff (100), parent c02ab2a4
Res: 0xC02FA05C
Start: 0x80000000
End: 0x8FFFFFFF
Name: /soc8641 at d4000000/pcie at 9000
Flags: 0x200
Par: 0xC02AB2C0
Start: 0x0
End: 0xFFFFFFFF
Name: PCI mem
Flags: 0x200
PCI: bridge rsrc 80000000..8fffffff (200), parent c02ab2c0
Res: 0xDFFE1360
Start: 0xFF000000
End: 0xFFFFFFFF
Name: PCI Bus #06
Flags: 0x100
Par: 0xC02FA040
Start: 0xFF000000
End: 0xFFFFFFFF
Name: /soc8641 at d4000000/pcie at 9000
Flags: 0x100
PCI: bridge rsrc ff000000..ffffffff (100), parent c02fa040
Res: 0xDFFE137C
Start: 0x80000000
End: 0x8FFFFFFF
Name: PCI Bus #06
Flags: 0x200
Par: 0xC02FA05C
Start: 0x80000000
End: 0x8FFFFFFF
Name: /soc8641 at d4000000/pcie at 9000
Flags: 0x200
PCI: bridge rsrc 80000000..8fffffff (200), parent c02fa05c
Res: 0xDFFE0AD8
Start: 0xFF000000
End: 0xFF000FFF
Name: PCI Bus #0a
Flags: 0x101
Par: 0x0
PCI: bridge rsrc ff000000..ff000fff (101), parent 00000000
PCI: Cannot allocate resource region 0 of PCI bridge 10
Res: 0xDFFE0AF4
Start: 0x0
End: 0xFFFFF
Name: PCI Bus #0a
Flags: 0x200
Par: 0x0PCI: bridge rsrc 0..fffff (200), parent 00000000
PCI: Cannot allocate resource region 1 of PCI bridge 10
Res: 0xDFFE0B10
Start: 0x0
End: 0xFFFFF
Name: PCI Bus #0a
Flags: 0x1201
Par: 0x0PCI: bridge rsrc 0..fffff (1201), parent 00000000
PCI: Cannot allocate resource region 2 of PCI bridge 10
PCI: Cannot allocate resource region 0 of device 0000:01:00.0
PCI: Cannot allocate resource region 0 of device 0001:06:00.0
PCI: Cannot allocate resource region 0 of device 0001:09:00.0
PCI: Cannot allocate resource region 0 of device 0001:0a:04.0
PCI: Cannot allocate resource region 0 of device 0001:0a:04.1
PCI: Cannot allocate resource region 0 of device 0001:0a:04.2
PCI: Failed to allocate mem resource #0:2000 at 0 for 0001:09:00.0
------------[ cut here ]------------
Kernel BUG at c028c504 [verbose debug info unavailable]
Oops: Exception in kernel mode, sig: 5 [#1]
MPC86xx HPCN
NIP: c028c504 LR: c028c504 CTR: c00115b4
REGS: dffc1e40 TRAP: 0700 Not tainted (2.6.23)
MSR: 00029032 <EE,ME,IR,DR> CR: 22008022 XER: 00000000
TASK = dfff0830[1] 'swapper' THREAD: dffc0000
GPR00: c028c504 dffc1ef0 dfff0830 fffffff4 00000001 00000001 00000000
c02d0000
GPR08: 00003379 c02ab200 00000000 c02b0000 22008022 f7fbfffc 0fffa100
00000001
GPR16: 00000001 ffffffff 007fff00 c02a0000 c02a0000 c02a0000 00000002
0ff9ea08
GPR24: c02d0000 c02d0000 000000ff c02d0000 c02d2e88 dffe0814 00000000
dffe0a14
NIP [c028c504] pcibios_assign_resources+0xb8/0xe4
LR [c028c504] pcibios_assign_resources+0xb8/0xe4
Call Trace:
[dffc1ef0] [c028c504] pcibios_assign_resources+0xb8/0xe4 (unreliable)
[dffc1f10] [c028cb24] pcibios_init+0x120/0x164
[dffc1f40] [c0284884] do_initcalls+0x58/0x20c
[dffc1fd0] [c0284afc] kernel_init+0x4c/0xa4
[dffc1ff0] [c0011580] kernel_thread+0x44/0x60
Instruction dump:
2c000000 41820018 7c0803a6 4e800021 2c030000 40820020 813f000c 552000c2
7fa3eb78 7fc4f378 901f000c 4be925c5 <0f030000> 3bde0001 3bff001c 2c1e0005
Kernel panic - not syncing: Attempted to kill init!
Rebooting in 180 seconds.
_______________________________________________________________________________________________________________________
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: <http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20080722/2551daa0/attachment-0001.htm>
More information about the Linuxppc-embedded
mailing list