From aa9f3bffbd52f683e3e868a0a7231e0121a62bf7 Mon Sep 17 00:00:00 2001 From: robertmh Date: Sun, 8 Mar 2009 12:46:27 +0000 Subject: [PATCH] 2009-03-08 Robert Millan Make loader/i386/linux.c usable on i386-pc again. * kern/i386/pc/init.c (grub_machine_init): Disable addition of low memory to heap. * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove `#error' stanza. --- ChangeLog | 9 +++++++++ kern/i386/pc/init.c | 5 +++++ loader/i386/linux.c | 5 ++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2add04029..150e6d526 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-03-08 Robert Millan + + Make loader/i386/linux.c usable on i386-pc again. + + * kern/i386/pc/init.c (grub_machine_init): Disable addition of low + memory to heap. + * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove + `#error' stanza. + 2009-03-07 Bean * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd diff --git a/kern/i386/pc/init.c b/kern/i386/pc/init.c index c604e9352..1d6d22f96 100644 --- a/kern/i386/pc/init.c +++ b/kern/i386/pc/init.c @@ -148,10 +148,15 @@ grub_machine_init (void) grub_gate_a20 (1); #endif +/* FIXME: This prevents loader/i386/linux.c from using low memory. When our + heap implements support for requesting a chunk in low memory, this should + no longer be a problem. */ +#if 0 /* Add the lower memory into free memory. */ if (grub_lower_mem >= GRUB_MEMORY_MACHINE_RESERVED_END) add_mem_region (GRUB_MEMORY_MACHINE_RESERVED_END, grub_lower_mem - GRUB_MEMORY_MACHINE_RESERVED_END); +#endif auto int NESTED_FUNC_ATTR hook (grub_uint64_t, grub_uint64_t, grub_uint32_t); int NESTED_FUNC_ATTR hook (grub_uint64_t addr, grub_uint64_t size, grub_uint32_t type) diff --git a/loader/i386/linux.c b/loader/i386/linux.c index a5fbf041e..1c87c919f 100644 --- a/loader/i386/linux.c +++ b/loader/i386/linux.c @@ -143,9 +143,8 @@ allocate_pages (grub_size_t prot_size) real_mode_mem = 0; prot_mode_mem = 0; -#ifdef GRUB_MACHINE_PCBIOS -#error i386-pc port adds lower memory to heap, which collides with `real_mode_mem' allocation below -#endif + /* FIXME: Should request low memory from the heap when this feature is + implemented. */ auto int NESTED_FUNC_ATTR hook (grub_uint64_t, grub_uint64_t, grub_uint32_t); int NESTED_FUNC_ATTR hook (grub_uint64_t addr, grub_uint64_t size, grub_uint32_t type)