From: till straumann <till.straum...@alumni.tu-berlin.de> Update #4344 --- bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c | 6 +++--- .../beatnik/net/if_mve/mv643xx_eth_bsdnet.c | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c index 9d23d22898..1d920df342 100644 --- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c +++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c @@ -108,10 +108,10 @@ /* Compile-time debugging features */ /* Enable paranoia assertions and checks; reduce # of descriptors to minimum for stressing */ -#define MVETH_TESTING +#undef MVETH_TESTING /* Enable debugging messages and some support routines (dump rings etc.) */ -#define MVETH_DEBUG +#undef MVETH_DEBUG /* Ring sizes */ @@ -1726,7 +1726,7 @@ register MvEthTxDesc d; mp->d_tx_t = d; mp->avail += rval; - return rval; + return mp->avail; } int diff --git a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c index 3f85e2c78a..e8819be6bf 100644 --- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c +++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c @@ -135,6 +135,7 @@ /* Enable Hardware Snooping; if this is disabled (undefined), * cache coherency is maintained by software. */ +#undef ENABLE_HW_SNOOPING /* Compile-time debugging features */ @@ -543,6 +544,8 @@ typedef uint32_t Dma_addr_t; /* stuff needed for bsdnet support */ struct mveth_bsdsupp { int oif_flags; /* old / cached if_flags */ + int tx_ring_size; + int rx_ring_size; }; struct mveth_softc { @@ -665,6 +668,9 @@ struct mveth_private *mp; } } + theMvEths[unit-1].bsd.tx_ring_size = tx_ring_size; + theMvEths[unit-1].bsd.rx_ring_size = rx_ring_size; + /* mark as used */ ifp->if_init = (void*)(-1); @@ -1172,6 +1178,7 @@ static void mveth_daemon(void *arg) struct mveth_softc *sc; struct ifnet *ifp; rtems_event_set evs; +int avail; for (;;) { rtems_bsdnet_event_receive( 7, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &evs ); evs &= 7; @@ -1211,13 +1218,10 @@ rtems_event_set evs; } } /* free tx chain */ - if ( (MV643XX_ETH_EXT_IRQ_TX_DONE & x) && BSP_mve_swipe_tx(sc->pvt) ) { + if ( (MV643XX_ETH_EXT_IRQ_TX_DONE & x) && (avail = BSP_mve_swipe_tx(sc->pvt)) > 0 ) { ifp->if_flags &= ~IFF_OACTIVE; -#warning FIXME -#ifdef BSDBSD - if ( TX_AVAILABLE_RING_SIZE(sc->pvt) == sc->pvt->avail ) + if ( sc->bsd.tx_ring_size == avail ) ifp->if_timer = 0; -#endif mveth_start(ifp); } if ( (MV643XX_ETH_IRQ_RX_DONE & x) ) -- 2.26.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel