[U-Boot] [PATCH] net: Fix problem with 405EZ ethernet interrupt

Stefan Roese sr at denx.de
Thu Sep 10 09:11:50 CEST 2009


From: James Clough <james at rtetc.com>

On 405EZ the RX-/TX-interrupts are coalesced into one IRQ bit in the
UIC. We need to acknowledge the RX-/TX-interrupts in the
SDR0_ICINTSTAT reg as well.

This problem was introduced with commit
d1631fe1 [ppc4xx: Consolidate PPC4xx UIC defines]

Signed-off-by: James Clough <james at rtetc.com>
Signed-off-by: Stefan Roese <sr at denx.de>
---
 drivers/net/4xx_enet.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/net/4xx_enet.c b/drivers/net/4xx_enet.c
index 329eef0..9d438b5 100644
--- a/drivers/net/4xx_enet.c
+++ b/drivers/net/4xx_enet.c
@@ -1717,6 +1717,15 @@ int enetInt (struct eth_device *dev)
 				rc = 0;
 			}
 		}
+#if defined(CONFIG_405EZ)
+		/*
+		 * On 405EZ the RX-/TX-interrupts are coalesced into
+		 * one IRQ bit in the UIC. We need to acknowledge the
+		 * RX-/TX-interrupts in the SDR0_ICINTSTAT reg as well.
+		 */
+		mtsdr(SDR0_ICINTSTAT,
+		      SDR_ICRX_STAT | SDR_ICTX0_STAT | SDR_ICTX1_STAT);
+#endif  /* defined(CONFIG_405EZ) */
 	} while (serviced);
 
 	return (rc);
-- 
1.6.4.1



More information about the U-Boot mailing list