diff options
author | Vivek Goyal <vgoyal@in.ibm.com> | 2007-05-02 13:27:08 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-05-02 13:27:08 -0400 |
commit | 8035d3ea78c2a61a9738c7857742370e0aa74d5c (patch) | |
tree | fad1a7d5af880f26451417b514d513640828b409 /arch/x86_64 | |
parent | 6a50a664ca0cfd2a487525f10cec3ff4d570b5e8 (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')
-rw-r--r-- | arch/x86_64/boot/setup.S | 13 |
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) |
85 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG | 85 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG |
86 | start_sys_seg: .word SYSSEG | 86 | start_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 | ||
157 | ramdisk_max: .long 0xffffffff | 157 | ramdisk_max: .long 0xffffffff |
158 | 158 | kernel_alignment: .long 0x200000 # physical addr alignment required for | |
159 | # protected mode relocatable kernel | ||
160 | #ifdef CONFIG_RELOCATABLE | ||
161 | relocatable_kernel: .byte 1 | ||
162 | #else | ||
163 | relocatable_kernel: .byte 0 | ||
164 | #endif | ||
165 | pad2: .byte 0 | ||
166 | pad3: .word 0 | ||
167 | |||
159 | trampoline: call start_of_setup | 168 | trampoline: 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 |