[U-Boot] [PATCH] net: fec_mxc: Fix timeouts during tftp transfer

Hector Palacios hector.palacios at digi.com
Mon Sep 16 09:40:53 CEST 2013


On 09/16/2013 03:10 AM, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> Performing tftp transfers on mx28 results in random timeouts.
>
> Hector Palacios and Robert Hodaszi analyzed the root cause being related to the
> alignment of the 'buff' buffer inside fec_recv().
>
> GCC versions such as 4.4/4.5 are more likely to exhibit such problem.
>
> Use ALLOC_CACHE_ALIGN_BUFFER() for making the proper alignment of buffer.
>
> Reported-by: Hector Palacios <hector.palacios at digi.com>
> Tested-by: Oliver Metz <oliver at freetz.org>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
>   drivers/net/fec_mxc.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 690e572..b423ff6 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -794,7 +794,7 @@ static int fec_recv(struct eth_device *dev)
>   	uint16_t bd_status;
>   	uint32_t addr, size, end;
>   	int i;
> -	uchar buff[FEC_MAX_PKT_SIZE] __aligned(ARCH_DMA_MINALIGN);
> +	ALLOC_CACHE_ALIGN_BUFFER(uchar, buff, FEC_MAX_PKT_SIZE);
>
>   	/*
>   	 * Check if any critical events have happened
>

Tested-by: Hector Palacios <hector.palacios at digi.com>

Best regards,
--
Hector Palacios


More information about the U-Boot mailing list