aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-03-31 16:15:50 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-03-31 16:15:50 +0000
commit3072fef54df8b25abb624a52d0a13bdef9b74b97 (patch)
treeced584f168231f438bd5bc24e5860a86932a613f /extras
parenta6ba94a3071f2454379db3c84aee7298ca63ea61 (diff)
downloadxen-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')
-rw-r--r--extras/mini-os/Makefile11
-rw-r--r--extras/mini-os/head.S34
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