diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2009-06-10 08:57:08 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-06-13 07:20:07 -0400 |
commit | 47e9dedb720364e0adff0e99960fa294c6161f71 (patch) | |
tree | fa5bcb532023a89fa11995e5ceca5ed5dfeabbba /arch/blackfin/mach-common/cache-c.c | |
parent | 2466ac65560ee8b7506eea3987aba9519355fd02 (diff) | |
download | linux-47e9dedb720364e0adff0e99960fa294c6161f71.tar.gz linux-47e9dedb720364e0adff0e99960fa294c6161f71.tar.bz2 linux-47e9dedb720364e0adff0e99960fa294c6161f71.zip |
Blackfin: add blackfin_invalidate_entire_icache for SMP systems
The KGDB code uses this when switching processors to make sure the icache
is in a valid state.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common/cache-c.c')
-rw-r--r-- | arch/blackfin/mach-common/cache-c.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/blackfin/mach-common/cache-c.c b/arch/blackfin/mach-common/cache-c.c index e6ab1f815123..b59ce3cb3807 100644 --- a/arch/blackfin/mach-common/cache-c.c +++ b/arch/blackfin/mach-common/cache-c.c @@ -16,9 +16,21 @@ void blackfin_invalidate_entire_dcache(void) { u32 dmem = bfin_read_DMEM_CONTROL(); - SSYNC(); bfin_write_DMEM_CONTROL(dmem & ~0xc); SSYNC(); bfin_write_DMEM_CONTROL(dmem); SSYNC(); } + +/* Invalidate the Entire Instruction cache by + * clearing IMC bit + */ +void blackfin_invalidate_entire_icache(void) +{ + u32 imem = bfin_read_IMEM_CONTROL(); + bfin_write_IMEM_CONTROL(imem & ~0x4); + SSYNC(); + bfin_write_IMEM_CONTROL(imem); + SSYNC(); +} + |