]> rtime.felk.cvut.cz Git - l4.git/commitdiff
l4: bootstrap: Add some commented code for experiments with paging.
authorMaxim Baryshnikov <barysmax@fel.cvut.cz>
Wed, 11 May 2016 23:52:18 +0000 (01:52 +0200)
committerMaxim Baryshnikov <barysmax@fel.cvut.cz>
Wed, 11 May 2016 23:52:18 +0000 (01:52 +0200)
l4/pkg/bootstrap_custom/server/src/ARCH-x86/crt0.S

index 37725ee67303fa79de3cf54dfd9e98ee2d678885..91140542fb43c8c3e6a2b63d2261bbc21aef9f57 100644 (file)
 #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"
@@ -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:
+
+