aboutsummaryrefslogtreecommitdiff
path: root/sys/sparc64/sparc64/cache.c
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2003-04-13 21:54:58 +0000
committerJake Burkholder <jake@FreeBSD.org>2003-04-13 21:54:58 +0000
commit50e24eb62819f3997ed1c5bf949a4a0e3f52097c (patch)
tree3e95e9ec9c040078e79c412e7276c6a9fa539d07 /sys/sparc64/sparc64/cache.c
parent073834e69beaadd8c582c40906bd76137bd6092b (diff)
downloadsrc-50e24eb62819f3997ed1c5bf949a4a0e3f52097c.tar.gz
src-50e24eb62819f3997ed1c5bf949a4a0e3f52097c.zip
- Move the routine for flushing all user mappings from the tlb from pmap to
the cpu dependent files. It will need to be done differently for USIII. - Simplify the logic for detecting context rollovers. Instead of dealing with it when the next context switch would cause the context numbers to rollover, deal with it when they actually do rollover. - Move some things around in cpu_switch so that we only do 1 membar #Sync when switching address space, instead of 2. - Detect kernel threads by comparing the new vm space to vmspace0, instead if checking if the tlb context is 0. - Removed some debug code.
Notes
Notes: svn path=/head/; revision=113453
Diffstat (limited to 'sys/sparc64/sparc64/cache.c')
-rw-r--r--sys/sparc64/sparc64/cache.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/cache.c b/sys/sparc64/sparc64/cache.c
index a3e1a1c953c1..dad13f129e32 100644
--- a/sys/sparc64/sparc64/cache.c
+++ b/sys/sparc64/sparc64/cache.c
@@ -81,6 +81,7 @@
#include <dev/ofw/openfirm.h>
#include <machine/cache.h>
+#include <machine/tlb.h>
#include <machine/ver.h>
struct cacheinfo cache;
@@ -126,8 +127,10 @@ cache_init(phandle_t node)
if (cpu_impl >= CPU_IMPL_ULTRASPARCIII) {
dcache_page_inval = cheetah_dcache_page_inval;
icache_page_inval = cheetah_icache_page_inval;
+ tlb_flush_user = cheetah_tlb_flush_user;
} else {
dcache_page_inval = spitfire_dcache_page_inval;
icache_page_inval = spitfire_icache_page_inval;
+ tlb_flush_user = spitfire_tlb_flush_user;
}
}