[U-Boot-Users] MPC8343 PCI setup

All,
currently I'm trying to bring up a mpc8343 based system. Latest u-boot v1.3.2 is running fine.
The MPC8343 has a single 32-Bit PCI Bus running at 66MHz. Connected are a FPGA (IDSEL 11 + IRQ0) and a miniPCI Slot (IDSEL12 + IRQ1).
Unfortunately the kernel panics during/after PCI setup.
As always I expect my device tree to be wrong or at least is missing something. I startet with "mpc834x_mds.dts", removed the 2nd PCI and switched to "PowerPC,8343@0".
u-boot shows this pci node :
pci@e0008500 { cell-index = <0x00000001>; interrupt-map-mask = [00 00 f8 00 00 00 00 00 00 00 00 00 00 00 00 07]; interrupt-map = [00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 30 00 00 00 08 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 11 00 00 00 08]; interrupt-parent = <0x00000001>; interrupts = <0x00000042 0x00000008>; bus-range = <0x00000000 0x00000000>; ranges = [02 00 00 00 00 00 00 00 90 00 00 00 90 00 00 00 00 00 00 00 10 00 00 00 42 00 00 00 00 00 00 00 8 0 00 00 00 80 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 e2 00 00 00 00 00 00 00 00 10 00 00]; clock-frequency = <0x03f940aa>; #interrupt-cells = <0x00000001>; #size-cells = <0x00000002>; #address-cells = <0x00000003>; reg = <0xe0008500 0x00000100>; compatible = "fsl,mpc8349-pci"; device_type = "pci"; };
Booting the kernel :
Using mvBlueLYNX-M7 machine description Linux version 2.6.25-rc7-01000-ga1ba6f0-dirty (root@nova) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #23 PREEMPT Thu Apr 3 1 6:46:17 CEST 2008 Found initrd at 0xc3978000:0xc3c00000 console [udbg0] enabled setup_arch: bootmem mvblm7_setup_arch() Adding PCI host bridge /pci@e0008500 Found MPC83xx PCI host bridge at 0x00000000e0008500. Firmware bus number: 0->0 ->Hose at 0xc02bf000, cfg_addr=0xfdffd300,cfg_data=0xfdffd304 PCI host bridge /pci@e0008500 (primary) ranges: MEM 0x0000000090000000..0x000000009fffffff -> 0x0000000090000000 MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 Prefetch IO 0x00000000e2000000..0x00000000e20fffff -> 0x0000000000000000 Unable to handle kernel paging request for data at address 0x00000000
Call trace gives address last called function "of_device_is_compatible".
Any help is welcome !
regards, Andre Schwarz Matrix Vision
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

On 4/3/2008, "Andre Schwarz" andre.schwarz@matrix-vision.de wrote:
All,
Hi Andre and others,
currently I'm trying to bring up a mpc8343 based system. Latest u-boot v1.3.2 is running fine.
The MPC8343 has a single 32-Bit PCI Bus running at 66MHz. Connected are a FPGA (IDSEL 11 + IRQ0) and a miniPCI Slot (IDSEL12 + IRQ1).
Unfortunately the kernel panics during/after PCI setup.
Not sure if this is related. But i got strange problems with PCI after the patch "Add CONFIG_PCI_SKIP_HOST_BRIDGE config option" (55774b512fdf63c..) was added.
My symptoms where missed interrupts on sata dma in Linux. U-boot where however fine. Adding the above config solved my problems. Not really sure why i experienced this. We have no PCI bridge on our board.
/Tor

Tor Krill schrieb:
On 4/3/2008, "Andre Schwarz" andre.schwarz@matrix-vision.de wrote:
All,
Hi Andre and others,
currently I'm trying to bring up a mpc8343 based system. Latest u-boot v1.3.2 is running fine.
The MPC8343 has a single 32-Bit PCI Bus running at 66MHz. Connected are a FPGA (IDSEL 11 + IRQ0) and a miniPCI Slot (IDSEL12 + IRQ1).
Unfortunately the kernel panics during/after PCI setup.
Not sure if this is related. But i got strange problems with PCI after the patch "Add CONFIG_PCI_SKIP_HOST_BRIDGE config option" (55774b512fdf63c..) was added.
My symptoms where missed interrupts on sata dma in Linux. U-boot where however fine. Adding the above config solved my problems. Not really sure why i experienced this. We have no PCI bridge on our board.
/Tor
Tor,
thanks for your reply.
I'm also not sure if it's a PCI issue anymore ...
Kernel config has been reduced to a minimum : no PCI, no netwoking, i2c, spi ... dts has been reduced to the CPU, soc and ipic.
U-Boot fills out dtb correctly - as far as I can see.
Kernel crashes on various "of_" functions.
There's also strange messages : WARNING: Estimating decrementer frequency (not found) WARNING: Estimating processor frequency (not found)
They're coming from "generic_calibrate_decr()" in kernel/time.c.
Looks like there something basically wrong with my dtb location/processing, since the "timebase-frequency" is present and valid :
cpus { #address-cells = <0x00000001>; #size-cells = <0x00000000>; PowerPC,8343@0 { device_type = "cpu"; reg = <0x00000000>; d-cache-line-size = <0x00000020>; i-cache-line-size = <0x00000020>; d-cache-size = <0x00008000>; i-cache-size = <0x00008000>; timebase-frequency = <0x03f940aa>; bus-frequency = <0x0fe502a8>; clock-frequency = <0x17d783fc>; }; };
Any hints ?
regards, Andre
MATRIX VISION GmbH, Talstra�e 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Gesch�ftsf�hrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
participants (2)
-
Andre Schwarz
-
Tor Krill