| version 1.87, 2009/05/04 11:47:29 |
version 1.88, 2009/07/29 12:02:05 |
| Line 173 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 173 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| * Xen guest identifier and loader selection |
* Xen guest identifier and loader selection |
| */ |
*/ |
| .section __xen_guest |
.section __xen_guest |
| #ifdef XEN3 |
|
| .ascii "GUEST_OS=netbsd,GUEST_VER=3.0,XEN_VER=xen-3.0" |
.ascii "GUEST_OS=netbsd,GUEST_VER=3.0,XEN_VER=xen-3.0" |
| #if defined(DOM0OPS) || !defined(XEN_COMPAT_030001) |
#if defined(DOM0OPS) || !defined(XEN_COMPAT_030001) |
| .ascii ",VIRT_BASE=0xc0000000" /* KERNBASE */ |
.ascii ",VIRT_BASE=0xc0000000" /* KERNBASE */ |
| Line 190 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 189 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| #ifdef PAE |
#ifdef PAE |
| .ascii ",PAE=yes[extended-cr3]" |
.ascii ",PAE=yes[extended-cr3]" |
| #endif |
#endif |
| #else /* !XEN3 */ |
|
| .ascii "GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0" |
|
| #endif /* XEN3 */ |
|
| .ascii ",LOADER=generic" |
.ascii ",LOADER=generic" |
| #if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(SYMTAB_SPACE) |
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(SYMTAB_SPACE) |
| .ascii ",BSD_SYMTAB=yes" |
.ascii ",BSD_SYMTAB=yes" |
|
|
| popfl |
popfl |
| |
|
| cld |
cld |
| #ifdef XEN3 |
|
| movl %esp, %ebx # save start of available space |
movl %esp, %ebx # save start of available space |
| #else |
|
| movl %esi,%ebx # save start_info pointer |
|
| #endif |
|
| movl $_RELOC(tmpstk),%esp # bootstrap stack end location |
movl $_RELOC(tmpstk),%esp # bootstrap stack end location |
| |
|
| /* Clear BSS first so that there are no surprises... */ |
/* Clear BSS first so that there are no surprises... */ |
|
|
| addl $4,%esp |
addl $4,%esp |
| call _C_LABEL(main) |
call _C_LABEL(main) |
| |
|
| #if defined(XEN3) && !defined(XEN_COMPAT_030001) |
#if defined(XEN) && !defined(XEN_COMPAT_030001) |
| /* space for the hypercall call page */ |
/* space for the hypercall call page */ |
| #define HYPERCALL_PAGE_OFFSET 0x1000 |
#define HYPERCALL_PAGE_OFFSET 0x1000 |
| .org HYPERCALL_PAGE_OFFSET |
.org HYPERCALL_PAGE_OFFSET |
| ENTRY(hypercall_page) |
ENTRY(hypercall_page) |
| .skip 0x1000 |
.skip 0x1000 |
| #endif /* defined(XEN3) && !defined(XEN_COMPAT_030001) */ |
#endif /* defined(XEN) && !defined(XEN_COMPAT_030001) */ |
| |
|
| /* |
/* |
| * void lgdt_finish(void); |
* void lgdt_finish(void); |