Index: boot/arch/ppc64/loader/Makefile
===================================================================
--- boot/arch/ppc64/loader/Makefile	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ boot/arch/ppc64/loader/Makefile	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -52,4 +52,5 @@
 SOURCES = \
 	main.c \
+	ofwarch.c \
 	../../../genarch/ofw.c \
 	../../../generic/printf.c \
Index: boot/arch/ppc64/loader/boot.S
===================================================================
--- boot/arch/ppc64/loader/boot.S	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ boot/arch/ppc64/loader/boot.S	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -38,5 +38,5 @@
 	stw r5, 0(r4)
 	
-	bl init
+	bl ofw_init
 	
 	b bootstrap
Index: boot/arch/ppc64/loader/main.c
===================================================================
--- boot/arch/ppc64/loader/main.c	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ boot/arch/ppc64/loader/main.c	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -31,4 +31,5 @@
 #include "asm.h"
 #include "_components.h"
+#include <ofw.h>
 
 #define HEAP_GAP 1024000
Index: boot/arch/ppc64/loader/main.h
===================================================================
--- boot/arch/ppc64/loader/main.h	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ boot/arch/ppc64/loader/main.h	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -27,15 +27,8 @@
  */
 
-#ifndef __MAIN_H__
-#define __MAIN_H__
+#ifndef BOOT_ppc64_MAIN_H_
+#define BOOT_ppc64_MAIN_H_
 
-#include "ofw.h"
-
-/** Align to the nearest higher address.
- *
- * @param addr  Address or size to be aligned.
- * @param align Size of alignment, must be power of 2.
- */
-#define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1))
+#include <ofw.h>
 
 #define TASKMAP_MAX_RECORDS 32
Index: boot/arch/ppc64/loader/ofw.c
===================================================================
--- boot/arch/ppc64/loader/ofw.c	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ 	(revision )
@@ -1,67 +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 <ofw.h>
-#include <printf.h>
-
-typedef int (* ofw_entry_t)(ofw_args_t *args);
-
-int ofw(ofw_args_t *args)
-{
-	return ((ofw_entry_t) ofw_cif)(args);
-}
-
-void write(const char *str, const int len)
-{
-	ofw_write(str, len);
-}
-
-int ofw_keyboard(keyboard_t *keyboard)
-{
-	char device_name[BUF_SIZE];
-	
-	if (ofw_get_property(ofw_aliases, "macio", device_name, sizeof(device_name)) <= 0)
-		return false;
-				
-	phandle device = ofw_find_device(device_name);
-	if (device == -1)
-		return false;
-								
-	pci_reg_t macio;
-	if (ofw_get_property(device, "assigned-addresses", &macio, sizeof(macio)) <= 0)
-		return false;
-	keyboard->addr = (void *) macio.addr.addr_lo;
-	keyboard->size = macio.size_lo;
-
-	return true;
-}
-
-int ofw_translate_failed(ofw_arg_t flag)
-{
-	return 0;
-}
Index: boot/arch/ppc64/loader/ofwarch.c
===================================================================
--- boot/arch/ppc64/loader/ofwarch.c	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
+++ boot/arch/ppc64/loader/ofwarch.c	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -0,0 +1,68 @@
+/*
+ * 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 <ofwarch.h>
+#include <ofw.h>
+#include <printf.h>
+
+typedef int (* ofw_entry_t)(ofw_args_t *args);
+
+int ofw(ofw_args_t *args)
+{
+	return ((ofw_entry_t) ofw_cif)(args);
+}
+
+void write(const char *str, const int len)
+{
+	ofw_write(str, len);
+}
+
+int ofw_keyboard(keyboard_t *keyboard)
+{
+	char device_name[BUF_SIZE];
+	
+	if (ofw_get_property(ofw_aliases, "macio", device_name, sizeof(device_name)) <= 0)
+		return false;
+				
+	phandle device = ofw_find_device(device_name);
+	if (device == -1)
+		return false;
+								
+	pci_reg_t macio;
+	if (ofw_get_property(device, "assigned-addresses", &macio, sizeof(macio)) <= 0)
+		return false;
+	keyboard->addr = (void *) macio.addr.addr_lo;
+	keyboard->size = macio.size_lo;
+
+	return true;
+}
+
+int ofw_translate_failed(ofw_arg_t flag)
+{
+	return 0;
+}
Index: boot/arch/ppc64/loader/ofwarch.h
===================================================================
--- boot/arch/ppc64/loader/ofwarch.h	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
+++ boot/arch/ppc64/loader/ofwarch.h	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 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.
+ */
+
+#ifndef BOOT_ppc64_OFWARCH_H_
+#define BOOT_ppc64_OFWARCH_H_
+
+#define OFW_ADDRESS_CELLS	2
+#define OFW_SIZE_CELLS		2
+
+#endif
Index: boot/arch/ppc64/loader/types.h
===================================================================
--- boot/arch/ppc64/loader/types.h	(revision fb0e6f03f428e14b816f7a37cb110f0b908727d5)
+++ boot/arch/ppc64/loader/types.h	(revision 10982496d9d6c8bbaa6bd5c6fd7ce7e8191b96f5)
@@ -27,6 +27,6 @@
  */
 
-#ifndef TYPES_H__
-#define TYPES_H__
+#ifndef BOOT_ppc64_TYPES_H_
+#define BOOT_ppc64_TYPES_H_
 
 #include <gentypes.h>
