Index: boot/arch/ia64/include/arch/asm.h
===================================================================
--- boot/arch/ia64/include/arch/asm.h	(revision e3444229c8e3295e9e2bed75246c19263f3c51a6)
+++ boot/arch/ia64/include/arch/asm.h	(revision 8a1afd26eb90be3d715d4ce522280cbbf475f0a9)
@@ -31,5 +31,5 @@
 #define BOOT_ia64_ASM_H_
 
-extern void jump_to_kernel(void *) __attribute__((noreturn));
+extern void jump_to_kernel(void *, void *) __attribute__((noreturn));
 
 #endif
Index: boot/arch/ia64/src/asm.S
===================================================================
--- boot/arch/ia64/src/asm.S	(revision e3444229c8e3295e9e2bed75246c19263f3c51a6)
+++ boot/arch/ia64/src/asm.S	(revision 8a1afd26eb90be3d715d4ce522280cbbf475f0a9)
@@ -38,8 +38,7 @@
 
 FUNCTION_BEGIN(jump_to_kernel)
-	alloc loc0 = ar.pfs, 1, 1, 0, 0
+	alloc loc0 = ar.pfs, 2, 1, 0, 0
 	mov r2 = in0 ;;			# Pass bootinfo address
-	movl r8 = KERNEL_ADDRESS;;
-	mov b1 = r8 ;;
+	mov b1 = in1 ;;                 # Entry point address
 	br.call.sptk.many b0 = b1;;
 FUNCTION_END(jump_to_kernel)
Index: boot/arch/ia64/src/main.c
===================================================================
--- boot/arch/ia64/src/main.c	(revision e3444229c8e3295e9e2bed75246c19263f3c51a6)
+++ boot/arch/ia64/src/main.c	(revision 8a1afd26eb90be3d715d4ce522280cbbf475f0a9)
@@ -183,4 +183,4 @@
 
 	printf("Booting the kernel ...\n");
-	jump_to_kernel(&bootinfo);
+	jump_to_kernel(&bootinfo, kernel_start);
 }
