Subversion Repositories HelenOS

Rev

Rev 1952 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1952 Rev 2014
Line 28... Line 28...
28
 
28
 
29
#include <arch/boot/boot.h>
29
#include <arch/boot/boot.h>
30
#include <arch/mm/page.h>
30
#include <arch/mm/page.h>
31
#include <arch/pm.h>
31
#include <arch/pm.h>
32
 
32
 
-
 
33
#define ELFNOTE(name, type, desctype, descval) \
33
.section __xen_guest
34
	.section .note.name; \
-
 
35
	.align 4; \
34
	.ascii "GUEST_OS=HelenOS,"
36
	.long 2f - 1f; \
35
	.ascii "XEN_VER=xen-3.0,"
37
	.long 4f - 3f; \
36
	.ascii "HYPERCALL_PAGE=0x0000,"
38
	.long type; \
37
	.ascii "LOADER=generic,"
39
	1:.asciz #name; \
-
 
40
	2:.align 4; \
38
	.ascii "FEATURES=writable_page_tables"
41
	3:desctype descval; \
39
	.byte   0
42
	4:.align 4
-
 
43
 
-
 
44
ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS,			.asciz,	"HelenOS")
-
 
45
ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,		.asciz,	RELEASE)
-
 
46
ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION,		.asciz,	"xen-3.0")
-
 
47
ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE,			.long,	PA2KA(BOOT_OFFSET))
-
 
48
ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET,		.long,	0)
-
 
49
ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,				.long,	kernel_image_start)
-
 
50
ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE,	.long,	hypercall_page)
-
 
51
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,			.asciz,	"writable_page_tables|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel")
-
 
52
ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE,			.asciz,	"no")
-
 
53
ELFNOTE(Xen, XEN_ELFNOTE_LOADER,			.asciz,	"generic")
40
 
54
 
41
.text
55
.text
42
 
56
 
43
.code32
57
.code32
44
.align 4
58
.align 4
Line 79... Line 93...
79
 
93
 
80
.global console_page
94
.global console_page
81
.org 0x2000
95
.org 0x2000
82
console_page:
96
console_page:
83
	.space PAGE_SIZE
97
	.space PAGE_SIZE
-
 
98
 
-
 
99
# Xen 3.0.3 ELF loader is somehow buggy
-
 
100
# thus this workaround
-
 
101
.global dummy_fill
-
 
102
dummy_fill:
-
 
103
	.space (1024 * 1024)