summaryrefslogtreecommitdiff
path: root/arch/blackfin
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-06-04 16:15:38 -0400
committerMike Frysinger <vapier@gentoo.org>2010-07-13 17:50:52 -0400
commitbbf4fbb6cc3d1384a9008f1772aa157c4809df3a (patch)
treebbd4ce4c9a8d96db2e5f57d63577b859b696ea3b /arch/blackfin
parentb14fff8dce55e474c2de47d1722e3ae58546f5c4 (diff)
downloadu-boot-imx-bbf4fbb6cc3d1384a9008f1772aa157c4809df3a.zip
u-boot-imx-bbf4fbb6cc3d1384a9008f1772aa157c4809df3a.tar.gz
u-boot-imx-bbf4fbb6cc3d1384a9008f1772aa157c4809df3a.tar.bz2
Blackfin: bf561: use DMA for Core B L1 regions
The L1 regions of Core B are not directly accessible from Core A, so we need to use DMA to get at them. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/include/asm/blackfin_local.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/blackfin/include/asm/blackfin_local.h b/arch/blackfin/include/asm/blackfin_local.h
index 3fd34b3..48f793a 100644
--- a/arch/blackfin/include/asm/blackfin_local.h
+++ b/arch/blackfin/include/asm/blackfin_local.h
@@ -75,7 +75,15 @@ extern void blackfin_dcache_flush_invalidate_range(const void *, const void *);
* regions can only be accessed via DMA, so if the address in question is in
* that region, make sure we attempt to DMA indirectly.
*/
-# define addr_bfin_on_chip_mem(addr) (((unsigned long)(addr) & 0xFFF00000) == 0xFFA00000)
+# ifdef __ADSPBF561__
+ /* Core B regions all need dma from Core A */
+# define addr_bfin_on_chip_mem(addr) \
+ ((((unsigned long)(addr) & 0xFFF00000) == 0xFFA00000) || \
+ (((unsigned long)(addr) & 0xFFC00000) == 0xFF400000))
+# else
+# define addr_bfin_on_chip_mem(addr) \
+ (((unsigned long)(addr) & 0xFFF00000) == 0xFFA00000)
+# endif
# include <asm/system.h>