diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-31 16:15:50 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-31 16:15:50 +0000 |
commit | 3072fef54df8b25abb624a52d0a13bdef9b74b97 (patch) | |
tree | ced584f168231f438bd5bc24e5860a86932a613f /extras/mini-os | |
parent | a6ba94a3071f2454379db3c84aee7298ca63ea61 (diff) | |
download | xen-3072fef54df8b25abb624a52d0a13bdef9b74b97.tar.gz xen-3072fef54df8b25abb624a52d0a13bdef9b74b97.tar.bz2 xen-3072fef54df8b25abb624a52d0a13bdef9b74b97.zip |
bitkeeper revision 1.825.3.18 (406aeeb6EYYfLTekemoWDRaWO8SuEQ)
highmem.c, highmem.h:
new file
Many files:
New bootstrap layout for DOM0 and for all Linux domains. Xenolinux now support CONFIG_HIGHMEM for up to 4GB allocated to a Xenolinux domain.
.del-highmem.h~c3cf3f6856a90f6:
Delete: xenolinux-2.4.25-sparse/include/asm-xen/highmem.h
elf.h:
Rename: xen/include/asm-i386/elf.h -> xen/include/xen/elf.h
.del-elf.h~57347596c85127ef:
Delete: xen/include/asm-x86_64/elf.h
Diffstat (limited to 'extras/mini-os')
-rw-r--r-- | extras/mini-os/Makefile | 11 | ||||
-rw-r--r-- | extras/mini-os/head.S | 34 |
2 files changed, 3 insertions, 42 deletions
diff --git a/extras/mini-os/Makefile b/extras/mini-os/Makefile index fc9c2bf733..d2d478ac40 100644 --- a/extras/mini-os/Makefile +++ b/extras/mini-os/Makefile @@ -24,17 +24,8 @@ hypervisor-ifs: ln -sf ../../../xen/include/hypervisor-ifs h/hypervisor-ifs $(TARGET): hypervisor-ifs head.o $(OBJS) - # Image will load at 0xC0000000. First bytes from head.o - #$(LD) -N -Ttext 0xC0000000 head.o $(OBJS) -o $@.elf $(LD) -N -T minios.lds head.o $(OBJS) -o $@.elf - # Guest OS header -- first 8 bytes are identifier 'XenGuest'. - echo -e -n 'XenGuest' >$@ - # Guest OS header -- next 4 bytes are load address (0xC0000000). - echo -e -n '\000\000\000\300' >>$@ - # Create a raw bag of bytes from the ELF image. - objcopy -O binary -R .note -R .comment $@.elf $@.raw - # Guest OS header is immediately followed by raw OS image. - cat $@.raw >>$@ + objcopy -R .note -R .comment $@.elf $@ gzip -f -9 -c $@ >$@.gz clean: diff --git a/extras/mini-os/head.S b/extras/mini-os/head.S index 5844e296c4..52eae8f818 100644 --- a/extras/mini-os/head.S +++ b/extras/mini-os/head.S @@ -1,48 +1,18 @@ #include <os.h> -/* Offsets in start_info structure */ -#define MOD_START 20 -#define MOD_LEN 24 - .globl _start, shared_info _start: cld - lss stack_start,%esp - - /* Copy any module somewhere safe before it's clobbered by BSS. */ - mov MOD_LEN(%esi),%ecx - shr $2,%ecx - jz 2f /* bail from copy loop if no module */ - - mov $_end,%edi - add MOD_LEN(%esi),%edi - mov MOD_START(%esi),%eax - add MOD_LEN(%esi),%eax -1: sub $4,%eax - sub $4,%edi - mov (%eax),%ebx - mov %ebx,(%edi) - loop 1b - mov %edi,MOD_START(%esi) - - /* Clear BSS first so that there are no surprises... */ -2: xorl %eax,%eax - movl $__bss_start,%edi - movl $_end,%ecx - subl %edi,%ecx - rep stosb - push %esi call start_kernel - stack_start: .long stack+8192, __KERNEL_DS - - /* Unpleasant -- we actually use this PTE to map shared_info :-) */ + /* Unpleasant -- the PTE that maps this page is actually overwritten */ + /* to map the real shared-info page! :-) */ .org 0x1000 shared_info: .org 0x2000 |