x86: use a flat segmentation model
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 May 2013 22:39:04 +0000 (15:39 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 May 2013 22:39:04 +0000 (15:39 -0700)
commit6b9e2ee4540b94d4ad4f47f797db243be5629ba0
tree74f14d79d1991138d29687b94a1194114c230a02
parent5a5f0cb98659318c246474dfc2724e95647304c0
x86: use a flat segmentation model

This no longer uses the -KERNBASE segmentation model to fake the mapping
of KERNBASE -> 0.  Instead, we construct a single page directory with
jumbo entries to use as the KERNBASE mapping (and one for the identity
mapping of 0 -> 0).  Previously, we were using this segmentation through
the early stages of kern/src/init.c.

We also link the bootstrap code for its original location in unpaged
memory, getting rid of the confusing RELOC business.

Finally, this assumes the ability to support jumbo pages.  Previously,
the kernel would just panic during start up.  Now, those ancient x86
machines will probably just reboot.  (page fault on the second level
page table with no idt).
kern/arch/i686/entry.S
kern/arch/i686/kernel.ld