Index: arch/ppc/Makefile.inc
===================================================================
--- arch/ppc/Makefile.inc	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/Makefile.inc	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -13,5 +13,5 @@
 CPPFLAGS=$(DEFS) -nostdinc -I../include
 CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O2
-LFLAGS=-M -no-check-sections -T ../arch/ppc/_link.ld
+LFLAGS=-M -no-check-sections -N -T ../arch/ppc/_link.ld
 
 arch_sources= \
@@ -19,7 +19,9 @@
 	arch/debug/panic.s \
 	arch/fpu_context.c \
+	arch/ppc.c \
 	arch/dummy.s \
 	arch/start.S \
-	arch/asm.s \
+	arch/asm.S \
+	arch/cpu/cpu.c \
 	arch/mm/frame.c \
 	arch/mm/memory_init.c \
Index: arch/ppc/_link.ld
===================================================================
--- arch/ppc/_link.ld	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/_link.ld	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -24,4 +24,5 @@
 		*(.data);		/* initialized data */
 		*(.sdata);
+		*(.sdata2);
 		*(.sbss);
 		*(.bss);		/* uninitialized static variables */	
Index: arch/ppc/boot/Makefile
===================================================================
--- arch/ppc/boot/Makefile	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/boot/Makefile	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -9,15 +9,20 @@
 	cp boot.bin ../../../src/load.bin
 
+CC=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-gcc
 AS=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-as
 LD=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-ld
 
-ASFLAGS=
-LFLAGS=--oformat=binary -e start
+CPPFLAGS=$(DEFS) -nostdinc -I../include
+CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O2
+LFLAGS=-no-check-sections -N -T _link.ld
 
-boot.bin: boot.o
-	$(LD) $(LFLAGS) boot.o -o $@
+boot.bin: boot.o main.o
+	$(LD) $(LFLAGS) boot.o main.o -o $@
 
-boot.o:
-	$(AS) boot.s -o $@
+boot.o: boot.S
+	$(CC) $(CFLAGS) -c boot.S -o $@
+
+main.o: main.c
+	$(CC) $(CFLAGS) -c main.c -o $@
 
 clean:
Index: arch/ppc/boot/_link.ld
===================================================================
--- arch/ppc/boot/_link.ld	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/boot/_link.ld	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,22 @@
+/*
+ *  PPC linker script
+ *
+ */
+
+OUTPUT_FORMAT(elf32-powerpc)
+ENTRY(start)
+
+SECTIONS {
+	.image 0x80000000: AT (0x80000000) { 
+		*(BOOTSTRAP)
+		*(.text);
+		
+		*(.rodata);
+		*(.rodata.*);
+		*(.data);		/* initialized data */
+		*(.sdata);
+		*(.sdata2);
+		*(.sbss);
+		*(.bss);		/* uninitialized static variables */	
+	}
+}
Index: arch/ppc/boot/boot.S
===================================================================
--- arch/ppc/boot/boot.S	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/boot/boot.S	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,42 @@
+#
+# Copyright (C) 2005 Martin Decky
+# 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.
+#
+
+#include <asm/macro.h>
+
+.section BOOTSTRAP
+
+.global start
+
+start:
+	lis r4, ofw@ha
+	addi r4, r4, ofw@l
+	stw r5, 0(r4)
+	
+	bl init
+	
+	b bootstrap
Index: arch/ppc/boot/boot.s
===================================================================
--- arch/ppc/boot/boot.s	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#
-# Copyright (C) 2005 Martin Decky
-# 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:
-		
Index: arch/ppc/boot/main.c
===================================================================
--- arch/ppc/boot/main.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/boot/main.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * 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.
+ */
+ 
+#include "main.h"
+
+ofw_entry ofw;
+
+phandle ofw_chosen;
+ihandle ofw_stdout;
+
+void init(void)
+{
+	ofw_chosen = ofw_find_device("/chosen");
+	if (ofw_chosen == -1)
+		ofw_call("exit", 0, 0);
+	
+	if (ofw_get_property(ofw_chosen, "stdout",  &ofw_stdout, sizeof(ofw_stdout)) <= 0)	
+		ofw_stdout = 0;
+}
+
+int ofw_call(const char *service, const int nargs, const int nret, ...)
+{
+	va_list list;
+	ofw_args_t args;
+	int i;
+	
+	args.service = service;
+	args.nargs = nargs;
+	args.nret = nret;
+	
+	va_start(list, nret);
+	for (i = 0; i < nargs; i++)
+		args.args[i] = va_arg(list, ofw_arg_t);
+	va_end(list);
+	
+	for (i = 0; i < nret; i++)
+		args.args[i + nargs] = 0;
+	
+	ofw(&args);
+	
+	return args.args[nargs];
+}
+
+void ofw_write(const char *str, const int len)
+{
+	if (ofw_stdout == 0)
+		return;
+	
+	ofw_call("write", 3, 1, ofw_stdout, str, len);
+}
+
+void ofw_puts(const char *str)
+{
+	int len = 0;
+	
+	while (str[len] != 0)
+		len++;
+	
+	ofw_write(str, len);
+}
+
+phandle ofw_find_device(const char *name)
+{
+	return ofw_call("finddevice", 1, 1, name);
+}
+
+int ofw_get_property(const phandle device, const char *name, void *buf, const int buflen)
+{
+	return ofw_call("getprop", 4, 1, device, name, buf, buflen);
+}
+
+void bootstrap(void)
+{
+	ofw_puts("\nHelenOS PPC Bootloader\n");
+
+	while (1);
+}
Index: arch/ppc/boot/main.h
===================================================================
--- arch/ppc/boot/main.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/boot/main.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * 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 __MAIN_H__
+#define __MAIN_H__
+
+#define MAX_OFW_ARGS	10
+
+typedef __builtin_va_list va_list;
+
+#define va_start(ap, last) 		__builtin_va_start(ap, last)
+#define va_arg(ap, type) 		__builtin_va_arg(ap, type)
+#define va_end(ap)			__builtin_va_end(ap)
+
+typedef unsigned int ofw_arg_t;
+typedef unsigned int ihandle;
+typedef unsigned int phandle;
+
+/** OpenFirmware command structure
+ *
+ */
+typedef struct {
+	const char *service;          /**< Command name */
+	unsigned int nargs;           /**< Number of in arguments */
+	unsigned int nret;            /**< Number of out arguments */
+	ofw_arg_t args[MAX_OFW_ARGS]; /**< List of arguments */
+} ofw_args_t;
+
+typedef void (*ofw_entry)(ofw_args_t *);
+
+extern void init(void);
+extern int ofw_call(const char *service, const int nargs, const int nret, ...);
+extern void ofw_write(const char *str, const int len);
+extern void ofw_puts(const char *str);
+extern phandle ofw_find_device(const char *name);
+extern int ofw_get_property(const phandle device, const char *name, void *buf, const int buflen);
+extern void bootstrap(void);
+
+#endif
Index: arch/ppc/include/arch.h
===================================================================
--- arch/ppc/include/arch.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/include/arch.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * 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 __ppc_ARCH_H__
+#define __ppc_ARCH_H__
+
+#include <arch/drivers/ofw.h>
+
+#ifdef early_mapping
+#undef early_mapping
+#endif
+
+#define early_mapping(stack, size) \
+	ofw_claim((void *) stack, size, 0);
+
+#endif
Index: arch/ppc/include/asm.h
===================================================================
--- arch/ppc/include/asm.h	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/include/asm.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -79,9 +79,25 @@
 		"mfmsr %%r31\n"
 		"rlwimi  %0, %%r31, 0, 17, 15\n"
+		"cmpw 0, %0, %%r31\n"
+		"beq 0f\n"
 		"mtmsr %0\n"
+		"0:\n"
 		: "=r" (pri)
 		: "0" (pri)
 		: "%r31"
 	);
+}
+
+/** Return raw priority level
+ *
+ * Return EE.
+ */
+static inline pri_t cpu_priority_read(void) {
+	pri_t v;
+	__asm__ volatile (
+		"mfmsr %0\n"
+		: "=r" (v)
+	);
+	return v;
 }
 
Index: arch/ppc/include/context.h
===================================================================
--- arch/ppc/include/context.h	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/include/context.h	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -31,14 +31,6 @@
 
 #include <arch/types.h>
-#include <arch/drivers/ofw.h>
 
 #define SP_DELTA	8
-
-#ifdef context_map_stack
-#undef context_map_stack
-#endif
-
-#define context_map_stack(stack, size) \
-	ofw_claim((void *) stack, size, 0);
 
 struct context {
Index: arch/ppc/src/asm.S
===================================================================
--- arch/ppc/src/asm.S	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/src/asm.S	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,89 @@
+#
+# Copyright (C) 2005 Martin Decky
+# 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.
+#
+
+#include <arch/asm/macro.h>
+
+.text
+
+.global cpu_halt
+.global cpu_sleep
+.global memsetb
+.global memcpy
+
+cpu_halt:
+	b cpu_halt
+
+cpu_sleep:
+	b cpu_sleep
+
+memsetb:
+	rlwimi r5, r5, 8, 16, 23
+	rlwimi r5, r5, 16, 0, 15
+	
+	addi r14, r3, -4
+	
+	cmplwi 0, r4, 4
+	blt 7f
+	
+	stwu r5, 4(r14)
+	beqlr
+	
+	andi. r15, r14, 3
+	add r4, r15, r4
+	subf r14, r15, r14
+	srwi r15, r4, 2
+	mtctr r15
+	
+	bdz 6f
+	
+	1:
+		stwu r5, 4(r14)
+		bdnz 1b
+	
+	6:
+	
+	andi. r4, r4, 3
+	
+	7:
+	
+	cmpwi 0, r4, 0
+	beqlr
+	
+	mtctr r4
+	addi r6, r6, 3
+	
+	8:
+	
+	stbu r5, 1(r14)
+	bdnz 8b
+	
+	blr
+
+memcpy:
+	# TODO
+	blr
Index: arch/ppc/src/asm.s
===================================================================
--- arch/ppc/src/asm.s	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#
-# Copyright (C) 2005 Martin Decky
-# 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.
-#
-
-#include <arch/asm/macro.h>
-
-.text
-
-.global cpu_halt
-.global cpu_sleep
-
-cpu_halt:
-	b cpu_halt
-
-cpu_sleep:
-	b cpu_sleep
Index: arch/ppc/src/cpu/cpu.c
===================================================================
--- arch/ppc/src/cpu/cpu.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/src/cpu/cpu.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * 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.
+ */
+
+#include <arch/cpu.h>
+#include <cpu.h>
+
+#include <arch.h>
+
+#include <typedefs.h>
+#include <print.h>
+
+void cpu_arch_init(void)
+{
+}
+
+void cpu_identify(void)
+{
+}
+
+void cpu_print_report(cpu_t *m)
+{
+	printf("cpu%d:\n", m->id);
+}
Index: arch/ppc/src/debug/panic.s
===================================================================
--- arch/ppc/src/debug/panic.s	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/src/debug/panic.s	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
Index: arch/ppc/src/drivers/ofw.c
===================================================================
--- arch/ppc/src/drivers/ofw.c	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/src/drivers/ofw.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -42,5 +42,5 @@
 		ofw_done();
 	
-	if (ofw_call("getprop", 4, 1, ofw_chosen, "stdout", &ofw_stdout, sizeof(ofw_stdout)) <= 0)
+	if (ofw_get_property(ofw_chosen, "stdout",  &ofw_stdout, sizeof(ofw_stdout)) <= 0)
 		ofw_stdout = 0;
 }
Index: arch/ppc/src/dummy.s
===================================================================
--- arch/ppc/src/dummy.s	(revision 8f917297887ddc3e33feb7dbd42d7c10de978bc2)
+++ arch/ppc/src/dummy.s	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -29,34 +29,12 @@
 .text
 
-.global memcpy
-.global cpu_priority_read
-.global memsetb
+.global asm_delay_loop
 .global userspace
 .global before_thread_runs_arch
-.global cpu_sleep
-.global cpu_identify
-.global cpu_arch_init
-.global cpu_print_report
-.global arch_pre_mm_init
-.global arch_post_mm_init
-.global arch_late_init
-.global calibrate_delay_loop
-.global asm_delay_loop
 .global dummy
 
-memcpy:
-cpu_priority_read:
-memsetb:
 before_thread_runs_arch:
 userspace:
-calibrate_delay_loop:
 asm_delay_loop:
-cpu_identify:
-cpu_arch_init:
-cpu_print_report:
-arch_pre_mm_init:
-arch_post_mm_init:
-arch_late_init:
-calibrate_delay_loop:
 
 dummy:
Index: arch/ppc/src/ppc.c
===================================================================
--- arch/ppc/src/ppc.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
+++ arch/ppc/src/ppc.c	(revision 33ccb2cbb62c342dd41a73ca709f49a28162e301)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * 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.
+ */
+
+#include <arch.h>
+
+void arch_pre_mm_init(void)
+{
+}
+
+void arch_post_mm_init(void)
+{
+}
+
+void arch_late_init(void)
+{
+}
+
+void calibrate_delay_loop(void)
+{
+}
