Index: arch/sparc64/Makefile.inc
===================================================================
--- arch/sparc64/Makefile.inc	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/Makefile.inc	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -50,4 +50,5 @@
 	arch/$(ARCH)/src/cpu/cpu.c \
 	arch/$(ARCH)/src/asm.S \
+	arch/$(ARCH)/src/panic.S \
 	arch/$(ARCH)/src/console.c \
 	arch/$(ARCH)/src/context.S \
Index: arch/sparc64/include/mm/page.h
===================================================================
--- arch/sparc64/include/mm/page.h	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/include/mm/page.h	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -36,6 +36,6 @@
 #define PAGE_SIZE	FRAME_SIZE
 
-#define KA2PA(x)	(((__address) (x)) - 0x80000000)
-#define PA2KA(x)	(((__address) (x)) + 0x80000000)
+#define KA2PA(x)	((__address) (x))
+#define PA2KA(x)	((__address) (x))
 
 #define PTL0_INDEX_ARCH(vaddr)		0
Index: arch/sparc64/include/mm/vm.h
===================================================================
--- arch/sparc64/include/mm/vm.h	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/include/mm/vm.h	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -32,12 +32,12 @@
 #include <arch/types.h>
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x8000000000000000
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
 #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 USER_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
 
-#define UTEXT_ADDRESS_ARCH	0x0000000000001000
+#define UTEXT_ADDRESS_ARCH	(0x0000000000000000+PAGE_SIZE)
 #define USTACK_ADDRESS_ARCH	(0x7fffffffffffffff-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x0000000001001000
+#define UDATA_ADDRESS_ARCH	0x8000000000000000
 
 #define vm_install_arch(vm)
Index: arch/sparc64/src/dummy.s
===================================================================
--- arch/sparc64/src/dummy.s	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/src/dummy.s	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -30,5 +30,4 @@
 
 .global asm_delay_loop
-.global before_thread_runs_arch
 .global cpu_halt
 .global cpu_sleep
@@ -42,5 +41,4 @@
 .global fpu_enable
 .global fpu_init
-.global panic_printf
 .global userspace
 
@@ -48,5 +46,4 @@
 
 asm_delay_loop:
-before_thread_runs_arch:
 cpu_halt:
 cpu_sleep:
@@ -60,5 +57,4 @@
 fpu_enable:
 fpu_init:
-panic_printf:
 userspace:
 
@@ -66,4 +62,4 @@
 dummy:
 0:
-	b 0b
+	retl
 	nop
Index: arch/sparc64/src/mm/tlb.c
===================================================================
--- arch/sparc64/src/mm/tlb.c	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/src/mm/tlb.c	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -58,5 +58,5 @@
 	fr.address = config.base;
 	pg.address = config.base;
-	
+
 	immu_disable();
 	dmmu_disable();
Index: arch/sparc64/src/panic.S
===================================================================
--- arch/sparc64/src/panic.S	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
+++ arch/sparc64/src/panic.S	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -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.
+#
+
+.text
+
+.global panic_printf
+panic_printf:
+	call printf
+	nop
+	call halt
+	nop
Index: arch/sparc64/src/sparc64.c
===================================================================
--- arch/sparc64/src/sparc64.c	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ arch/sparc64/src/sparc64.c	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -53,2 +53,6 @@
 {
 }
+
+void before_thread_runs_arch(void)
+{
+}
Index: generic/src/cpu/cpu.c
===================================================================
--- generic/src/cpu/cpu.c	(revision ff12a3c546fb5433fae9768de8c16772ea628030)
+++ generic/src/cpu/cpu.c	(revision 031e26427bf76c26ff85a0d574c174809efaae1c)
@@ -62,6 +62,4 @@
 		for (i=0; i < config.cpu_count; i++) {
 			cpus[i].stack = (__u8 *) frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME);
-			if (!cpus[i].stack)
-				panic("malloc/cpus[%d].stack\n", i);
 			
 			cpus[i].id = i;
