[U-Boot] [PATCH 4/6] GRETH: Added extra RESET, this is needed if GRETH was stopped during an ethernet frame reception.
Daniel Hellstrom
daniel at gaisler.com
Wed Oct 27 10:23:35 CEST 2010
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
---
drivers/net/greth.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/net/greth.c b/drivers/net/greth.c
index cb68d45..f081855 100644
--- a/drivers/net/greth.c
+++ b/drivers/net/greth.c
@@ -152,6 +152,16 @@ int greth_init(struct eth_device *dev, bd_t * bis)
debug("greth_init\n");
+ /* Reset core */
+ GRETH_REGSAVE(®s->control, (GRETH_RESET | (greth->gb << 8) |
+ (greth->sp << 7) | (greth->fd << 4)));
+
+ /* Wait for Reset to complete */
+ while ( GRETH_REGLOAD(®s->control) & GRETH_RESET) ;
+
+ GRETH_REGSAVE(®s->control,
+ ((greth->gb << 8) | (greth->sp << 7) | (greth->fd << 4)));
+
if (!greth->rxbd_base) {
/* allocate descriptors */
--
1.5.4
More information about the U-Boot
mailing list