summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/include/asm/system.h
diff options
context:
space:
mode:
authorJohn Linn2010-04-08 09:08:02 +0200
committerDavid S. Miller2010-04-13 10:33:44 +0200
commite44171f115de3dedf34064646206deb91549865f (patch)
tree94e7be7a6f9bbc6341a6915a12744ed451dcb75f /arch/microblaze/include/asm/system.h
parentnet: ll_temac: remove virt_to_bus call (diff)
downloadkernel-qcow2-linux-e44171f115de3dedf34064646206deb91549865f.tar.gz
kernel-qcow2-linux-e44171f115de3dedf34064646206deb91549865f.tar.xz
kernel-qcow2-linux-e44171f115de3dedf34064646206deb91549865f.zip
Add non-Virtex5 support for LL TEMAC driver
This patch adds support for using the LL TEMAC Ethernet driver on non-Virtex 5 platforms by adding support for accessing the Soft DMA registers as if they were memory mapped instead of solely through the DCR's (available on the Virtex 5). The patch also updates the driver so that it runs on the MicroBlaze. The changes were tested on the PowerPC 440, PowerPC 405, and the MicroBlaze platforms. Signed-off-by: John Tyner <jtyner@cs.ucr.edu> Signed-off-by: John Linn <john.linn@xilinx.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/microblaze/include/asm/system.h')
-rw-r--r--arch/microblaze/include/asm/system.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/microblaze/include/asm/system.h b/arch/microblaze/include/asm/system.h
index 59efb3fef957..48c4f0335e3f 100644
--- a/arch/microblaze/include/asm/system.h
+++ b/arch/microblaze/include/asm/system.h
@@ -12,6 +12,7 @@
#include <asm/registers.h>
#include <asm/setup.h>
#include <asm/irqflags.h>
+#include <asm/cache.h>
#include <asm-generic/cmpxchg.h>
#include <asm-generic/cmpxchg-local.h>
@@ -96,4 +97,14 @@ extern struct dentry *of_debugfs_root;
#define arch_align_stack(x) (x)
+/*
+ * MicroBlaze doesn't handle unaligned accesses in hardware.
+ *
+ * Based on this we force the IP header alignment in network drivers.
+ * We also modify NET_SKB_PAD to be a cacheline in size, thus maintaining
+ * cacheline alignment of buffers.
+ */
+#define NET_IP_ALIGN 2
+#define NET_SKB_PAD L1_CACHE_BYTES
+
#endif /* _ASM_MICROBLAZE_SYSTEM_H */