summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2010-10-27 17:28:43 +0100
committerDavid Howells <dhowells@redhat.com>2010-10-27 17:28:43 +0100
commit518d4bb7464dd3c04aeb23874dc360b54058c01e (patch)
treedd8d4e9106d30b3c9432def9700e2b4ec205a915
parent93c10d3d68c469c1addacbc541da5518f1de021d (diff)
downloadlinux-3.10-518d4bb7464dd3c04aeb23874dc360b54058c01e.tar.gz
linux-3.10-518d4bb7464dd3c04aeb23874dc360b54058c01e.tar.bz2
linux-3.10-518d4bb7464dd3c04aeb23874dc360b54058c01e.zip
MN10300: AM34: The current cacheflush routines operate by controlling tag regs
The current cache flush and invalidate routines operate by controlling the cache tag registers. Rename the files and add config items to select them. This makes it easier to support the use of other cache flush methods instead, such as the use of AM34's area purge registers, if available. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--arch/mn10300/mm/Kconfig.cache20
-rw-r--r--arch/mn10300/mm/Makefile5
-rw-r--r--arch/mn10300/mm/cache-flush-by-tag.S (renamed from arch/mn10300/mm/cache-flush-mn10300.S)0
-rw-r--r--arch/mn10300/mm/cache-inv-by-tag.S (renamed from arch/mn10300/mm/cache-mn10300.S)0
4 files changed, 23 insertions, 2 deletions
diff --git a/arch/mn10300/mm/Kconfig.cache b/arch/mn10300/mm/Kconfig.cache
index 56a88dd9c70..aa6ff079113 100644
--- a/arch/mn10300/mm/Kconfig.cache
+++ b/arch/mn10300/mm/Kconfig.cache
@@ -33,3 +33,23 @@ endchoice
config MN10300_CACHE_ENABLED
def_bool y if !MN10300_CACHE_DISABLED
+
+
+choice
+ prompt "CPU cache flush/invalidate method"
+ default MN10300_CACHE_MANAGE_BY_TAG
+ depends on MN10300_CACHE_ENABLED
+ help
+ This determines the method by which CPU cache flushing and
+ invalidation is performed.
+
+config MN10300_CACHE_MANAGE_BY_TAG
+ bool "Use the cache tag registers directly"
+
+endchoice
+
+config MN10300_CACHE_INV_BY_TAG
+ def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_ENABLED
+
+config MN10300_CACHE_FLUSH_BY_TAG
+ def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_WBACK
diff --git a/arch/mn10300/mm/Makefile b/arch/mn10300/mm/Makefile
index 1557277fbc5..dc4b9f0ea65 100644
--- a/arch/mn10300/mm/Makefile
+++ b/arch/mn10300/mm/Makefile
@@ -2,8 +2,9 @@
# Makefile for the MN10300-specific memory management code
#
-cacheflush-y := cache.o cache-mn10300.o
-cacheflush-$(CONFIG_MN10300_CACHE_WBACK) += cache-flush-mn10300.o
+cacheflush-y := cache.o
+cacheflush-$(CONFIG_MN10300_CACHE_INV_BY_TAG) += cache-inv-by-tag.o
+cacheflush-$(CONFIG_MN10300_CACHE_FLUSH_BY_TAG) += cache-flush-by-tag.o
cacheflush-$(CONFIG_MN10300_CACHE_DISABLED) := cache-disabled.o
diff --git a/arch/mn10300/mm/cache-flush-mn10300.S b/arch/mn10300/mm/cache-flush-by-tag.S
index c8ed1cbac10..c8ed1cbac10 100644
--- a/arch/mn10300/mm/cache-flush-mn10300.S
+++ b/arch/mn10300/mm/cache-flush-by-tag.S
diff --git a/arch/mn10300/mm/cache-mn10300.S b/arch/mn10300/mm/cache-inv-by-tag.S
index e839d0aedd6..e839d0aedd6 100644
--- a/arch/mn10300/mm/cache-mn10300.S
+++ b/arch/mn10300/mm/cache-inv-by-tag.S