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

Andy Fleming afleming at freescale.com
Tue Aug 7 04:09:35 EST 2007


On Aug 3, 2007, at 17:54, Morrison, Tom wrote:

> 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>;


How recent of a kernel are you using?  The current kernel assigns the  
external interrupts to be the low 12 interrupts, which would make  
your interrupt assignment wrong.

>
> 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!


Can you determine where it's hanging.  Or whether it is calling  
phy_interrupt() at all?  phy_interrupt should be disabling the  
interrupt at the PIC, and then the interrupt should be handled in a  
work queue.

Andy



More information about the Linuxppc-dev mailing list