From b44ae30b529cdd0374c8590e34d4d398adaf8b03 Mon Sep 17 00:00:00 2001 From: Maxim Baryshnikov Date: Thu, 12 May 2016 01:52:18 +0200 Subject: [PATCH] l4: bootstrap: Add some commented code for experiments with paging. --- .../server/src/ARCH-x86/crt0.S | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/l4/pkg/bootstrap_custom/server/src/ARCH-x86/crt0.S b/l4/pkg/bootstrap_custom/server/src/ARCH-x86/crt0.S index 37725ee67..91140542f 100644 --- a/l4/pkg/bootstrap_custom/server/src/ARCH-x86/crt0.S +++ b/l4/pkg/bootstrap_custom/server/src/ARCH-x86/crt0.S @@ -10,7 +10,15 @@ #include #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" @@ -32,6 +40,7 @@ start16: .code32 +.global loader_gdt loader_gdt: .quad 0 .quad 0x00cf9b000000ffff @@ -54,7 +63,23 @@ loader_pdpt: .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 @@ -239,3 +264,5 @@ _stack_seg: .space 8192 .globl _stack _stack: + + -- 2.39.2