x86: move the kernel up to 0x2000000
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 9 Jan 2014 23:14:29 +0000 (15:14 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jan 2014 22:36:24 +0000 (14:36 -0800)
Needed this for syslinux.  We 'waste' about 32MB or so, but we actually
can reclaim that after booting if we want.  We would need to track the
end of the boot area (which still starts at 0x10000), and then could
just free the pages up to 0x2000000.

kern/arch/x86/kernel32.ld
kern/arch/x86/kernel64.ld

index 87e4a11..abd80a6 100644 (file)
@@ -15,6 +15,10 @@ SECTIONS
                *(.boottext .bootdata)
        }
 
+       /* Needed this for syslinux, which was sitting around 16MB phys.  This just
+        * jumps us forward to the 32MB mark, both physically and virtually. */
+       . = 0x02000000;
+
        /* Link the main kernel for the space after entry + KERNBASE.  We'll still
         * load it adjacent in physical memory */
        . += KERNBASE;
index 04aa5e7..a467345 100644 (file)
@@ -18,6 +18,10 @@ SECTIONS
                *(.boottext .bootdata)
        }
 
+       /* Needed this for syslinux, which was sitting around 16MB phys.  This just
+        * jumps us forward to the 32MB mark, both physically and virtually. */
+       . = 0x02000000;
+
        /* Link the main kernel for the space after entry + KERN_LOAD_ADDR.  We'll
         * still load it adjacent in physical memory */
        . += KERN_LOAD_ADDR;