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
prev 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.