From: "Eric W. Biederman" For one kernel to report a crash another kernel has created we need to have 2 kernels loaded simultaneously in memory. To accomplish this the two kernels need to built to run at different physical addresses. This patch adds the CONFIG_PHYSICAL_START option to the x86 kernel so we can do just that. You need to know what you are doing and the ramifications are before changing this value, and most users won't care so I have made it depend on CONFIG_EMBEDDED bzImage kernels will work and run at a different address when compiled with this option but they will still load at 1MB. If you need a kernel loaded at a different address as well you need to boot a vmlinux. Signed-off-by: Eric Biederman Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/Kconfig | 11 +++++++++++ 25-akpm/arch/i386/boot/compressed/head.S | 7 ++++--- 25-akpm/arch/i386/boot/compressed/misc.c | 7 ++++--- 25-akpm/arch/i386/kernel/vmlinux.lds.S | 2 +- 25-akpm/include/asm-i386/page.h | 3 +++ 5 files changed, 23 insertions(+), 7 deletions(-) diff -puN arch/i386/boot/compressed/head.S~x86-config-kernel-start arch/i386/boot/compressed/head.S --- 25/arch/i386/boot/compressed/head.S~x86-config-kernel-start 2005-01-23 14:47:14.811945408 -0800 +++ 25-akpm/arch/i386/boot/compressed/head.S 2005-01-23 14:47:14.820944040 -0800 @@ -25,6 +25,7 @@ #include #include +#include .globl startup_32 @@ -74,7 +75,7 @@ startup_32: popl %esi # discard address popl %esi # real mode pointer xorl %ebx,%ebx - ljmp $(__BOOT_CS), $0x100000 + ljmp $(__BOOT_CS), $__PHYSICAL_START /* * We come here, if we were loaded high. @@ -99,7 +100,7 @@ startup_32: popl %ecx # lcount popl %edx # high_buffer_start popl %eax # hcount - movl $0x100000,%edi + movl $__PHYSICAL_START,%edi cli # make sure we don't get interrupted ljmp $(__BOOT_CS), $0x1000 # and jump to the move routine @@ -124,5 +125,5 @@ move_routine_start: movsl movl %ebx,%esi # Restore setup pointer xorl %ebx,%ebx - ljmp $(__BOOT_CS), $0x100000 + ljmp $(__BOOT_CS), $__PHYSICAL_START move_routine_end: diff -puN arch/i386/boot/compressed/misc.c~x86-config-kernel-start arch/i386/boot/compressed/misc.c --- 25/arch/i386/boot/compressed/misc.c~x86-config-kernel-start 2005-01-23 14:47:14.813945104 -0800 +++ 25-akpm/arch/i386/boot/compressed/misc.c 2005-01-23 14:47:14.821943888 -0800 @@ -14,6 +14,7 @@ #include #include