summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sparc64/include')
-rw-r--r--sys/sparc64/include/asi.h7
-rw-r--r--sys/sparc64/include/cache.h4
-rw-r--r--sys/sparc64/include/mcntl.h62
-rw-r--r--sys/sparc64/include/pmap.h2
-rw-r--r--sys/sparc64/include/proc.h2
5 files changed, 75 insertions, 2 deletions
diff --git a/sys/sparc64/include/asi.h b/sys/sparc64/include/asi.h
index 90dc3f3..e5769c1 100644
--- a/sys/sparc64/include/asi.h
+++ b/sys/sparc64/include/asi.h
@@ -82,7 +82,10 @@
#define ASI_DCACHE_SNOOP_TAG 0x44 /* US-III Cu */
/* Named ASI_DCUCR on US-III, but is mostly identical except for added bits. */
-#define ASI_LSU_CTL_REG 0x45
+#define ASI_LSU_CTL_REG 0x45 /* US only */
+
+#define ASI_MCNTL 0x45 /* SPARC64 only */
+#define AA_MCNTL 0x08
#define ASI_DCACHE_DATA 0x46
#define ASI_DCACHE_TAG 0x47
@@ -167,6 +170,8 @@
#define ASI_ICACHE_PRE_DECODE 0x6e /* US-I, II */
#define ASI_ICACHE_PRE_NEXT_FIELD 0x6f /* US-I, II */
+#define ASI_FLUSH_L1I 0x67 /* SPARC64 only */
+
#define ASI_BLK_AUIP 0x70
#define ASI_BLK_AIUS 0x71
diff --git a/sys/sparc64/include/cache.h b/sys/sparc64/include/cache.h
index 9c4804b..29bff69 100644
--- a/sys/sparc64/include/cache.h
+++ b/sys/sparc64/include/cache.h
@@ -113,6 +113,10 @@ extern cache_flush_t *cache_flush;
extern dcache_page_inval_t *dcache_page_inval;
extern icache_page_inval_t *icache_page_inval;
+cache_flush_t zeus_cache_flush;
+dcache_page_inval_t zeus_dcache_page_inval;
+icache_page_inval_t zeus_icache_page_inval;
+
#endif /* KERNEL */
#endif /* !LOCORE */
diff --git a/sys/sparc64/include/mcntl.h b/sys/sparc64/include/mcntl.h
new file mode 100644
index 0000000..e9483c0
--- /dev/null
+++ b/sys/sparc64/include/mcntl.h
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2010 Marius Strobl <marius@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _MACHINE_MCNTL_H
+#define _MACHINE_MCNTL_H
+
+/*
+ * Definitions for the SPARC64 V, VI, VII and VIIIfx Memory Control Register
+ */
+#define MCNTL_JPS1_TSBP (1UL << 8)
+
+#define MCNTL_RMD_SHIFT 12
+#define MCNTL_RMD_BITS 2
+#define MCNTL_RMD_MASK \
+ (((1UL << MCNTL_RMD_BITS) - 1) << MCNTL_RMD_SHIFT)
+#define MCNTL_RMD_FULL (0UL << MCNTL_RMD_SHIFT)
+#define MCNTL_RMD_1024 (2UL << MCNTL_RMD_SHIFT)
+#define MCNTL_RMD_512 (3UL << MCNTL_RMD_SHIFT)
+
+#define MCNTL_FW_FDTLB (1UL << 14)
+#define MCNTL_FW_FITLB (1UL << 15)
+#define MCNTL_NC_CACHE (1UL << 16)
+
+/* The following bits are valid for the SPARC64 VI, VII and VIIIfx only. */
+#define MCNTL_MPG_SDTLB (1UL << 6)
+#define MCNTL_MPG_SITLB (1UL << 7)
+
+/* The following bits are valid for the SPARC64 VIIIfx only. */
+#define MCNTL_HPF_SHIFT 18
+#define MCNTL_HPF_BITS 2
+#define MCNTL_HPF_MASK \
+ (((1UL << MCNTL_HPF_BITS) - 1) << MCNTL_HPF_SHIFT)
+#define MCNTL_HPF_STRONG (0UL << MCNTL_HPF_SHIFT)
+#define MCNTL_HPF_NOT (1UL << MCNTL_HPF_SHIFT)
+#define MCNTL_HPF_WEAK (2UL << MCNTL_HPF_SHIFT)
+
+#endif /* _MACHINE_MCNTL_H */
diff --git a/sys/sparc64/include/pmap.h b/sys/sparc64/include/pmap.h
index 83c8190..388f751 100644
--- a/sys/sparc64/include/pmap.h
+++ b/sys/sparc64/include/pmap.h
@@ -62,6 +62,8 @@ struct pmap {
struct tte *pm_tsb;
vm_object_t pm_tsb_obj;
u_int pm_active;
+ uint32_t pm_gen_count; /* generation count (pmap lock dropped) */
+ u_int pm_retries;
u_int pm_context[MAXCPU];
struct pmap_statistics pm_stats;
};
diff --git a/sys/sparc64/include/proc.h b/sys/sparc64/include/proc.h
index 84eaed5..3c23663 100644
--- a/sys/sparc64/include/proc.h
+++ b/sys/sparc64/include/proc.h
@@ -51,6 +51,6 @@ struct mdproc {
void *md_sigtramp;
};
-#define KINFO_PROC_SIZE 1088
+#define KINFO_PROC_SIZE 1088
#endif /* !_MACHINE_PROC_H_ */
OpenPOWER on IntegriCloud