diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-10-02 17:57:24 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-10-02 17:57:24 +0000 |
commit | aed0d244243ddcfc67a5ea117baf712d50b4d7bd (patch) | |
tree | a94a9cdca1288461c15d316a0816c06e9c87b84e /sys | |
parent | 42d38499b376ca9066c18b7918a2990055df1920 (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')
-rw-r--r-- | sys/arch/alpha/conf/ld.script | 19 | ||||
-rw-r--r-- | sys/arch/alpha/include/param.h | 4 |
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) |