summaryrefslogtreecommitdiff
path: root/sys/arch/sparc64/include
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2012-08-29 20:33:17 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2012-08-29 20:33:17 +0000
commit3dedeea696f0eea7042acc587783d890538c20c5 (patch)
tree61f281656c57a76b9ad8f60c28e5107d986f5388 /sys/arch/sparc64/include
parentb5604b45f5e758b43e5114e50f575ca3de2b0168 (diff)
The low-level guts to support MTP (Multi-Threaded Processing) on the
Fujitsu SPARC64-VI and SPARC64-VII CPUs. Since the two threads on each core share the TLBs of the core we cannot enter different mappings for the same virtual address. Instead we use a scratch register to store the per-cpu pointer. This is very similar to what we do on sun4v. For now we still only attach the first thread of each SPARC64-VI/VII core since we currently don't handle the VMT (Vertical Multi-Threading) of the SPARC64-VI very well.
Diffstat (limited to 'sys/arch/sparc64/include')
-rw-r--r--sys/arch/sparc64/include/ctlreg.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/sparc64/include/ctlreg.h b/sys/arch/sparc64/include/ctlreg.h
index 43652728816..a451e2ce00f 100644
--- a/sys/arch/sparc64/include/ctlreg.h
+++ b/sys/arch/sparc64/include/ctlreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ctlreg.h,v 1.23 2009/11/30 22:59:29 kettenis Exp $ */
+/* $OpenBSD: ctlreg.h,v 1.24 2012/08/29 20:33:16 kettenis Exp $ */
/* $NetBSD: ctlreg.h,v 1.28 2001/08/06 23:55:34 eeh Exp $ */
/*
@@ -127,6 +127,8 @@
#define ASI_AFSR 0x4c /* [4u] asynchronous fault status register */
#define ASI_AFAR 0x4d /* [4u] asynchronous fault address register */
+#define ASI_SCRATCH 0x4f /* [VI] scratch registers */
+
#define ASI_ICACHE_DATA 0x66 /* [4u] diagnostic access to D-cache data RAM */
#define ASI_ICACHE_TAG 0x67 /* [4u] diagnostic access to D-cache tag RAM */
#define ASI_FLUSH_I_PAGE_PRIMARY 0x68 /* [4u] flush D-cache page using primary context */