summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2013-11-01 01:32:01 +0000
committermarcel <marcel@FreeBSD.org>2013-11-01 01:32:01 +0000
commit1615b77f79dd5e3f7519b01c337d426fc66ced2d (patch)
tree707cbe1c82ea11e79c3ada9ba00faa3fd4c9c5c6 /sys/ia64
parent12021c508b2a597cdad83c39a2e54de3fa451506 (diff)
downloadFreeBSD-src-1615b77f79dd5e3f7519b01c337d426fc66ced2d.zip
FreeBSD-src-1615b77f79dd5e3f7519b01c337d426fc66ced2d.tar.gz
Use LOG2_ID_PAGE_SIZE again for the identity mapping in regions 6 & 7.
Make the default translation size the same as the PBVM page size to avoid inserting overlapping translations in the TC. That generally is very bad.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/machdep.c4
-rw-r--r--sys/ia64/ia64/mp_machdep.c4
-rw-r--r--sys/ia64/include/param.h5
3 files changed, 9 insertions, 4 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index 5373151..92bbc64c 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -716,8 +716,8 @@ ia64_init(void)
* handlers. Here we just make sure that they have the largest
* possible page size to minimise TLB usage.
*/
- ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2));
- ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2));
+ ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (LOG2_ID_PAGE_SIZE << 2));
+ ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (LOG2_ID_PAGE_SIZE << 2));
ia64_srlz_d();
/* Initialize/setup physical memory datastructures */
diff --git a/sys/ia64/ia64/mp_machdep.c b/sys/ia64/ia64/mp_machdep.c
index 74adef4..4b7bb7b 100644
--- a/sys/ia64/ia64/mp_machdep.c
+++ b/sys/ia64/ia64/mp_machdep.c
@@ -208,8 +208,8 @@ ia64_ap_startup(void)
ia64_ap_state.as_trace = 0x100;
ia64_set_rr(IA64_RR_BASE(5), (5 << 8) | (PAGE_SHIFT << 2) | 1);
- ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2));
- ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2));
+ ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (LOG2_ID_PAGE_SIZE << 2));
+ ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (LOG2_ID_PAGE_SIZE << 2));
ia64_srlz_d();
pcpup = ia64_ap_state.as_pcpu;
diff --git a/sys/ia64/include/param.h b/sys/ia64/include/param.h
index c00eb28..a260a75 100644
--- a/sys/ia64/include/param.h
+++ b/sys/ia64/include/param.h
@@ -105,6 +105,11 @@
#endif
#define KSTACK_GUARD_PAGES 0 /* pages of kstack guard; 0 disables */
+/* The default size of identity mappings in region 6 & 7. */
+#ifndef LOG2_ID_PAGE_SIZE
+#define LOG2_ID_PAGE_SIZE 16
+#endif
+
/*
* Mach derived conversion macros
*/
OpenPOWER on IntegriCloud