Index: boot/arch/sparc64/src/asm.S
===================================================================
--- boot/arch/sparc64/src/asm.S	(revision 4872160f9c176d257f1757469d1adec8033d95f9)
+++ boot/arch/sparc64/src/asm.S	(revision 99297424ce4eedf8e36173e2da9cb5d698b9a02b)
@@ -182,5 +182,5 @@
 	 * (subarch).
 	 */
-	cmp %i2, SUBARCH_US3
+	cmp %o2, SUBARCH_US3
 	be %xcc, 1f
 	nop
@@ -199,9 +199,5 @@
 	
 	! Jump to kernel
-	mov %o0, %l1
-	mov %o1, %o0
-	mov %o3, %o1
-	
-	jmp %l1
+	jmp %o3
 	nop
 
Index: boot/arch/sparc64/src/main.c
===================================================================
--- boot/arch/sparc64/src/main.c	(revision 4872160f9c176d257f1757469d1adec8033d95f9)
+++ boot/arch/sparc64/src/main.c	(revision 99297424ce4eedf8e36173e2da9cb5d698b9a02b)
@@ -205,4 +205,5 @@
 	
 	void *bootinfo_pa = ofw_translate(&bootinfo);
+	void *kernel_address_pa = ofw_translate((void *) KERNEL_ADDRESS);
 	void *loader_address_pa = ofw_translate((void *) LOADER_ADDRESS);
 	
@@ -210,5 +211,5 @@
 	    bootinfo.memmap.total >> 20, bootinfo.physmem_start);
 	printf(" %p|%p: boot info structure\n", &bootinfo, bootinfo_pa);
-	printf(" %p|%p: kernel entry point\n", KERNEL_ADDRESS, KERNEL_ADDRESS);
+	printf(" %p|%p: kernel entry point\n", KERNEL_ADDRESS, kernel_address_pa);
 	printf(" %p|%p: loader entry pount\n", LOADER_ADDRESS, loader_address_pa);
 	
@@ -304,6 +305,5 @@
 	
 	printf("Booting the kernel ...\n");
-	ofw_quiesce();
-	jump_to_kernel((void *) KERNEL_ADDRESS, &bootinfo, subarch,
-	    bootinfo.physmem_start | BSP_PROCESSOR);
-}
+	jump_to_kernel(bootinfo.physmem_start | BSP_PROCESSOR, &bootinfo, subarch,
+	    (void *) KERNEL_ADDRESS);
+}
