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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox