summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2009-10-02 17:57:24 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2009-10-02 17:57:24 +0000
commitaed0d244243ddcfc67a5ea117baf712d50b4d7bd (patch)
treea94a9cdca1288461c15d316a0816c06e9c87b84e /sys/arch
parent42d38499b376ca9066c18b7918a2990055df1920 (diff)
Link the kernel at a higher physical address, in order to accomodate SRM
with larger footprint than the usual 2MB, as encountered on some of the most recent alpha systems. Tested on many models (DEC 3000, PC164, AS500, ES40, and more)
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/alpha/conf/ld.script19
-rw-r--r--sys/arch/alpha/include/param.h4
2 files changed, 19 insertions, 4 deletions
diff --git a/sys/arch/alpha/conf/ld.script b/sys/arch/alpha/conf/ld.script
index 0c66515d575..dfb20a2dd05 100644
--- a/sys/arch/alpha/conf/ld.script
+++ b/sys/arch/alpha/conf/ld.script
@@ -1,4 +1,4 @@
-/* $OpenBSD: ld.script,v 1.1 2009/09/24 19:51:32 miod Exp $ */
+/* $OpenBSD: ld.script,v 1.2 2009/10/02 17:57:20 miod Exp $ */
/*
* Copyright (c) 2009 Miodrag Vallat.
@@ -26,7 +26,22 @@ OUTPUT_ARCH(alpha)
ENTRY(__start)
SECTIONS
{
- . = 0xfffffc0000230000;
+ /*
+ * The start address needs to be a physical address allowing for
+ * enough room for the console firmware, and the boot loader.
+ * On most alpha machines, the console fits in no more than
+ * 2MB, to which we need to add 256KB of boot blocks and the
+ * initial kernel stack.
+ * However, some of the last alpha models (*5 D and E series,
+ * *7, and G series) have much larger console sizes.
+ * The largest console encountered so far is 0x51c000 bytes long
+ * (on DS25).
+ *
+ * If you change this value, make sure to update KERNBASE in
+ * <machine/param.h> as well.
+ */
+ . = 0xfffffc0000580000;
+
.text : { *(.text .text.* .gnu.linkonce.t.*) }
PROVIDE(etext = .);
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
diff --git a/sys/arch/alpha/include/param.h b/sys/arch/alpha/include/param.h
index 721367e8939..ace9b16468c 100644
--- a/sys/arch/alpha/include/param.h
+++ b/sys/arch/alpha/include/param.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: param.h,v 1.33 2007/09/15 10:10:37 martin Exp $ */
+/* $OpenBSD: param.h,v 1.34 2009/10/02 17:57:23 miod Exp $ */
/* $NetBSD: param.h,v 1.30 2000/06/09 16:03:04 thorpej Exp $ */
/*
@@ -74,7 +74,7 @@
#define PAGE_SIZE (1 << PAGE_SHIFT)
#define PAGE_MASK (PAGE_SIZE - 1)
-#define KERNBASE 0xfffffc0000230000 /* start of kernel virtual */
+#define KERNBASE 0xfffffc0000580000 /* start of kernel virtual */
#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
#define DEV_BSIZE (1 << DEV_BSHIFT)