[U-Boot] [PATCH v6 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
Marek Vasut
marex at denx.de
Mon Aug 25 10:02:59 CEST 2014
On Saturday, August 23, 2014 at 02:41:50 PM, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
> Other SoCs work with the standard 32 bytes alignment.
>
> Adjust it accordingly by using 64 bytes aligment in the FEC RX DMA buffers,
> which addresses the needs from mx6solox and also works for the other SoCs.
>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> Acked-by: Stefan Roese <sr at denx.de>
> ---
> Changes since v5:
> - Add Stefan's Ack
> Changes since v4:
> - None
>
> drivers/net/fec_mxc.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 4cefda4..56178d4 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -28,6 +28,14 @@ DECLARE_GLOBAL_DATA_PTR;
> */
> #define FEC_XFER_TIMEOUT 5000
>
> +/*
> + * The standard 32-byte DMA alignment does not work on mx6solox, which
> requires + * 64-byte alignment in the DMA RX FEC buffer.
> + * Introduce the FEC_DMA_RX_MINALIGN which can cover mx6solox needs and
> also + * satisfies the alignment on other SoCs (32-bytes)
> + */
> +#define FEC_DMA_RX_MINALIGN 64
> +
> #ifndef CONFIG_MII
> #error "CONFIG_MII has to be defined!"
> #endif
> @@ -286,7 +294,7 @@ static void fec_rbd_init(struct fec_priv *fec, int
> count, int dsize) * Reload the RX descriptors with default values and wipe
> * the RX buffers.
> */
> - size = roundup(dsize, ARCH_DMA_MINALIGN);
> + size = roundup(dsize, FEC_DMA_RX_MINALIGN);
This $size here is used only by the cache flushing functions. We agreed in the
previous iterations, that the cacheline is 32b on MX6SX . This change is
pointless unless ARCH_DMA_MINALIGN != 32 on MX6SX. Is that right ?
[...]
Best regards,
Marek Vasut
More information about the U-Boot
mailing list