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