This patch makes the generic Linux loader usable on i386-pc again.  It
doesn't seem like it's badly needed to spend a bit of time and a bit of
code in adding low memory to the heap, and Vesa's work on the new memory
manager should give a proper solution to this problem.

I think in the meantime we could just not allocate low mem, assuming
nobody has a problem with that.

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."
2009-03-06  Robert Millan  <r...@aybabtu.com>

	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.

Index: kern/i386/pc/init.c
===================================================================
--- kern/i386/pc/init.c	(revision 2019)
+++ kern/i386/pc/init.c	(working copy)
@@ -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)
Index: loader/i386/linux.c
===================================================================
--- loader/i386/linux.c	(revision 2019)
+++ loader/i386/linux.c	(working copy)
@@ -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)
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to