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