Hi,
Is there any changes on PCI Device tree binding has happened? Because i am trying to port linux 2.6.30 to my MPC7448 based custom board. The target is getting hanged at ethernet initialization. Also i have seen on the debug message of kernel that the PCI MEM/IO resources are not getting assigned. So when searched the reason for not assigning the PCI MEM/IO spaces. I have seen the implemetation of /linux/arch/powerpc/kernel/pci-common.c/ pci_process_bridge_OF_ranges() is some what different from the old kernels. The CPU address is taken using of_translate_address() function which is in prom_parse.c. This step is not included on the previous implementations. This particular implementation causing me problem of not finding PCI MEM/IO spaces. I have taken the dts file of arch/powerpc/boot/dts/MPC7448hpc2.dts as my base dts file and started to port for my hardware.
   Kindly let me know any changes that i need to know.
My dts file,

/ {
       model = "dpvme0447";
       compatible = "mpc74xx";
       #address-cells = <1>;
       #size-cells = <1>;

       aliases {
               ethernet0 = &enet0;
               ethernet1 = &enet1;

               serial0 = &serial0;
               serial1 = &serial1;

       };

       cpus {
               #address-cells = <1>;
               #size-cells =<0>;

               PowerPC,7...@0 {
                       device_type = "cpu";
                       reg = <0>;
                       d-cache-line-size = <0x20>;     // 32 bytes
                       i-cache-line-size = <0x20>;     // 32 bytes
d-cache-size = <0x8000>; // L1, 32K bytes i-cache-size = <0x8000>; // L1, 32K bytes timebase-frequency = <0>; // 33 MHz, from uboot
                       clock-frequency = <0>;          // From U-Boot
                       bus-frequency = <0>;            // From U-Boot
                       32-bit;
               };
       };

       memory {
               device_type = "memory";
               reg = <0x00000000 0x20000000    // DDR2   512M at 0
                      >;
       };

    tsi...@50000000 {
               #address-cells = <1>;
               #size-cells = <1>;
               device_type = "tsi-bridge";
               ranges = <0x00000000 0x50000000 0x00010000>;
               reg = <0x50000000 0x00010000>;
               assigned-addresses = <0>;
               bus-frequency = <0>;

               i...@7000 {
                       interrupt-parent = <&mpic>;
                       interrupts = <0xE 0>;
                       reg = <0x7000 0x400>;
                       device_type = "i2c";
                       compatible  = "tsi108-i2c";
               };

               MDIO: m...@6000 {
                       device_type = "mdio";
                       compatible = "tsi108-mdio";
                       reg = <0x6000 0x50>;
                       #address-cells = <1>;
                       #size-cells = <0>;

                       phy8: ethernet-...@6000 {
                               interrupt-parent = <&mpic>;
                               interrupts = <2 1>;
                               reg = <8>;
                               device_type = "ethernet-phy";
                       };

                       phy9: ethernet-...@6400 {
                               interrupt-parent = <&mpic>;
                               interrupts = <2 1>;
                               reg = <9>;
device_type = "ethernet-phy"; enet0: ether...@6200 {
                       linux,network-index = <0>;
                       #size-cells = <0>;
                       device_type = "network";
                       compatible = "tsi108-ethernet";
                       reg = <0x6000 0x200>;
                       address = [ 00 06 D2 00 00 01 ];
                       interrupts = <0x10 2>;
                       interrupt-parent = <&mpic>;
                       mdio-handle = <&MDIO>;
                       phy-handle = <&phy8>;
               };

               enet1: ether...@6600 {
                       linux,network-index = <1>;
                       #address-cells = <1>;
                       #size-cells = <0>;
                       device_type = "network";
                       compatible = "tsi108-ethernet";
                       reg = <0x6400 0x200>;
                       address = [ 00 06 D2 00 00 02 ];
                       interrupts = <0x11 2>;
                       interrupt-parent = <&mpic>;
                       mdio-handle = <&MDIO>;
                       phy-handle = <&phy9>;
               };

               serial0: ser...@7808 {
                       device_type = "serial";
                       compatible = "ns16550";
                       reg = <0x7808 0x200>;
                       clock-frequency = <0x3f6b5a00>;
                       interrupts = <0xc 0>;
                       interrupt-parent = <&mpic>;
               };

               serial1: ser...@7c08 {
                       device_type = "serial";
                       compatible = "ns16550";
                       reg = <0x7c08 0x200>;
                       clock-frequency = <0x3f6b5a00>;
                       interrupts = <0xd 0>;
                       interrupt-parent = <&mpic>;
               };
mpic: p...@7400 {
                       clock-frequency = <0>;
                       interrupt-controller;
                       #address-cells = <0>;
                       #interrupt-cells = <2>;
                       reg = <0x7400 0x400>;
                       built-in;
                       compatible = "chrp,open-pic";
                       device_type = "open-pic";
                       big-endian;
               };
               p...@1000 {
                       device_type = "pci";
                       compatible = "tsi108-pci";
                       #interrupt-cells = <1>;
                       #size-cells = <2>;
                       #address-cells = <3>;
                       reg = <0x1000 0x1000>;
                       big-endian;
                       bus-range = <0x0 0xff>;
/* RANGE_TYPE UNKNOWN PCI_ADD PROC_ADDR UNKNOWN SIZE
                        02000000 - PCIMEM
                        42000000 - PCI-MEM-PREFETCH
                        01000000 - PCIIO
                       */
ranges = <0x02000000 0x0 0xe0000000 0xe0000000 0x0 0x10000000 0x42000000 0x0 0x80000000 0x80000000 0x0 0x40000000 0x01000000 0x0 0x00000000 0xf0000000 0x0 0x00010000>;
                       clock-frequency = <0x7f28154>;
                       interrupt-parent = <&mpic>;
                       interrupts = <0x17 2>;
                       interrupt-map-mask = <0xf800 0 0 7>;
                       interrupt-map = <

                               /* IDSEL 0x11 */
                               0x0800 0x0 0x0 0x1 &RT0 0x24 0x0
                               0x0800 0x0 0x0 0x2 &RT0 0x25 0x0
                               0x0800 0x0 0x0 0x3 &RT0 0x26 0x0
                               0x0800 0x0 0x0 0x4 &RT0 0x27 0x0

                               /* IDSEL 0x12 */
                               0x1000 0x0 0x0 0x1 &RT0 0x25 0x0
                               0x1000 0x0 0x0 0x2 &RT0 0x26 0x0
                               0x1000 0x0 0x0 0x3 &RT0 0x27 0x0
                               0x1000 0x0 0x0 0x4 &RT0 0x24 0x0

                               /* IDSEL 0x13 */
                               0x1800 0x0 0x0 0x1 &RT0 0x26 0x0
                               0x1800 0x0 0x0 0x2 &RT0 0x27 0x0
                               0x1800 0x0 0x0 0x3 &RT0 0x26 0x0
                               0x1800 0x0 0x0 0x4 &RT0 0x26 0x0

                               /* IDSEL 0x14 */
                               0x2000 0x0 0x0 0x1 &RT0 0x27 0x0
                               0x2000 0x0 0x0 0x2 &RT0 0x24 0x0
                               0x2000 0x0 0x0 0x3 &RT0 0x25 0x0
                               0x2000 0x0 0x0 0x4 &RT0 0x26 0x0
                               >;

                       RT0: rou...@1180 {
                               clock-frequency = <0>;
                               interrupt-controller;
                               device_type = "pic-router";
                               #address-cells = <0>;
                               #interrupt-cells = <2>;
                               built-in;
                               big-endian;
                               interrupts = <0x17 2>;
                               interrupt-parent = <&mpic>;
                       };
               };
       };
};

Regards,
T.
                       };

               };


Panic Message that i got

------------[ cut here ]------------
Kernel BUG at c0190764 [verbose debug info unavailable]
Oops: Exception in kernel mode, sig: 5 [#1]
DPVME0447
NIP: c0190764 LR: c0190764 CTR: c014ea54
REGS: df82bd80 TRAP: 0700   Not tainted  (2.6.30)
MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 24000022  XER: 20000000
TASK = df82c000[1] 'swapper' THREAD: df82a000
GPR00: c0190764 df82be30 df82c000 0000001a 00001509 ffffffff c014e9a4 00000034 GPR08: c02f4af0 c02e9bb8 00001509 c02cf8f4 24000022 00000000 00000002 00000000 GPR16: c02c0000 00000000 00000000 00000000 00000000 0ffaa41c c0300000 00000004 GPR24: 00000000 00000000 c02f0000 c02f0000 df821030 00000000 df821000 df821300
NIP [c0190764] tsi108_open+0x68/0x9c
LR [c0190764] tsi108_open+0x68/0x9c
Call Trace:
[df82be30] [c0190764] tsi108_open+0x68/0x9c (unreliable)
[df82be50] [c01b157c] dev_open+0xac/0x11c
[df82be70] [c01b147c] dev_change_flags+0x160/0x1b4
[df82be90] [c02bd8f4] ip_auto_config+0x18c/0xe5c
[df82bf50] [c0003c8c] do_one_initcall+0x34/0x1a8
[df82bfd0] [c02a2848] kernel_init+0x9c/0x100
[df82bff0] [c0012024] kernel_thread+0x4c/0x68
Instruction dump:
7c7d1b79 40820034 80bf003c 3c60c029 7fc6f378 38632ad8 90be0028 809f0040
4be90669 3c60c029 38632b08 4be9065d <0fe00000> 48000000 80bf003c 3c60c029
---[ end trace a900fd7f842065b9 ]---
Kernel panic - not syncing: Attempted to kill init!
Rebooting in 180 seconds..

Regards,
T.

**************** CAUTION - Disclaimer *****************This email may contain 
confidential and privileged material for the
sole use of the intended recipient(s). Any review, use, retention, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. Also, email is susceptible to data corruption, interception, tampering, unauthorized amendment and viruses. We only send and receive emails on the basis that we are not liable for any such corruption, interception, tampering, amendment or viruses or any consequence thereof. *********** End of Disclaimer ***********DataPatterns ITS Group**********

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to