aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/Kconfig
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2006-12-06 20:14:04 -0500
committerAndi Kleen <andi@basil.nowhere.org>2006-12-06 20:14:04 -0500
commit968de4f02621db35b8ae5239c8cfc6664fb872d8 (patch)
tree9388da7f18f9511e1bbfeaf934cba8dbc696e9f4 /arch/i386/Kconfig
parentfd593d12770d4a0d1ff095d44b96436c18479ee8 (diff)
[PATCH] i386: Relocatable kernel support
This patch modifies the i386 kernel so that if CONFIG_RELOCATABLE is selected it will be able to be loaded at any 4K aligned address below 1G. The technique used is to compile the decompressor with -fPIC and modify it so the decompressor is fully relocatable. For the main kernel relocations are generated. Resulting in a kernel that is relocatable with no runtime overhead and no need to modify the source code. A reserved 32bit word in the parameters has been assigned to serve as a stack so we figure out where are running. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386/Kconfig')
-rw-r--r--arch/i386/Kconfig12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index 8ff1c6fb5aa1..d588ca874bb4 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -773,6 +773,18 @@ config CRASH_DUMP
773 PHYSICAL_START. 773 PHYSICAL_START.
774 For more details see Documentation/kdump/kdump.txt 774 For more details see Documentation/kdump/kdump.txt
775 775
776config RELOCATABLE
777 bool "Build a relocatable kernel"
778 help
779 This build a kernel image that retains relocation information
780 so it can be loaded someplace besides the default 1MB.
781 The relocations tend to the kernel binary about 10% larger,
782 but are discarded at runtime.
783
784 One use is for the kexec on panic case where the recovery kernel
785 must live at a different physical address than the primary
786 kernel.
787
776config PHYSICAL_START 788config PHYSICAL_START
777 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 789 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
778 790