#include <l4/sys/compiler.h>
#ifdef JAILHOUSE
#include "inmate.h"
+
#define X86_CR0_PE 0x00000001
+#define X86_CR0_WP 0x00010000
+#define X86_CR0_PG 0x80000000
+
+#define X86_CR4_PSE 0x00000010
+
+#define MSR_MTRR_DEF_TYPE 0x000002ff
+#define MTRR_ENABLE 0x00000800
.code16
.section ".jh.boot", "ax"
.code32
+.global loader_gdt
loader_gdt:
.quad 0
.quad 0x00cf9b000000ffff
.globl _start
_start:
-#ifdef REALMODE_LOADING
+#ifdef REALMODE_LOADING
+ /*
+ mov %cr4,%eax
+ or $X86_CR4_PSE,%eax
+ mov %eax,%cr4
+
+ mov $loader_pdpt + FSEGMENT_BASE,%eax
+ mov %eax,%cr3
+
+ mov $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE),%eax
+ mov %eax,%cr0
+
+ movl $MSR_MTRR_DEF_TYPE,%ecx
+ rdmsr
+ or $MTRR_ENABLE,%eax
+ wrmsr
+ */
cld
cli
mov $(3 * 8), %eax
.space 8192
.globl _stack
_stack:
+
+