summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortill straumann <till.straumann@alumni.tu-berlin.de>2021-03-09 15:56:31 +0100
committerVijay Kumar Banerjee <vijay@rtems.org>2021-03-17 13:10:43 -0600
commit875f6d4f63bfa00a0132f9ba2c2eb2b546d499dd (patch)
tree46d0b3d9d5dc0cd621a218c0bf589120795c9ebd
parentf485401979af6b0bb0aed97e6b34fcdfaa104e74 (diff)
mv643xx_eth_bsdnet.c: use default descriptor ring size if ifconfig says 0
Update #4344
-rw-r--r--bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c39
-rw-r--r--bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c8
2 files changed, 8 insertions, 39 deletions
diff --git a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
index 1d920df342..25631d76c3 100644
--- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
+++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
@@ -113,45 +113,6 @@
/* Enable debugging messages and some support routines (dump rings etc.) */
#undef MVETH_DEBUG
-/* Ring sizes */
-
-#ifdef MVETH_TESTING
-
-/* hard and small defaults */
-#undef MV643XX_RX_RING_SIZE
-#define MV643XX_RX_RING_SIZE 2
-#undef MV643XX_TX_RING_SIZE
-#define MV643XX_TX_RING_SIZE 4
-
-#else /* MVETH_TESTING */
-
-/* Define default ring sizes, allow override from bsp.h, Makefile,... and from ifcfg->rbuf_count/xbuf_count */
-
-#ifndef MV643XX_RX_RING_SIZE
-#define MV643XX_RX_RING_SIZE 40 /* attached buffers are always 2k clusters, i.e., this
- * driver - with a configured ring size of 40 - constantly
- * locks 80k of cluster memory - your app config better
- * provides enough space!
- */
-#endif
-
-#ifndef MV643XX_TX_RING_SIZE
-/* NOTE: tx ring size MUST be > max. # of fragments / mbufs in a chain;
- * in 'TESTING' mode, special code is compiled in to repackage
- * chains that are longer than the ring size. Normally, this is
- * disabled for sake of speed.
- * I observed chains of >17 entries regularly!
- *
- * Also, TX_NUM_TAG_SLOTS (1) must be left empty as a marker, hence
- * the ring size must be > max. #frags + 1.
- */
-#define MV643XX_TX_RING_SIZE 200 /* these are smaller fragments and not occupied when
- * the driver is idle.
- */
-#endif
-
-#endif /* MVETH_TESTING */
-
/* How many instances to we support (bsp.h could override) */
#ifndef MV643XXETH_NUM_DRIVER_SLOTS
#define MV643XXETH_NUM_DRIVER_SLOTS 2
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 e8819be6bf..b3ec1542ff 100644
--- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c
+++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c
@@ -1271,6 +1271,14 @@ struct ifnet *ifp;
mveth_tid = rtems_bsdnet_newproc("MVEd", 4096, mveth_daemon, 0);
}
+ if ( 0 == ifcfg->rbuf_count ) {
+ ifcfg->rbuf_count = MV643XX_RX_RING_SIZE;
+ }
+
+ if ( 0 == ifcfg->xbuf_count ) {
+ ifcfg->xbuf_count = MV643XX_TX_RING_SIZE;
+ }
+
if ( !BSP_mve_setup( unit,
mveth_tid,
release_tx_mbuf, ifp,