1/* Xen-specific pieces of head.S, intended to be included in the right 2 place in head.S */ 3 4#ifdef CONFIG_XEN 5 6#include <linux/elfnote.h> 7#include <asm/boot.h> 8#include <xen/interface/elfnote.h> 9 10.pushsection .init.text 11ENTRY(startup_xen) 12 movl %esi,xen_start_info 13 cld 14 movl $(init_thread_union+THREAD_SIZE),%esp 15 jmp xen_start_kernel 16.popsection 17 18.pushsection .bss.page_aligned 19 .align PAGE_SIZE_asm 20ENTRY(hypercall_page) 21 .skip 0x1000 22.popsection 23 24 ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") 25 ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") 26 ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") 27 ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, .long __PAGE_OFFSET) 28 ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .long startup_xen) 29 ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long hypercall_page) 30 ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "!writable_page_tables|pae_pgdir_above_4gb") 31#ifdef CONFIG_X86_PAE 32 ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") 33#else 34 ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "no") 35#endif 36 ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic") 37 38#endif /*CONFIG_XEN */ 39