aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/boot
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@in.ibm.com>2007-05-02 13:27:08 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:08 -0400
commit8035d3ea78c2a61a9738c7857742370e0aa74d5c (patch)
treefad1a7d5af880f26451417b514d513640828b409 /arch/x86_64/boot
parent6a50a664ca0cfd2a487525f10cec3ff4d570b5e8 (diff)
[PATCH] x86-64: Extend bzImage protocol for relocatable bzImage
o Extend the bzImage protocol (same as i386) to allow bzImage loaders to load the protected mode kernel at non-1MB address. Now protected mode component is relocatable and can be loaded at non-1MB addresses. o As of today kdump uses it to run a second kernel from a reserved memory area. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/boot')
-rw-r--r--arch/x86_64/boot/setup.S13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/x86_64/boot/setup.S b/arch/x86_64/boot/setup.S
index 770940cc0108..deb3573c7aec 100644
--- a/arch/x86_64/boot/setup.S
+++ b/arch/x86_64/boot/setup.S
@@ -80,7 +80,7 @@ start:
80# This is the setup header, and it must start at %cs:2 (old 0x9020:2) 80# This is the setup header, and it must start at %cs:2 (old 0x9020:2)
81 81
82 .ascii "HdrS" # header signature 82 .ascii "HdrS" # header signature
83 .word 0x0204 # header version number (>= 0x0105) 83 .word 0x0205 # header version number (>= 0x0105)
84 # or else old loadlin-1.5 will fail) 84 # or else old loadlin-1.5 will fail)
85realmode_swtch: .word 0, 0 # default_switch, SETUPSEG 85realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
86start_sys_seg: .word SYSSEG 86start_sys_seg: .word SYSSEG
@@ -155,7 +155,16 @@ cmd_line_ptr: .long 0 # (Header version 0x0202 or later)
155 # low memory 0x10000 or higher. 155 # low memory 0x10000 or higher.
156 156
157ramdisk_max: .long 0xffffffff 157ramdisk_max: .long 0xffffffff
158 158kernel_alignment: .long 0x200000 # physical addr alignment required for
159 # protected mode relocatable kernel
160#ifdef CONFIG_RELOCATABLE
161relocatable_kernel: .byte 1
162#else
163relocatable_kernel: .byte 0
164#endif
165pad2: .byte 0
166pad3: .word 0
167
159trampoline: call start_of_setup 168trampoline: call start_of_setup
160 .align 16 169 .align 16
161 # The offset at this point is 0x240 170 # The offset at this point is 0x240