summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2015-03-05 20:46:13 +0000
committermiod <miod@openbsd.org>2015-03-05 20:46:13 +0000
commitf7a56517ca307b98e3f230654c34a7574a357c78 (patch)
tree47f4298ee1b0d3fdea250058c7b165c6aaf4caf4
parentDo not use sha512-parisc for now, as it is subtly bugged - passes the sha (diff)
downloadwireguard-openbsd-f7a56517ca307b98e3f230654c34a7574a357c78.tar.xz
wireguard-openbsd-f7a56517ca307b98e3f230654c34a7574a357c78.zip
When running on a sun4d or sun4m system, have the bootblocks ask for one
more megabyte of virtual memory beyond the kernel image; this is safe to do as you can't find any such system with less than 8MB of contiguous memory. While nothing in the kernel has a need for that extra memory to be available to the kernel for its bootstrap needs, forthcoming changes (post-5.7) will need it, and these kernels won't work when booted from boot loaders prior to this change. By shipping 5.7 with updated boot blocks, we'll make upgrading to 5.7-CURRENT easier for sun4m owners, when the time comes. Crank boot blocks version. ok deraadt@
-rw-r--r--sys/arch/sparc/stand/boot/boot.c8
-rw-r--r--sys/arch/sparc/stand/common/version.c6
2 files changed, 9 insertions, 5 deletions
diff --git a/sys/arch/sparc/stand/boot/boot.c b/sys/arch/sparc/stand/boot/boot.c
index a5f80f0268d..35a41cd5a8d 100644
--- a/sys/arch/sparc/stand/boot/boot.c
+++ b/sys/arch/sparc/stand/boot/boot.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: boot.c,v 1.12 2014/03/30 19:48:04 miod Exp $ */
+/* $OpenBSD: boot.c,v 1.13 2015/03/05 20:46:13 miod Exp $ */
/* $NetBSD: boot.c,v 1.2 1997/09/14 19:27:21 pk Exp $ */
/*-
@@ -161,7 +161,7 @@ loadk(char *file, u_long *marks)
/*
* Regardless of the address where we load the kernel, we need to
* make sure it has enough valid space to use during pmap_bootstrap.
- * locore.s tries to map the 512KB following the kernel image, and
+ * locore.s tries to use the 512KB following the kernel image, and
* we need to make sure this extra room does not overwrite PROM data
* (such as the PROM page tables which are immediately below 4MB on
* most sun4c).
@@ -242,8 +242,10 @@ loadk(char *file, u_long *marks)
* breathing room after it.
*/
size = minsize + extra;
+ if (CPU_ISSUN4M || CPU_ISSUN4D)
+ size += 1024 * 1024;
if (compat != 0) {
- if (minsize + extra <= RELOC2 - LOWSTACK)
+ if (size <= RELOC2 - LOWSTACK)
size = RELOC2 - LOWSTACK;
else
compat = 0;
diff --git a/sys/arch/sparc/stand/common/version.c b/sys/arch/sparc/stand/common/version.c
index 177a2d3c4a9..a65f48c19aa 100644
--- a/sys/arch/sparc/stand/common/version.c
+++ b/sys/arch/sparc/stand/common/version.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: version.c,v 1.10 2015/01/11 18:10:33 miod Exp $ */
+/* $OpenBSD: version.c,v 1.11 2015/03/05 20:46:13 miod Exp $ */
/* $NetBSD: version.c,v 1.4 1995/09/16 23:20:39 pk Exp $ */
/*
@@ -50,6 +50,8 @@
* 2.7 /etc/random.seed support
* 2.8 Fix network boot broken on some PROM by the 2.7 changes
* 2.9 Cope with DMA transfer size limits of old sun4 PROMs
+ * 2.10 Allocate more memory beyond the kernel image on sun4d/sun4m
+ * systems to allow for larger kernel page tables
*/
-char *version = "2.9";
+char *version = "2.10";