[PATCH rtems 03/18] verified that we can compile with MVETH_TESTING and MVETH_DEBUG
Chris Johns
chrisj at rtems.org
Tue Mar 30 01:43:01 UTC 2021
On 30/3/21 12:27 pm, Vijay Kumar Banerjee wrote:
> From: till straumann <till.straumann at alumni.tu-berlin.de>
>
> Update #4344
> ---
> bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c | 59 +++++++++++++++----
> .../beatnik/net/if_mve/mv643xx_eth_bsdnet.c | 1 -
> 2 files changed, 47 insertions(+), 13 deletions(-)
>
> diff --git a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
> index 26fe7db9e6..9d23d22898 100644
> --- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
> +++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
> @@ -108,16 +108,10 @@
> /* Compile-time debugging features */
>
> /* Enable paranoia assertions and checks; reduce # of descriptors to minimum for stressing */
> -#undef MVETH_TESTING
> +#define MVETH_TESTING
>
> /* Enable debugging messages and some support routines (dump rings etc.) */
> -#undef MVETH_DEBUG
> -
> -/* Hack for driver development; rtems bsdnet doesn't implement detaching an interface :-(
> - * but this hack allows us to unload/reload the driver module which makes development
> - * a lot less painful.
> - */
> -#undef MVETH_DETACH_HACK
> +#define MVETH_DEBUG
Is this suppose to be enabled?
Chris
>
> /* Ring sizes */
>
> @@ -790,6 +784,15 @@ static const char *mibfmt[] = {
>
> /* forward decls + implementation for IRQ API funcs */
>
> +STATIC int
> +mveth_init_rx_desc_ring(struct mveth_private *mp);
> +
> +STATIC int
> +mveth_init_tx_desc_ring(struct mveth_private *mp);
> +
> +int
> +BSP_mve_dring_nonsync(struct mveth_private *mp);
> +
> static void mveth_isr(rtems_irq_hdl_param unit);
> static void noop(const rtems_irq_connect_data *unused) {}
> static int noop1(const rtems_irq_connect_data *unused) { return 0; }
> @@ -1747,7 +1750,7 @@ MveEthBufIter head = *it;
>
> #ifdef MVETH_TESTING
> assert( !h->buf_ptr );
> - assert( !h->mb );
> + assert( !h->u_buf );
> #endif
>
> /* Don't use the first descriptor yet because BSP_mve_swipe_tx()
> @@ -1778,7 +1781,7 @@ MveEthBufIter head = *it;
> */
> for ( l = NEXT_TXD(h); l!=d; l=NEXT_TXD(l) ) {
> #ifdef MVETH_TESTING
> - assert( l->mb == 0 );
> + assert( l->u_buf == 0 );
> #endif
> l->buf_ptr = 0;
> l->cmd_sts = 0;
> @@ -1870,7 +1873,7 @@ int frst_len;
> rval = 0;
>
> #ifdef MVETH_TESTING
> - assert(header || data);
> + assert(head_p || data_p);
> #endif
>
> needed = head_p && data_p ? 2 : 1;
> @@ -1887,7 +1890,7 @@ int frst_len;
>
> #ifdef MVETH_TESTING
> assert( !h->buf_ptr );
> - assert( !h->mb );
> + assert( !h->u_buf );
> #endif
>
> /* find the 'first' user buffer */
> @@ -2359,3 +2362,35 @@ uint32_t v;
> }
> fprintf(f, "\n");
> }
> +
> +#ifdef MVETH_DEBUG
> +/* Display/dump descriptor rings */
> +
> +/* These low-level routines need to be synchronized with
> + * any Tx/Rx threads!
> + */
> +int
> +BSP_mve_dring_nonsync(struct mveth_private *mp)
> +{
> +int i;
> +if (1) {
> +MvEthRxDesc pr;
> +printf("RX:\n");
> +
> + for (i=0, pr=mp->rx_ring; i<mp->rbuf_count; i++, pr++) {
> + printf("cnt: 0x%04x, size: 0x%04x, stat: 0x%08x, next: 0x%08x, buf: 0x%08x\n",
> + pr->byte_cnt, pr->buf_size, pr->cmd_sts, (uint32_t)pr->next_desc_ptr, pr->buf_ptr);
> + }
> +}
> +if (1) {
> +MvEthTxDesc pt;
> +printf("TX:\n");
> + for (i=0, pt=mp->tx_ring; i<mp->xbuf_count; i++, pt++) {
> + printf("cnt: 0x%04x, stat: 0x%08x, next: 0x%08x, buf: 0x%08x, mb: 0x%08x\n",
> + pt->byte_cnt, pt->cmd_sts, (uint32_t)pt->next_desc_ptr, pt->buf_ptr,
> + (uint32_t)pt->u_buf);
> + }
> +}
> + return 0;
> +}
> +#endif
> 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 2e841c5e8b..3f85e2c78a 100644
> --- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c
> +++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth_bsdnet.c
> @@ -135,7 +135,6 @@
> /* Enable Hardware Snooping; if this is disabled (undefined),
> * cache coherency is maintained by software.
> */
> -#undef ENABLE_HW_SNOOPING
>
> /* Compile-time debugging features */
>
>
More information about the devel
mailing list