Linux-kernel mailing list archive 2000-26,: Re: Linux-2.4.0-test2

# Re: Linux-2.4.0-test2

Richard Henderson (rth@twiddle.net)
Sat, 24 Jun 2000 14:56:18 -0700

- Messages sorted by: [ date ][ thread ][ subject ][ author ]
- Next message: Adam Sampson: "2.4.0-test2 requires gcc-2.95, and /usr/include/linux"
- Previous message: Ralf Baechle: "Re: weird CONFIG_PROFILE"

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii

On Sat, Jun 24, 2000 at 07:48:27PM +0000, Thorsten Kranzkowski wrote:
> Ok - it compiles well - but unfortunately it doesn't boot:

"Fixed" thus. Upgrade to aboot 0.7 for srm. I don't know if
any version of MILO honors the load address properly.

r~

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=d-2402-start

diff -ruNp linux/Documentation/Configure.help 2.4.0-2-ac1/Documentation/Configure.help
--- linux/Documentation/Configure.help Thu Jun 22 07:21:12 2000
+++ 2.4.0-2-ac1/Documentation/Configure.help Sat Jun 24 13:00:46 2000
@@ -2126,6 +2126,20 @@ CONFIG_ALPHA_SRM
If unsure, say N.
+Legacy kernel start address
+CONFIG_ALPHA_LEGACY_START_ADDRESS
+ The 2.4 kernel changed the kernel start address from 0x310000
+ to 0x810000 to make room for the Wildfire's larger SRM console.
+
+ If you're using aboot 0.7 or later, the bootloader will examine
+ the ELF headers to determine where to transfer control. Unfortunately,
+ most older bootloaders -- APB, or MILO -- hardcoded the kernel
+ start address rather than examining the ELF headers, and the result
+ is a hard lockup.
+
+ Say Y if you have a broken bootloader. Say N if you do not, or
+ if you wish to run on Wildfire.
+
Non-standard serial port support
CONFIG_SERIAL_NONSTANDARD
Say Y here if you have any non-standard serial boards -- boards
diff -ruNp linux/arch/alpha/Makefile 2.4.0-2-ac1/arch/alpha/Makefile
--- linux/arch/alpha/Makefile Wed Dec 15 10:32:47 1999
+++ 2.4.0-2-ac1/arch/alpha/Makefile Sat Jun 24 13:29:32 2000
@@ -10,7 +10,7 @@
NM := nm -B
-LINKFLAGS = -static -T arch/alpha/vmlinux.lds #-N -relax
+LINKFLAGS = -static -T arch/alpha/vmlinux.lds -N #-relax
CFLAGS := $(CFLAGS) -pipe -mno-fp-regs -ffixed-8
# Determine if we can use the BWX instructions with GAS.
@@ -90,7 +90,7 @@ endif
LIBS := $(TOPDIR)/arch/alpha/lib/lib.a $(LIBS) $(TOPDIR)/arch/alpha/lib/lib.a
-MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
+MAKEBOOT = $(MAKE) -C arch/alpha/boot
rawboot:
@$(MAKEBOOT) rawboot
@@ -109,13 +109,15 @@ srmboot:
@$(MAKEBOOT) srmboot
archclean:
- @$(MAKE) -C arch/$(ARCH)/kernel clean
+ @$(MAKE) -C arch/alpha/kernel clean
@$(MAKEBOOT) clean
+ rm -f arch/alpha/vmlinux.lds
archmrproper:
archdep:
@$(MAKEBOOT) dep
+ $(CPP) $(CPPFLAGS) -xc -P arch/alpha/vmlinux.lds.in -o arch/alpha/vmlinux.lds
bootpfile:
@$(MAKEBOOT) bootpfile
diff -ruNp linux/arch/alpha/config.in 2.4.0-2-ac1/arch/alpha/config.in
--- linux/arch/alpha/config.in Mon Jun 19 17:59:32 2000
+++ 2.4.0-2-ac1/arch/alpha/config.in Sat Jun 24 12:52:46 2000
@@ -331,7 +331,6 @@ source drivers/usb/Config.in
mainmenu_option next_comment
comment 'Kernel hacking'
-#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
tristate 'Kernel FP software completion' CONFIG_MATHEMU
else
@@ -339,4 +338,7 @@ else
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+
+bool 'Legacy kernel start address' CONFIG_ALPHA_LEGACY_START_ADDRESS
+
endmenu
diff -ruNp linux/arch/alpha/vmlinux.lds 2.4.0-2-ac1/arch/alpha/vmlinux.lds
--- linux/arch/alpha/vmlinux.lds Mon Jun 19 17:59:33 2000
+++ 2.4.0-2-ac1/arch/alpha/vmlinux.lds Wed Dec 31 16:00:00 1969
@@ -1,88 +0,0 @@
-OUTPUT_FORMAT("elf64-alpha")
-ENTRY(__start)
-SECTIONS
-{
- . = 0xfffffc0000810000;
- _text = .;
- .text : { *(.text) }
- _etext = .;
-
- /* Exception table */
- . = ALIGN(16);
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- /* Kernel symbol table */
- . = ALIGN(8);
- __start___ksymtab = .;
- __ksymtab : { *(__ksymtab) }
- __stop___ksymtab = .;
- .kstrtab : { *(.kstrtab) }
-
- /* Startup code */
- . = ALIGN(8192);
- __init_begin = .;
- .text.init : { *(.text.init) }
- .data.init : { *(.data.init) }
-
- . = ALIGN(16);
- __setup_start = .;
- .setup.init : { *(.setup.init) }
- __setup_end = .;
-
- . = ALIGN(8);
- __initcall_start = .;
- .initcall.init : { *(.initcall.init) }
- __initcall_end = .;
-
- . = ALIGN(2*8192); /* Align double page for init_task_union */
- __init_end = .;
-
- /* The initial task and kernel stack */
- init_task : { *(init_task) }
-
- /* Global data */
- _data = .;
- .data.cacheline_aligned : { *(.data.cacheline_aligned) }
- .rodata : { *(.rodata) }
- .data : { *(.data) CONSTRUCTORS }
- .got : { *(.got) }
- .sdata : { *(.sdata) }
- _edata = .;
-
- __bss_start = .;
- .sbss : { *(.sbss) *(.scommon) }
- .bss : { *(.bss) *(COMMON) }
- __bss_stop = .;
- _end = .;
-
- .mdebug 0 : { *(.mdebug) }
- .note 0 : { *(.note) }
- .comment 0 : { *(.comment) }
-
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-
- /DISCARD/ : { *(.text.exit) *(.data.exit) }
-}
diff -ruNp linux/arch/alpha/vmlinux.lds.in 2.4.0-2-ac1/arch/alpha/vmlinux.lds.in
--- linux/arch/alpha/vmlinux.lds.in Wed Dec 31 16:00:00 1969
+++ 2.4.0-2-ac1/arch/alpha/vmlinux.lds.in Sat Jun 24 14:23:59 2000
@@ -0,0 +1,96 @@
+#include <linux/config.h>
+
+OUTPUT_FORMAT("elf64-alpha")
+ENTRY(__start)
+PHDRS { kernel PT_LOAD ; }
+SECTIONS
+{
+#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
+ . = 0xfffffc0000310000;
+#else
+ . = 0xfffffc0000810000;
+#endif
+
+ _text = .;
+ .text : { *(.text) } :kernel
+ _etext = .;
+
+ /* Exception table */
+ . = ALIGN(16);
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ /* Kernel symbol table */
+ . = ALIGN(8);
+ __start___ksymtab = .;
+ __ksymtab : { *(__ksymtab) }
+ __stop___ksymtab = .;
+ .kstrtab : { *(.kstrtab) }
+
+ /* Startup code */
+ . = ALIGN(8192);
+ __init_begin = .;
+ .text.init : { *(.text.init) }
+ .data.init : { *(.data.init) }
+
+ . = ALIGN(16);
+ __setup_start = .;
+ .setup.init : { *(.setup.init) }
+ __setup_end = .;
+
+ . = ALIGN(8);
+ __initcall_start = .;
+ .initcall.init : { *(.initcall.init) }
+ __initcall_end = .;
+
+ . = ALIGN(2*8192); /* Align double page for init_task_union */
+ __init_end = .;
+
+ /* The initial task and kernel stack */
+ init_task : { *(init_task) }
+
+ /* Global data */
+ _data = .;
+ .data.cacheline_aligned : { *(.data.cacheline_aligned) }
+ .rodata : { *(.rodata) }
+ .data : { *(.data) CONSTRUCTORS }
+ .got : { *(.got) }
+ .sdata : { *(.sdata) }
+ _edata = .;
+
+ __bss_start = .;
+ .sbss : { *(.sbss) *(.scommon) }
+ .bss : { *(.bss) *(COMMON) }
+ __bss_stop = .;
+ _end = .;
+
+ .mdebug 0 : { *(.mdebug) }
+ .note 0 : { *(.note) }
+ .comment 0 : { *(.comment) }
+
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+
+ /DISCARD/ : { *(.text.exit) *(.data.exit) }
+}
diff -ruNp linux/include/asm-alpha/system.h 2.4.0-2-ac1/include/asm-alpha/system.h
--- linux/include/asm-alpha/system.h Mon Jun 19 17:59:33 2000
+++ 2.4.0-2-ac1/include/asm-alpha/system.h Sat Jun 24 13:09:46 2000
@@ -14,16 +14,17 @@
* We leave one page for the initial stack page, and one page for
* the initial process structure. Also, the console eats 3 MB for
* the initial bootloader (one of which we can reclaim later).
- * With a few other pages for various reasons, we'll use an initial
- * load address of PAGE_OFFSET+0x310000UL
*/
#define BOOT_PCB 0x20000000
#define BOOT_ADDR 0x20000000
/* Remove when official MILO sources have ELF support: */
#define BOOT_SIZE (16*1024)
-
+#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
+#define KERNEL_START_PHYS 0x300000 /* Old bootloaders hardcoded this. */
+#else
#define KERNEL_START_PHYS 0x800000 /* Wildfire has a huge console */
+#endif
#define KERNEL_START (PAGE_OFFSET+KERNEL_START_PHYS)
#define SWAPPER_PGD KERNEL_START

--9amGYk9869ThD9tj--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

- Next message: Adam Sampson: "2.4.0-test2 requires gcc-2.95, and /usr/include/linux"
- Previous message: Ralf Baechle: "Re: weird CONFIG_PROFILE"