diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-12-06 20:14:04 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:04 -0500 |
commit | 968de4f02621db35b8ae5239c8cfc6664fb872d8 (patch) | |
tree | 9388da7f18f9511e1bbfeaf934cba8dbc696e9f4 /include/linux | |
parent | fd593d12770d4a0d1ff095d44b96436c18479ee8 (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 'include/linux')
-rw-r--r-- | include/linux/screen_info.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h index 2925e66a6732..b02308ee7667 100644 --- a/include/linux/screen_info.h +++ b/include/linux/screen_info.h | |||
@@ -42,7 +42,8 @@ struct screen_info { | |||
42 | u16 pages; /* 0x32 */ | 42 | u16 pages; /* 0x32 */ |
43 | u16 vesa_attributes; /* 0x34 */ | 43 | u16 vesa_attributes; /* 0x34 */ |
44 | u32 capabilities; /* 0x36 */ | 44 | u32 capabilities; /* 0x36 */ |
45 | /* 0x3a -- 0x3f reserved for future expansion */ | 45 | /* 0x3a -- 0x3b reserved for future expansion */ |
46 | /* 0x3c -- 0x3f micro stack for relocatable kernels */ | ||
46 | }; | 47 | }; |
47 | 48 | ||
48 | extern struct screen_info screen_info; | 49 | extern struct screen_info screen_info; |