2 * Jailhouse, a Linux-based partitioning hypervisor
4 * Copyright (c) Siemens AG, 2013
7 * Jan Kiszka <jan.kiszka@siemens.com>
9 * This work is licensed under the terms of the GNU GPL, version 2. See
10 * the COPYING file in the top-level directory.
15 #define X86_CR0_PE 0x00000001
16 #define X86_CR0_WP 0x00010000
17 #define X86_CR0_PG 0x80000000
19 #define X86_CR4_PAE 0x00000020
21 #define MSR_EFER 0xc0000080
22 #define EFER_LME 0x00000100
24 #define MSR_MTRR_DEF_TYPE 0x000002ff
25 #define MTRR_ENABLE 0x00000800
28 .section ".boot", "ax"
35 .section ".startup", "ax"
44 ljmpl $INMATE_CS32,$start32 + FSEGMENT_BASE
53 mov $pml4 + FSEGMENT_BASE,%eax
56 movl $MSR_MTRR_DEF_TYPE,%ecx
66 mov $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE),%eax
69 ljmpl $INMATE_CS64,$start64 + FSEGMENT_BASE
91 .quad 0x00c09b000000ffff
92 .quad 0x00af9b000000ffff
95 .short gdt_ptr - gdt - 1
96 .long gdt + FSEGMENT_BASE
100 .quad pdpt + FSEGMENT_BASE + 0x003
104 .quad pd + FSEGMENT_BASE + 0x003
108 .quad 0x0000000000000083