All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V3] net: fec_mxc: allow use with cache enabled
Date: Wed, 14 Mar 2012 02:46:50 +0100	[thread overview]
Message-ID: <201203140246.51239.marex@denx.de> (raw)
In-Reply-To: <1331647471-4440-1-git-send-email-eric.nelson@boundarydevices.com>

Dear Eric Nelson,

> 	ensure that transmit and receive buffers are cache-line aligned
>         invalidate cache for each packet as received
> 	update receive buffer descriptors one cache line at a time
>         flush cache before transmitting
> 
> Original patch by Marek:
> 	http://lists.denx.de/pipermail/u-boot/2012-February/117695.html
> 
> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
> 
> ---
> V2 addresses some concerns from the ML:
> 	- Use readl()/writel() instead of mapped data structure
> 	  accesses
> 	- Wrong comment style
> 	- &rbd_base[0] == rbd_base
> 	removed 'volatile' from fec_send().
> 
> V3 updates from ML (and Marek):
> 	consolidated CONFIG_FEC_DATA_ALIGNMENT and CONFIG_FEC_DESC_ALIGNMENT
> 	added cache flushes after initialization of TBD/RBD
> 
>  drivers/net/fec_mxc.c |  265
> +++++++++++++++++++++++++++++++++++-------------- drivers/net/fec_mxc.h | 
>  19 +----
>  2 files changed, 189 insertions(+), 95 deletions(-)
> 
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 1fdd071..94a3927 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -50,6 +50,24 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define	CONFIG_FEC_MXC_SWAP_PACKET
>  #endif
> 
> +#if ARCH_DMA_MINALIGN > CONFIG_SYS_CACHELINE_SIZE
> +#define CONFIG_FEC_ALIGN ARCH_DMA_MINALIGN
> +#else
> +#define CONFIG_FEC_ALIGN CONFIG_SYS_CACHELINE_SIZE
> +#endif

Check PPC and let's go with ARCH_DMA_MINALIGN

> +
> +#define RXDESC_PER_CACHELINE	(CONFIG_FEC_ALIGN/sizeof(struct fec_bd))
> +
> +/* Check various alignment issues at compile time */
> +#if ((CONFIG_FEC_ALIGN < 16) || (CONFIG_FEC_ALIGN % 16 != 0))
> +#error	"CONFIG_FEC_ALIGN must be multiple of 16!"
> +#endif
> +
> +#if ((PKTALIGN < CONFIG_FEC_ALIGN) || \
> +	(PKTALIGN % CONFIG_FEC_ALIGN != 0))
> +#error	"PKTALIGN must be multiple of CONFIG_FEC_ALIGN!"
> +#endif

We should keep these checks in case some obscure platform appears.

Otherwise, we're almost there Eric! Great work !!

Best regards,
Marek Vasut

      parent reply	other threads:[~2012-03-14  1:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <http://lists.denx.de/pipermail/u-boot/2012-March/#119442>
2012-03-13 14:04 ` [U-Boot] [PATCH V3] net: fec_mxc: allow use with cache enabled Eric Nelson
2012-03-13 14:41   ` Mike Frysinger
2012-03-13 18:42     ` Eric Nelson
2012-03-13 20:14       ` Mike Frysinger
2012-03-14  1:43         ` Marek Vasut
2012-03-14  5:12           ` Eric Nelson
2012-03-14  5:41             ` Mike Frysinger
2012-03-14 19:12               ` Eric Nelson
2012-03-14 20:33                 ` Mike Frysinger
2012-03-14 21:04                   ` Eric Nelson
2012-03-14 21:15                     ` Mike Frysinger
2012-03-14  5:45             ` Marek Vasut
2012-03-14  1:42       ` Marek Vasut
2012-03-13 15:48   ` Eric Nelson
2012-03-14  1:44     ` Marek Vasut
2012-03-14  1:46   ` Marek Vasut [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201203140246.51239.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.