Index: Makefile
===================================================================
--- Makefile	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ Makefile	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -44,4 +44,8 @@
 -include arch/$(ARCH)/Makefile.inc
 
+ifeq ($(CONFIG_DEBUG),y)
+	DEFS += -DCONFIG_DEBUG
+endif
+
 .PHONY: all build config distclean arch_distclean clean kernel uspace clean_kernel clean_uspace distclean_kernel distclean_uspace
 
Index: arch/ppc32/Makefile.inc
===================================================================
--- arch/ppc32/Makefile.inc	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/Makefile.inc	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -30,5 +30,5 @@
 
 image.boot: kernel uspace
-	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
+	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
 	cp arch/$(ARCH)/loader/image.boot image.boot
 
Index: arch/ppc32/loader/Makefile
===================================================================
--- arch/ppc32/loader/Makefile	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/loader/Makefile	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -48,5 +48,4 @@
 
 CFLAGS = -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mcpu=powerpc -msoft-float -m32
-DEFS = 
 
 SOURCES = \
Index: arch/ppc32/loader/asm.S
===================================================================
--- arch/ppc32/loader/asm.S	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/loader/asm.S	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -29,4 +29,5 @@
 #include "asm.h"
 #include "regname.h"
+#include "debug.inc"
 
 .text
@@ -109,4 +110,6 @@
 	# r6 = bytes to copy
 	# r7 = real_mode (pa)
+	# r8 = framebuffer (pa)
+	# r9 = scanline
 	
 	# disable interrupts
@@ -124,5 +127,5 @@
 	mfmsr r31
 	lis r30, ~0@h
-	ori r30, r30, ~(msr_ir | msr_dr)@l
+	ori r30, r30, ~(msr_ir | msr_dr | msr_ee)@l
 	and r31, r31, r30
 	mtspr srr1, r31
@@ -137,4 +140,6 @@
 
 real_mode:
+
+	DEBUG_real_mode
 	
 	# copy kernel to proper location
@@ -142,4 +147,6 @@
 	# r5 = trans (pa)
 	# r6 = bytes to copy
+	# r8 = framebuffer (pa)
+	# r9 = scanline
 	
 	li r31, PAGE_SIZE >> 2
@@ -252,4 +259,6 @@
 	sync
 	isync
+	
+	DEBUG_rfi
 	rfi
 
Index: arch/ppc32/loader/asm.h
===================================================================
--- arch/ppc32/loader/asm.h	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/loader/asm.h	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -45,5 +45,5 @@
 
 extern void halt();
-extern void jump_to_kernel(void *bootinfo, unsigned int bootinfo_size, void *trans, unsigned int kernel_size, void *real_mode) __attribute__((noreturn));
+extern void jump_to_kernel(void *bootinfo, unsigned int bootinfo_size, void *trans, unsigned int kernel_size, void *real_mode, void *fb, unsigned int scanline) __attribute__((noreturn));
 extern void real_mode();
 
Index: arch/ppc32/loader/debug.inc
===================================================================
--- arch/ppc32/loader/debug.inc	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
+++ arch/ppc32/loader/debug.inc	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -0,0 +1,1650 @@
+#
+# Copyright (C) 2006 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.
+#
+
+.macro DEBUG_real_mode
+#ifdef CONFIG_DEBUG
+	lis r11, 65535
+	ori r11, r11, 65535
+	
+	lis r12, 0
+	ori r12, r12, 0
+	
+	mr r10, r8
+	
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r11, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r11, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r11, 4(r10)
+	stw r11, 8(r10)
+	stw r12, 12(r10)
+	stw r11, 16(r10)
+	stw r11, 20(r10)
+	stw r11, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r11, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r11, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r11, 72(r10)
+	stw r11, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r11, 172(r10)
+	stw r12, 176(r10)
+	stw r11, 180(r10)
+	stw r11, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r11, 200(r10)
+	stw r11, 204(r10)
+	stw r11, 208(r10)
+	stw r11, 212(r10)
+	stw r11, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r11, 236(r10)
+	stw r11, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r11, 264(r10)
+	stw r11, 268(r10)
+	stw r11, 272(r10)
+	stw r11, 276(r10)
+	stw r11, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r11, 16(r10)
+	stw r12, 20(r10)
+	stw r11, 24(r10)
+	stw r11, 28(r10)
+	stw r12, 32(r10)
+	stw r11, 36(r10)
+	stw r11, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r11, 56(r10)
+	stw r11, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r11, 172(r10)
+	stw r11, 176(r10)
+	stw r11, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r11, 196(r10)
+	stw r11, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r11, 216(r10)
+	stw r11, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r11, 232(r10)
+	stw r11, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r11, 260(r10)
+	stw r11, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r11, 280(r10)
+	stw r11, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r11, 24(r10)
+	stw r11, 28(r10)
+	stw r12, 32(r10)
+	stw r11, 36(r10)
+	stw r11, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r11, 56(r10)
+	stw r11, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r11, 72(r10)
+	stw r11, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r12, 172(r10)
+	stw r11, 176(r10)
+	stw r12, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r11, 196(r10)
+	stw r11, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r11, 216(r10)
+	stw r11, 220(r10)
+	stw r12, 224(r10)
+	stw r11, 228(r10)
+	stw r11, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r11, 260(r10)
+	stw r11, 264(r10)
+	stw r11, 268(r10)
+	stw r11, 272(r10)
+	stw r11, 276(r10)
+	stw r11, 280(r10)
+	stw r11, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r11, 36(r10)
+	stw r11, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r11, 68(r10)
+	stw r11, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r12, 172(r10)
+	stw r11, 176(r10)
+	stw r12, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r11, 196(r10)
+	stw r11, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r11, 216(r10)
+	stw r11, 220(r10)
+	stw r12, 224(r10)
+	stw r11, 228(r10)
+	stw r11, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r11, 260(r10)
+	stw r11, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r11, 36(r10)
+	stw r11, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r11, 68(r10)
+	stw r11, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r12, 172(r10)
+	stw r11, 176(r10)
+	stw r12, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r11, 196(r10)
+	stw r11, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r11, 216(r10)
+	stw r11, 220(r10)
+	stw r12, 224(r10)
+	stw r11, 228(r10)
+	stw r11, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r11, 260(r10)
+	stw r11, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r11, 36(r10)
+	stw r11, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r11, 56(r10)
+	stw r11, 60(r10)
+	stw r12, 64(r10)
+	stw r11, 68(r10)
+	stw r11, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r12, 172(r10)
+	stw r11, 176(r10)
+	stw r12, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r11, 196(r10)
+	stw r11, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r11, 216(r10)
+	stw r11, 220(r10)
+	stw r12, 224(r10)
+	stw r11, 228(r10)
+	stw r11, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r11, 244(r10)
+	stw r11, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r11, 260(r10)
+	stw r11, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r11, 280(r10)
+	stw r11, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r11, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r11, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r11, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r11, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r11, 72(r10)
+	stw r11, 76(r10)
+	stw r11, 80(r10)
+	stw r12, 84(r10)
+	stw r11, 88(r10)
+	stw r11, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r11, 108(r10)
+	stw r11, 112(r10)
+	stw r11, 116(r10)
+	stw r11, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r11, 164(r10)
+	stw r11, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r11, 184(r10)
+	stw r11, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r11, 200(r10)
+	stw r11, 204(r10)
+	stw r11, 208(r10)
+	stw r11, 212(r10)
+	stw r11, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r11, 232(r10)
+	stw r11, 236(r10)
+	stw r11, 240(r10)
+	stw r12, 244(r10)
+	stw r11, 248(r10)
+	stw r11, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r11, 264(r10)
+	stw r11, 268(r10)
+	stw r11, 272(r10)
+	stw r11, 276(r10)
+	stw r11, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r11, 132(r10)
+	stw r11, 136(r10)
+	stw r11, 140(r10)
+	stw r11, 144(r10)
+	stw r11, 148(r10)
+	stw r11, 152(r10)
+	stw r11, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	stw r12, 96(r10)
+	stw r12, 100(r10)
+	stw r12, 104(r10)
+	stw r12, 108(r10)
+	stw r12, 112(r10)
+	stw r12, 116(r10)
+	stw r12, 120(r10)
+	stw r12, 124(r10)
+	stw r12, 128(r10)
+	stw r12, 132(r10)
+	stw r12, 136(r10)
+	stw r12, 140(r10)
+	stw r12, 144(r10)
+	stw r12, 148(r10)
+	stw r12, 152(r10)
+	stw r12, 156(r10)
+	stw r12, 160(r10)
+	stw r12, 164(r10)
+	stw r12, 168(r10)
+	stw r12, 172(r10)
+	stw r12, 176(r10)
+	stw r12, 180(r10)
+	stw r12, 184(r10)
+	stw r12, 188(r10)
+	stw r12, 192(r10)
+	stw r12, 196(r10)
+	stw r12, 200(r10)
+	stw r12, 204(r10)
+	stw r12, 208(r10)
+	stw r12, 212(r10)
+	stw r12, 216(r10)
+	stw r12, 220(r10)
+	stw r12, 224(r10)
+	stw r12, 228(r10)
+	stw r12, 232(r10)
+	stw r12, 236(r10)
+	stw r12, 240(r10)
+	stw r12, 244(r10)
+	stw r12, 248(r10)
+	stw r12, 252(r10)
+	stw r12, 256(r10)
+	stw r12, 260(r10)
+	stw r12, 264(r10)
+	stw r12, 268(r10)
+	stw r12, 272(r10)
+	stw r12, 276(r10)
+	stw r12, 280(r10)
+	stw r12, 284(r10)
+#endif
+.endm
+
+
+.macro DEBUG_rfi
+#ifdef CONFIG_DEBUG
+	lis r11, 65535
+	ori r11, r11, 65535
+	
+	lis r12, 0
+	ori r12, r12, 0
+	
+	mr r10, r8
+	
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r11, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r11, 56(r10)
+	stw r11, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r11, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r11, 4(r10)
+	stw r11, 8(r10)
+	stw r12, 12(r10)
+	stw r11, 16(r10)
+	stw r11, 20(r10)
+	stw r11, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r11, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r11, 16(r10)
+	stw r12, 20(r10)
+	stw r11, 24(r10)
+	stw r11, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r11, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r11, 24(r10)
+	stw r11, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r11, 4(r10)
+	stw r11, 8(r10)
+	stw r11, 12(r10)
+	stw r11, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r11, 40(r10)
+	stw r11, 44(r10)
+	stw r11, 48(r10)
+	stw r11, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r11, 76(r10)
+	stw r11, 80(r10)
+	stw r11, 84(r10)
+	stw r11, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+	
+	add r10, r10, r9
+	stw r12, 0(r10)
+	stw r12, 4(r10)
+	stw r12, 8(r10)
+	stw r12, 12(r10)
+	stw r12, 16(r10)
+	stw r12, 20(r10)
+	stw r12, 24(r10)
+	stw r12, 28(r10)
+	stw r12, 32(r10)
+	stw r12, 36(r10)
+	stw r12, 40(r10)
+	stw r12, 44(r10)
+	stw r12, 48(r10)
+	stw r12, 52(r10)
+	stw r12, 56(r10)
+	stw r12, 60(r10)
+	stw r12, 64(r10)
+	stw r12, 68(r10)
+	stw r12, 72(r10)
+	stw r12, 76(r10)
+	stw r12, 80(r10)
+	stw r12, 84(r10)
+	stw r12, 88(r10)
+	stw r12, 92(r10)
+#endif
+.endm
Index: arch/ppc32/loader/main.c
===================================================================
--- arch/ppc32/loader/main.c	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/loader/main.c	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -151,4 +151,4 @@
 	
 	printf("\nBooting the kernel...\n");
-	jump_to_kernel(bootinfo_pa, sizeof(bootinfo), trans_pa, pages << PAGE_WIDTH, real_mode_pa);
+	jump_to_kernel(bootinfo_pa, sizeof(bootinfo), trans_pa, pages << PAGE_WIDTH, real_mode_pa, bootinfo.screen.addr, bootinfo.screen.scanline);
 }
Index: arch/ppc32/loader/regname.h
===================================================================
--- arch/ppc32/loader/regname.h	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ arch/ppc32/loader/regname.h	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -211,4 +211,5 @@
 #define msr_ir	(1 << 4)
 #define msr_dr	(1 << 5)
+#define msr_ee	(1 << 15)
 
 /* HID0 bits */
Index: boot.config
===================================================================
--- boot.config	(revision e0dd1a88b3401d76633f38b3c330057e8ba7fcf3)
+++ boot.config	(revision 4520dc027de24ff86a927913cb5771a531b61ed8)
@@ -17,4 +17,7 @@
 % [ARCH=ppc32] SAVEAS PPC32_COMPILER COMPILER
 
+# Debug bootloader
+! [ARCH=ppc32] CONFIG_DEBUG (y/n)
+
 # PPC64 Compiler
 @ "cross" Cross-compiler
