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
25 .section ".boot", "ax"
30 .section ".startup", "ax"
39 ljmpl $INMATE_CS32,$start32 + FSEGMENT_BASE
48 mov $pml4 + FSEGMENT_BASE,%eax
56 mov $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE),%eax
59 ljmpl $INMATE_CS64,$start64 + FSEGMENT_BASE
81 .quad 0x00c09b000000ffff
82 .quad 0x00af9b000000ffff
85 .short gdt_ptr - gdt - 1
86 .long gdt + FSEGMENT_BASE
90 .quad pdpt + FSEGMENT_BASE + 0x003
94 .quad pd + FSEGMENT_BASE + 0x003
98 .quad 0x0000000000000083