Trying to use Device Tree...and getting continuous interrupts from attached 88e1145

Morrison, Tom tmorrison at empirix.com
Sat Aug 4 08:54:05 EST 2007


All,

Connected to eth1 (etsec2) of my mpc8548 cpu is a 88E1145 and I 
am trying to get the core functionality running with the device tree
paradigm - I know the sense of the 88E1145 is active-low for my 
mpc8548 board and have it working with an older 2.6.11++ kernel.  

I built this new kernel with the marvell driver - it seemingly 
does all the same things we did in the 2.6.11 kernel in separate 
spots...

Here is the appropriate parts of my device tree for this part of the
core...

>>		mdio at 24520 {
>>			#address-cells = <1>;
>>			#size-cells = <0>;
>>			device_type = "mdio";
>>			compatible = "gianfar";	
>>			reg = <24520 20>;
>>			phy1: ethernet-phy at 1 {
>>				interrupt-parent = <&mpic>;
>>				interrupts = <37 1>;
>>				reg = <11>;
>>				device_type = "ethernet-phy";
>>			};
>>		};	
>>		ethernet at 25000 {
>>			#address-cells = <1>;
>>			#size-cells = <0>;
>>			device_type = "network";
>>			model = "eTSEC";
>>			compatible = "gianfar";
>>			reg = <25000 1000>;
>>			local-mac-address = [ 00 00 00 00 00 00 ];
>>			interrupts = <23 2 24 2 28 2>;
>>			interrupt-parent = <&mpic>;
>>			phy-handle = <&phy1>;
>>		};
>>		mpic: pic at 40000 {
>>			clock-frequency = <0>;
>>			interrupt-controller;
>>			#address-cells = <0>;
>>			#interrupt-cells = <2>;
>>			reg = <40000 40000>;
>>			built-in;
>>			compatible = "chrp,open-pic";
>>			device_type = "open-pic";
>>                        big-endian;
>>		};

The device tree seems to be parsed OK:

>> of_irq_map_one: dev=/soc8548 at e0000000/mdio at 24520/ethernet-phy at 1,
index=0
>>  	intsize=2 intlen=2
>> of_irq_map_raw: par=/soc8548 at e0000000/pic at 40000,intspec=[0x00000037
>>  	0x00000001...],ointsize=2
>> of_irq_map_raw: ipar=/soc8548 at e0000000/pic at 40000, size=2
>> mpic: xlate (2 cells: 0x00000037 0x00000001) to line 0x37 sense 0x8

Now, that looks OK! Those are what I would expect. And when the 
mdio/phy are probed, configured, and the 88E1145 interrupt (EXT7 
(0x37H)) is enabled, the interrupt never (seemingly) gets cleared,
and basically hangs the entire box up and eventually it panics!

I don't even have an external phy(SFP) connected to this 88e1148 phy..

I am at a lost - is there something I am missing in device tree? 
Help mr. wizard (Kumar?)...

Tom



More information about the Linuxppc-dev mailing list