[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