
Hi,
I noticed a networks problem with some of our 405EP platforms (u-boot config: PLU405). When doing tftp u-boot runs into an endless interrupt loop of the ethernet wakeup interrupt (VECNUM_EWU0).
So why is the wakeup interrupt enabled in 405gp_enet.c in general? The interrupt handler enetInt() does not care about this interrupt source at all. So when it occurs we end up in an interrupt loop. I found no hint about how to reset this interrupt in the 405EP manual.
When I do not install a handler on the wakeup interrupt source (EWU0) everything is fine. This is my current workaround.
The current 405 linux ethernet driver also does not attach to this interrupt.
I am astonished about two things:
1) The installation of the enetInt() handler for the wakeup interrupt is only done for 405EP platforms in ppc_4xx_eth_initialize():
#if defined(CONFIG_405EP) /* 405EP has one EWU interrupt */ irq_install_handler (VECNUM_EWU0, (interrupt_handler_t *) enetInt, dev); #endif
But it is not done for 405EP platforms in ppc_4xx_eth_init():
#if !defined(CONFIG_405EP) /* 405EP has one EWU interrupt */ irq_install_handler (VECNUM_EWU0 + (hw_p->devnum * 2), (interrupt_handler_t *) enetInt, dev); #endif
This seems to be strange at all.
I suppose that no one is using the wakeup mechanism and so I propose to completely remove the wakeup stuff!
2) Why the hell do we get ethernet wakeup interrupts on some of our 405EP boards :-(
So can we get rid of installing a wakeup interrupt that even does not handle the interrupt? If yes I will submit a patch.
Matthias