summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/uC5282
diff options
context:
space:
mode:
authorEric Norum <WENorum@lbl.gov>2005-04-13 19:31:26 +0000
committerEric Norum <WENorum@lbl.gov>2005-04-13 19:31:26 +0000
commit27111a79b51ab8f56bf4258022a4074df3cae29e (patch)
tree375951714a71ea125cac947361e0e20781045bae /c/src/lib/libbsp/m68k/uC5282
parentCleanup (diff)
downloadrtems-27111a79b51ab8f56bf4258022a4074df3cae29e.tar.bz2
Add some more diagnostics. Poke TDAR/RDAR only when necessary.
Diffstat (limited to 'c/src/lib/libbsp/m68k/uC5282')
-rw-r--r--c/src/lib/libbsp/m68k/uC5282/ChangeLog5
-rw-r--r--c/src/lib/libbsp/m68k/uC5282/network/network.c23
2 files changed, 23 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/m68k/uC5282/ChangeLog b/c/src/lib/libbsp/m68k/uC5282/ChangeLog
index 8e39129f8d..5bc746bc9e 100644
--- a/c/src/lib/libbsp/m68k/uC5282/ChangeLog
+++ b/c/src/lib/libbsp/m68k/uC5282/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-13 Eric Norum <norume@aps.anl.gov>
+
+ * network/network.c: Add some more diagnostics.
+ Poke TDAR/RDAR only when necessary.
+
2005-04-10 Eric Norum <norume@aps.anl.gov>
* startup/bspstart.c: Set up IRQ1* handling properly.
diff --git a/c/src/lib/libbsp/m68k/uC5282/network/network.c b/c/src/lib/libbsp/m68k/uC5282/network/network.c
index 82b7220a40..85e1a4f81a 100644
--- a/c/src/lib/libbsp/m68k/uC5282/network/network.c
+++ b/c/src/lib/libbsp/m68k/uC5282/network/network.c
@@ -1,7 +1,10 @@
/*
* RTEMS/TCPIP driver for MCF5282 Fast Ethernet Controller
*
- * TO DO: Check network stack code -- force longword alignment of all tx mbufs?
+ * TO DO: Check network stack code -- Is it possible force longword alignment
+ * of all tx mbufs? If so, the stupid
+ * realignment code in the output routine
+ * could be removed.
*/
#include <bsp.h>
@@ -358,8 +361,7 @@ fec_rxDaemon (void *arg)
/*
* Input packet handling loop
*/
- /* Indicate we have some ready buffers available */
- MCF5282_FEC_RDAR = MCF5282_FEC_RDAR_R_DES_ACTIVE;
+ MCF5282_FEC_RDAR = 0;
rxBdIndex = 0;
for (;;) {
@@ -434,7 +436,8 @@ fec_rxDaemon (void *arg)
* Reenable the buffer descriptor
*/
rxBd->status = (status & MCF5282_FEC_RxBD_W) | MCF5282_FEC_RxBD_E;
- MCF5282_FEC_RDAR = MCF5282_FEC_RDAR_R_DES_ACTIVE;
+ if ((MCF5282_FEC_RDAR & MCF5282_FEC_RDAR_R_DES_ACTIVE) == 0)
+ MCF5282_FEC_RDAR = 0;
/*
* Move to next buffer descriptor
@@ -556,7 +559,8 @@ fec_sendpacket(struct ifnet *ifp, struct mbuf *m)
| MCF5282_FEC_TxBD_TC;
if (nAdded > 1)
firstTxBd->status |= MCF5282_FEC_TxBD_R;
- MCF5282_FEC_TDAR = MCF5282_FEC_TDAR_X_DES_ACTIVE;
+ if ((MCF5282_FEC_TDAR & MCF5282_FEC_TDAR_X_DES_ACTIVE) == 0)
+ MCF5282_FEC_TDAR = 0;
sc->txBdActiveCount += nAdded;
}
break;
@@ -727,6 +731,15 @@ enet_stats(struct mcf5282_enet_struct *sc)
printf(" Tx SQE Error:%-10lu", MCF5282_FEC_IEEE_T_SQE);
printf("Tx Pause Frames:%-10lu\n", MCF5282_FEC_IEEE_T_FDXFC);
printf(" Tx Octets OK:%-10lu\n", MCF5282_FEC_IEEE_T_OCTETS_OK);
+ printf(" EIR:%8.8lx ", MCF5282_FEC_EIR);
+ printf("EIMR:%8.8lx ", MCF5282_FEC_EIMR);
+ printf("RDAR:%8.8lx ", MCF5282_FEC_RDAR);
+ printf("TDAR:%8.8lx\n", MCF5282_FEC_TDAR);
+ printf(" ECR:%8.8lx ", MCF5282_FEC_ECR);
+ printf(" RCR:%8.8lx ", MCF5282_FEC_RCR);
+ printf(" TCR:%8.8lx\n", MCF5282_FEC_TCR);
+ printf("FRBR:%8.8lx ", MCF5282_FEC_FRBR);
+ printf("FRSR:%8.8lx\n", MCF5282_FEC_FRSR);
}
static int