Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc	(revision dcc2c5d1ea2cf6e1487e83ae2b5362fe7b527161)
+++ boot/arch/sparc64/Makefile.inc	(revision bf05c7451aebfdd5f9d9f9cba5cc3d3190368378)
@@ -72,3 +72,4 @@
 	generic/src/gzip.c \
 	generic/src/tar.c \
+	generic/src/kernel.c \
 	generic/src/payload.c
Index: boot/arch/sparc64/src/main.c
===================================================================
--- boot/arch/sparc64/src/main.c	(revision dcc2c5d1ea2cf6e1487e83ae2b5362fe7b527161)
+++ boot/arch/sparc64/src/main.c	(revision bf05c7451aebfdd5f9d9f9cba5cc3d3190368378)
@@ -43,4 +43,5 @@
 #include <errno.h>
 #include <payload.h>
+#include <kernel.h>
 
 /* The lowest ID (read from the VER register) of some US3 CPU model */
@@ -257,6 +258,8 @@
 		sun4u_smp();
 
+	uintptr_t entry = check_kernel((void *) KERNEL_ADDRESS);
+
 	printf("Booting the kernel ...\n");
-	jump_to_kernel(bootinfo.physmem_start | BSP_PROCESSOR, &bootinfo, subarch,
-	    (void *) KERNEL_ADDRESS);
-}
+	jump_to_kernel(bootinfo.physmem_start | BSP_PROCESSOR, &bootinfo,
+	    subarch, (void *) entry);
+}
