summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Estevam <[email protected]>2013-09-17 23:13:10 -0300
committerStefano Babic <[email protected]>2013-09-20 17:55:37 +0200
commitfd37f195cacc068ad4c070dd794643fcb25ef21a (patch)
tree517c178c74e02b31866618de48d658806fd52f6e
parent1d585241264e5bf465e398cde4cc6c4e42c0a27e (diff)
net: fec_mxc: Fix timeouts during tftp transfer
Performing tftp transfers on mx28 results in random timeouts. Hector Palacios and Robert Hodaszi analyzed the root cause being related to the wrong alignment of the 'buff' buffer inside fec_recv(). Benoît Thébaudeau provided an excellent analysis of the alignment bug that is present on older versions, such as GCC 4.5.4: http://marc.info/?l=u-boot&m=137942904906131&w=2 Use ALLOC_CACHE_ALIGN_BUFFER() to avoid alignment issues from older GCC versions. Reported-by: Hector Palacios <[email protected]> Tested-by: Oliver Metz <[email protected]> Tested-by: Hector Palacios <[email protected]> Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Marek Vasut <[email protected]> Tested-by: Marek Vasut <[email protected]>
-rw-r--r--drivers/net/fec_mxc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 210ef02df53..107cd6ecc5c 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