[U-Boot] [PATCH V3] net: fec_mxc: allow use with cache enabled
Eric Nelson
eric.nelson at boundarydevices.com
Wed Mar 14 20:12:10 CET 2012
On 03/13/2012 10:41 PM, Mike Frysinger wrote:
> On Wednesday 14 March 2012 01:12:38 Eric Nelson wrote:
>> Most of the PPC devices seem to have values of 16 or 32
>> for ARCH_DMA_MINALIGN, but PPC64BRIDGE and E500MC would
>> have a problem if their drivers don't implement a bounce
>> buffer because PKTALIGN< ARCH_DMA_MINALIGN.
>>
>> (see arch/powerpc/include/asm/cache.h)
>>
>> This condition is properly tested for in fec_mxc.c.
>
> so fix this in common code instead of hacking around it in individual drivers.
> seems to me that PKTALIGN should be defined to ARCH_DMA_MINALIGN and ultimately
> removed.
> -mike
Hi Mike,
I'm not in a position to test against MAKEALL, but it appears that all
architectures have cache.h and define ARCH_DMA_MINALIGN, so it should
be trivially easy to fix PKTALIGN to be at least ARCH_DMA_MINALIGN as
shown below.
PKTSIZE_ALIGN seems safe for all architectures at 1536.
Note that this will reduce the value to 16 for some PPC devices, but I
haven't found any place that this would break things.
Is this what you're after?
Are you in a position to run MAKEALL or can you advise about the
requirements?
Please advise,
Eric
~/u-boot-imx6$ git diff
diff --git a/include/net.h b/include/net.h
index e4d42c2..ff428d0 100644
--- a/include/net.h
+++ b/include/net.h
@@ -16,6 +16,7 @@
#include <commproc.h>
#endif /* CONFIG_8xx */
+#include <asm/cache.h>
#include <asm/byteorder.h> /* for nton* / ntoh* stuff */
@@ -31,7 +32,7 @@
# define PKTBUFSRX 4
#endif
-#define PKTALIGN 32
+#define PKTALIGN ARCH_DMA_MINALIGN
/* IPv4 addresses are always 32 bits in size */
typedef u32 IPaddr_t;
More information about the U-Boot
mailing list