2 * Copyright (C) 2003,2004 Eric Biederman (ebiederm@xmission.com)
3 * Copyright (C) 2014 Red Hat Inc.
5 * Author(s): Vivek Goyal <vgoyal@redhat.com>
7 * This code has been taken from kexec-tools.
9 * This source code is licensed under the GNU General Public License,
10 * Version 2. See the file COPYING for more details.
16 .globl entry64, entry64_regs
20 /* Setup a gdt that should be preserved */
23 /* load the data segments */
24 movl $0x18, %eax /* data segment */
32 leaq stack_init(%rip), %rsp
34 leaq new_cs_exit(%rip), %rax
39 /* Load the registers */
57 /* Jump to the new code... */
80 .size entry64_regs, . - entry64_regs
86 /* 0x00 unusable segment
88 * so use them as gdt ptr
90 .word gdt_end - gdt - 1
94 /* 0x10 4GB flat code segment */
95 .word 0xFFFF, 0x0000, 0x9A00, 0x00AF
97 /* 0x18 4GB flat data segment */
98 .word 0xFFFF, 0x0000, 0x9200, 0x00CF