MPC5200 PCI Issues

Tobias Knutsson tobias.knutsson at gmail.com
Thu Feb 5 03:53:32 EST 2009


I am currently trying to get an MPC5200-based board to run Linux
2.6.28. Most of the devices are working, however i have some issues
with the PCI-bus. More precisely, the issue is that all of
the cards' IO-regions are mapped to address 0x0.

In my device tree I have the following:

       pci at f0000d00 {
               #interrupt-cells = <1>;
               #size-cells = <2>;
               #address-cells = <3>;
               device_type = "pci";
               compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci";
               reg = <0xf0000d00 0x100>;
               interrupt-map-mask = <0xf800 0 0 7>;
               interrupt-map = <0xb000 0 0 1 &mpc5200_pic 0 0 3 // MPC5200
                                0xb000 0 0 2 &mpc5200_pic 0 0 3
                                0xb000 0 0 3 &mpc5200_pic 0 0 3
                                0xb000 0 0 4 &mpc5200_pic 0 0 3

                                0xb800 0 0 1 &mpc5200_pic 1 1 3 // c64x0
                                0xb800 0 0 2 &mpc5200_pic 1 1 3
                                0xb800 0 0 3 &mpc5200_pic 1 1 3
                                0xb800 0 0 4 &mpc5200_pic 1 1 3

                                0xc000 0 0 1 &mpc5200_pic 1 1 3 // c64x1
                                0xc000 0 0 2 &mpc5200_pic 1 1 3
                                0xc000 0 0 3 &mpc5200_pic 1 1 3
                                0xc000 0 0 4 &mpc5200_pic 1 1 3

                                0xc800 0 0 1 &mpc5200_pic 1 1 3 // c64x2
                                0xc800 0 0 2 &mpc5200_pic 1 1 3
                                0xc800 0 0 3 &mpc5200_pic 1 1 3
                                0xc800 0 0 4 &mpc5200_pic 1 1 3

                                0xd000 0 0 1 &mpc5200_pic 1 1 3 // c64x3
                                0xd000 0 0 2 &mpc5200_pic 1 1 3
                                0xd000 0 0 3 &mpc5200_pic 1 1 3
                                0xd000 0 0 4 &mpc5200_pic 1 1 3

                                0xd800 0 0 1 &mpc5200_pic 1 1 3 // c64x4
                                0xd800 0 0 2 &mpc5200_pic 1 1 3
                                0xd800 0 0 3 &mpc5200_pic 1 1 3
                                0xd800 0 0 4 &mpc5200_pic 1 1 3>;

               clock-frequency = <0x1e84800>;  //<0>; // From boot loader
               interrupts = <2 8 0 2 9 0 2 10 0>;
               interrupt-parent = <&mpc5200_pic>;
               bus-range = <0 0>;
               ranges = <0x02000000 0 0x50000000 0x50000000 0 0x10000000
                         0x01000000 0 0x00000000 0x60000000 0 0x01000000>;
       };

The cards' memory regions are mapped out fine to different addresses
in the 0x50000000-0x60000000 range. However, the IO regions are all mapped
to zero.

Do you have any idea on what could be wrong or in which direction I
should be looking?


-- 

Hälsningar/Regards
Tobias Knutsson



More information about the Linuxppc-dev mailing list