Index: arch/ia64/Makefile.inc
===================================================================
--- arch/ia64/Makefile.inc	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/Makefile.inc	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,19 @@
+IA-64_TARGET=ia64-pc-linux-gnu
+
+IA-64_CC_DIR=/usr/local/ia64/bin
+IA-64_BINUTILS_DIR=/usr/local/ia64/bin
+
+CC=$(IA-64_CC_DIR)/$(IA-64_TARGET)-gcc
+AS=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-as
+LD=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-ld
+
+ASFLAGS=-EL
+
+DEFS=-DARCH=$(ARCH)
+CPPFLAGS=$(DEFS) -nostdinc -I../include
+CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -Wmissing-prototypes -Werror -O3
+LFLAGS=-EL -n -M -no-check-sections -T ../arch/ia64/_link.ld
+
+arch_sources= \
+	arch/start.S \
+	arch/fake.s
Index: arch/ia64/_link.ld
===================================================================
--- arch/ia64/_link.ld	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/_link.ld	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,72 @@
+OUTPUT_FORMAT(elf64-ia64-little)
+ENTRY(kernel_image_start)
+
+SECTIONS {
+    .image 0x8000000000000000: AT (0x8000000000000000) { 
+	    *(.text .stub .text.* .gnu.linkonce.t.*)
+	    *(.interp)
+	    *(.hash)
+	    *(.dynsym)
+	    *(.dynstr)
+	    *(.rel.init)
+	    *(.rela.init)
+	    *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+	    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+	    *(.rel.fini)
+	    *(.rela.fini)
+	    *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+	    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+	    *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+	    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+	    *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
+	    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+	    *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
+	    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+	    *(.rel.got)
+	    *(.rela.got)
+	    *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
+	    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
+	    *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
+	    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
+	    *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
+	    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
+	    *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
+	    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
+	    *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+	    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+	    *(.rel.plt)
+	    *(.rela.plt)
+	    *(.rela.IA_64.pltoff)
+	    *(.init)
+	    *(.plt)
+	    *(.fini)
+	    *(.rodata .rodata.* .gnu.linkonce.r.*)
+	    *(.rodata1)
+	    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
+	    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
+	    *(.opd)
+	    *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*)
+	    *(.IA_64.unwind* .gnu.linkonce.ia64unw.*)
+	    *(.eh_frame_hdr)
+	    *(.preinit_array)
+	    *(.init_array)
+	    *(.fini_array)
+	    *(.data .data.* .gnu.linkonce.d.*)
+	    *(.data1)
+	    *(.tdata .tdata.* .gnu.linkonce.td.*)
+	    *(.tcommon)
+	    *(.eh_frame)
+	    *(.gcc_except_table)
+	    *(.dynamic)
+	    *(.jcr)
+	    *(.got)
+	    *(.IA_64.pltoff)
+	    *(.sdata .sdata.* .gnu.linkonce.s.*)
+	    *(.dynsbss)
+	    *(.sbss .sbss.* .gnu.linkonce.sb.*)
+	    *(.scommon)
+	    *(.dynbss)
+	    *(.bss .bss.* .gnu.linkonce.b.*)
+	    *(COMMON)
+    }
+}
Index: arch/ia64/boot/Makefile
===================================================================
--- arch/ia64/boot/Makefile	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/boot/Makefile	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,24 @@
+IA-64_BINUTILS_DIR=/usr/local/ia64/bin
+IA-64_TARGET=ia64-pc-linux-gnu
+
+.PHONY: nothing build
+
+nothing:
+
+build: boot.bin
+	cp boot.bin ../../../src/load.bin
+
+AS=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-as
+LD=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-ld
+
+ASFLAGS=-EL
+LFLAGS=-EL -T _link.ld -n
+
+boot.bin: boot.o
+	$(LD) $(LFLAGS) boot.o -o $@
+
+boot.o:
+	$(AS) boot.s -o $@
+
+clean:
+	-rm *.o *.bin
Index: arch/ia64/boot/_link.ld
===================================================================
--- arch/ia64/boot/_link.ld	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/boot/_link.ld	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,72 @@
+OUTPUT_FORMAT(elf64-ia64-little)
+ENTRY(start)
+
+SECTIONS {
+    .image 0xf000000000000000: AT (0xf000000000000000) { 
+	    *(.text .stub .text.* .gnu.linkonce.t.*)
+	    *(.interp)
+	    *(.hash)
+	    *(.dynsym)
+	    *(.dynstr)
+	    *(.rel.init)
+	    *(.rela.init)
+	    *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+	    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+	    *(.rel.fini)
+	    *(.rela.fini)
+	    *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+	    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+	    *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+	    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+	    *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
+	    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+	    *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
+	    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+	    *(.rel.got)
+	    *(.rela.got)
+	    *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
+	    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
+	    *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
+	    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
+	    *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
+	    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
+	    *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
+	    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
+	    *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+	    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+	    *(.rel.plt)
+	    *(.rela.plt)
+	    *(.rela.IA_64.pltoff)
+	    *(.init)
+	    *(.plt)
+	    *(.fini)
+	    *(.rodata .rodata.* .gnu.linkonce.r.*)
+	    *(.rodata1)
+	    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
+	    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
+	    *(.opd)
+	    *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*)
+	    *(.IA_64.unwind* .gnu.linkonce.ia64unw.*)
+	    *(.eh_frame_hdr)
+	    *(.preinit_array)
+	    *(.init_array)
+	    *(.fini_array)
+	    *(.data .data.* .gnu.linkonce.d.*)
+	    *(.data1)
+	    *(.tdata .tdata.* .gnu.linkonce.td.*)
+	    *(.tcommon)
+	    *(.eh_frame)
+	    *(.gcc_except_table)
+	    *(.dynamic)
+	    *(.jcr)
+	    *(.got)
+	    *(.IA_64.pltoff)
+	    *(.sdata .sdata.* .gnu.linkonce.s.*)
+	    *(.dynsbss)
+	    *(.sbss .sbss.* .gnu.linkonce.sb.*)
+	    *(.scommon)
+	    *(.dynbss)
+	    *(.bss .bss.* .gnu.linkonce.b.*)
+	    *(COMMON)
+    }
+}
Index: arch/ia64/boot/boot.s
===================================================================
--- arch/ia64/boot/boot.s	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/boot/boot.s	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2005 Jakub Jermar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+.text
+
+.global start
+start:
+    brl -0x7000000000000000
Index: arch/ia64/include/context.h
===================================================================
--- arch/ia64/include/context.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/context.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_CONTEXT_H__
+#define __ia64_CONTEXT_H__
+
+#include <arch/types.h>
+
+struct context {
+	__u64 sp;
+	__u64 pc;
+	pri_t pri;
+};
+
+#endif
Index: arch/ia64/include/cpu.h
===================================================================
--- arch/ia64/include/cpu.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/cpu.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_CPU_H__
+#define __ia64_CPU_H__
+
+#include <typedefs.h>
+
+#define CPU_ID_ARCH	0
+
+struct cpu_arch {
+};
+	
+#endif
Index: arch/ia64/include/mm/frame.h
===================================================================
--- arch/ia64/include/mm/frame.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/mm/frame.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_FRAME_H__
+#define __ia64_FRAME_H__
+
+#define FRAME_SIZE		2*4096
+
+extern void frame_arch_init(void);
+
+#endif
Index: arch/ia64/include/mm/page.h
===================================================================
--- arch/ia64/include/mm/page.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/mm/page.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_PAGE_H__
+#define __ia64_PAGE_H__
+
+#include <arch/mm/frame.h>
+
+#define PAGE_SIZE	FRAME_SIZE
+
+#define KA2PA(x)	((x)-0x8000000000000000)
+#define PA2KA(x)	((x)+0x8000000000000000)
+
+#define page_arch_init()	;
+
+#endif
Index: arch/ia64/include/mm/vm.h
===================================================================
--- arch/ia64/include/mm/vm.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/mm/vm.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_VM_H__
+#define __ia64_VM_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x8000000000000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffffffffffff
+
+#define UTEXT_ADDRESS_ARCH	0x0000000000001000
+#define USTACK_ADDRESS_ARCH	0x7ffffffffffff000
+#define UDATA_ADDRESS_ARCH	0x0000000001001000
+
+#endif
Index: arch/ia64/include/thread.h
===================================================================
--- arch/ia64/include/thread.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/thread.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_THREAD_H__
+#define __ia64_THREAD_H__
+
+#define ARCH_THREAD_DATA struct { } arch_thread_data;
+
+#endif
Index: arch/ia64/include/types.h
===================================================================
--- arch/ia64/include/types.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/include/types.h	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __TYPES_H__
+#define __TYPES_H__
+
+#define NULL	0
+
+typedef signed char __s8;
+
+typedef unsigned char __u8;
+typedef unsigned short __u16;
+typedef unsigned long __u32;
+typedef long long __u64;
+
+typedef __u64 __address;
+
+typedef __u32 pri_t;
+
+#endif
Index: arch/ia64/src/fake.s
===================================================================
--- arch/ia64/src/fake.s	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/src/fake.s	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,79 @@
+#
+# Copyright (C) 2005 Jakub Jermar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+.text
+
+.global calibrate_delay_loop
+.global asm_delay_loop
+.global userspace
+.global before_thread_runs
+.global arch_late_init
+.global arch_post_mm_init
+.global arch_pre_mm_init
+.global context_restore
+.global context_save
+.global cpu_arch_init
+.global cpu_halt
+.global cpu_identify
+.global cpu_print_report
+.global cpu_priority_high
+.global cpu_priority_low
+.global cpu_priority_read
+.global cpu_priority_restore
+.global cpu_sleep
+.global frame_arch_init
+.global map_page_to_frame
+.global memsetb
+.global panic
+.global putchar
+
+before_thread_runs:
+userspace:
+calibrate_delay_loop:
+asm_delay_loop:
+arch_late_init:
+arch_post_mm_init:
+arch_pre_mm_init:
+context_restore:
+context_save:
+cpu_arch_init:
+cpu_halt:
+cpu_identify:
+cpu_print_report:
+cpu_priority_high:
+cpu_priority_low:
+cpu_priority_read:
+cpu_priority_restore:
+cpu_sleep:
+frame_arch_init:
+map_page_to_frame:
+memsetb:
+panic:
+putchar:
+	brl 0x0
+
Index: arch/ia64/src/start.S
===================================================================
--- arch/ia64/src/start.S	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ arch/ia64/src/start.S	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2005 Jakub Jermar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+.text
+
+.global kernel_image_start
+
+kernel_image_start:
+	brl 0x0
Index: doc/arch/ia64
===================================================================
--- doc/arch/ia64	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ doc/arch/ia64	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,14 @@
+SPARTAN kernel now features early IA-64 support.
+To run SPARTAN on IA-64, you must use the
+HP Ski simulator. It can be downloaded from here:
+
+http://www.hpl.hp.com/research/linux/ski/
+
+Use init skript like this to run the kernel:
+
+-----8<------
+
+load kernel.bin
+load load.bin
+
+----->8------
Index: doc/arch/mips
===================================================================
--- doc/arch/mips	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
+++ doc/arch/mips	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -0,0 +1,37 @@
+SPARTAN kernel currently supports emulated MIPS R4000 32-bit
+little-endian architecture. In other words, it can only run in MIPS
+R4000 emulator called msim. This emulator is being developed by Viliam
+Holub:
+
+http://nenya.ms.mff.cuni.cz/~holub/msim
+
+Note that msim diverges from real MIPS hardware in some aspects.
+Therefore, some non-trivial changes will be necessary for a real
+hardware port. The simulator is described in this manual:
+
+http://nenya.ms.mff.cuni.cz/~holub/msim/msim.ps
+
+You'll need a msim.conf script like this:
+
+	#
+	# MSIM configuration script
+	#
+
+	add dcpu mips1
+
+	add rwm 	mainmem		0               16M	load "kernel.bin"
+	add rom 	startmem        0x1fc00000	1k      load "load.bin"
+
+	add dprinter    printer         0xA000000
+
+
+
+BOOTSTRAP
+=========
+Because the mips port uses binary executable format and for some other
+architectural reasons, it shares one address for bootstrap entry
+(address where control is passed from loader) and for TLB refill
+exception entry. The former is used only once during system bootstrap.
+From that point further, only TLB refill exception entry uses that
+address. Note that this is the reason why main_bsp() is called from
+tlb_refill() code.
Index: c/mips
===================================================================
--- doc/mips	(revision ed0dd65c9dbd967fb298a751aace9d7aed3c3569)
+++ 	(revision )
@@ -1,37 +1,0 @@
-SPARTAN kernel currently supports emulated MIPS R4000 32-bit
-little-endian architecture. In other words, it can only run in MIPS
-R4000 emulator called msim. This emulator is being developed by Viliam
-Holub:
-
-http://nenya.ms.mff.cuni.cz/~holub/msim
-
-Note that msim diverges from real MIPS hardware in some aspects.
-Therefore, some non-trivial changes will be necessary for a real
-hardware port. The simulator is described in this manual:
-
-http://nenya.ms.mff.cuni.cz/~holub/msim/msim.ps
-
-You'll need a msim.conf script like this:
-
-	#
-	# MSIM configuration script
-	#
-
-	add dcpu mips1
-
-	add rwm 	mainmem		0               16M	load "kernel.bin"
-	add rom 	startmem        0x1fc00000	1k      load "load.bin"
-
-	add dprinter    printer         0xA000000
-
-
-
-BOOTSTRAP
-=========
-Because the mips port uses binary executable format and for some other
-architectural reasons, it shares one address for bootstrap entry
-(address where control is passed from loader) and for TLB refill
-exception entry. The former is used only once during system bootstrap.
-From that point further, only TLB refill exception entry uses that
-address. Note that this is the reason why main_bsp() is called from
-tlb_refill() code.
Index: doc/requirements
===================================================================
--- doc/requirements	(revision ed0dd65c9dbd967fb298a751aace9d7aed3c3569)
+++ doc/requirements	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -35,2 +35,11 @@
     EMULATORS AND VIRTUALIZERS
     o msim
+
+ia64 port
+=========
+
+    HARDWARE REQUIREMENTS
+    o no real hardware supported
+
+    EMULATORS AND VIRTUALIZERS
+    o ski
Index: src/Makefile.config
===================================================================
--- src/Makefile.config	(revision ed0dd65c9dbd967fb298a751aace9d7aed3c3569)
+++ src/Makefile.config	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -6,5 +6,5 @@
 
 # Support for symetric multiprocessors
-SMP=__SMP__
+#SMP=__SMP__
 
 # Improved support for hyperthreading
Index: src/mm/vm.c
===================================================================
--- src/mm/vm.c	(revision ed0dd65c9dbd967fb298a751aace9d7aed3c3569)
+++ src/mm/vm.c	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -31,4 +31,5 @@
 #include <mm/frame.h>
 #include <mm/tlb.h>
+#include <mm/heap.h>
 #include <arch/mm/page.h>
 #include <arch/types.h>
Index: src/proc/task.c
===================================================================
--- src/proc/task.c	(revision ed0dd65c9dbd967fb298a751aace9d7aed3c3569)
+++ src/proc/task.c	(revision 30ef8ce93ca0f3eca4d4f65792495acb39b0db11)
@@ -30,4 +30,5 @@
 #include <proc/task.h>
 #include <mm/vm.h>
+#include <mm/heap.h>
 
 #include <synch/spinlock.h>
