diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-24 03:01:01 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-24 03:05:31 +0100 |
commit | c74adfecd0b21ea84f7e98629549f7489c78edc9 (patch) | |
tree | 5680f6d3cc9436f2f7dfaecd67e6f483ecbda0db /i386/ldscript | |
parent | 0ef8bca36fdf3c57c90c948a4894c4baf5e0c3fd (diff) |
Relocate kernel at bootup
Grub is not able to map us at high addresses. We can however make it load us at
low addresses (through the linker script mapping), then use segmentation to move
ourselves to high addresses, and switch to C which uses high addresses
(through _START definition).
* i386/ldscript: Force mapping kernel at 0x100000, regardless of the value
of _START.
* i386/i386at/boothdr.S (boot_entry): Set up initial segments to project the
bootstrap linear space to high addresses.
Diffstat (limited to 'i386/ldscript')
-rw-r--r-- | i386/ldscript | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/i386/ldscript b/i386/ldscript index bbf5698..a63ff77 100644 --- a/i386/ldscript +++ b/i386/ldscript @@ -13,6 +13,7 @@ SECTIONS */ . = _START; .text : + AT (0x00100000) { *(.text.start) *(.text .stub .text.* .gnu.linkonce.t.*) |