Allow loading old kernels by placing GDT in conventional memory.
This commit is contained in:
parent
3a310e842f
commit
5a6db38d62
2 changed files with 12 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2014-04-20 Piotr Krysiuk <piotras@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/lib/i386/relocator.c: Allow loading old kernels by placing
|
||||||
|
GDT in conventional memory.
|
||||||
|
|
||||||
2014-04-10 Colin Watson <cjwatson@ubuntu.com>
|
2014-04-10 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* util/grub.d/30_os-prober.in: Tolerate devices with no filesystem
|
* util/grub.d/30_os-prober.in: Tolerate devices with no filesystem
|
||||||
|
|
|
@ -81,10 +81,13 @@ grub_relocator32_boot (struct grub_relocator *rel,
|
||||||
void *relst;
|
void *relst;
|
||||||
grub_relocator_chunk_t ch;
|
grub_relocator_chunk_t ch;
|
||||||
|
|
||||||
err = grub_relocator_alloc_chunk_align (rel, &ch, 0,
|
/* Specific memory range due to Global Descriptor Table for use by payload
|
||||||
(0xffffffff - RELOCATOR_SIZEOF (32))
|
that we will store in returned chunk. The address range and preference
|
||||||
+ 1, RELOCATOR_SIZEOF (32), 16,
|
are based on "THE LINUX/x86 BOOT PROTOCOL" specification. */
|
||||||
GRUB_RELOCATOR_PREFERENCE_NONE,
|
err = grub_relocator_alloc_chunk_align (rel, &ch, 0x1000,
|
||||||
|
0x9a000 - RELOCATOR_SIZEOF (32),
|
||||||
|
RELOCATOR_SIZEOF (32), 16,
|
||||||
|
GRUB_RELOCATOR_PREFERENCE_LOW,
|
||||||
avoid_efi_bootservices);
|
avoid_efi_bootservices);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
Loading…
Reference in a new issue