Index: arch/ppc32/Makefile.inc
===================================================================
--- arch/ppc32/Makefile.inc	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/Makefile.inc	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -31,7 +31,9 @@
 image.boot: kernel
 	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNEL=../../../$(KERNELDIR)/kernel.bin
+	cp arch/$(ARCH)/loader/image.boot image.boot
 
 clean: clean_kernel
 	make -C arch/$(ARCH)/loader clean
+	-rm -f image.boot
 
 arch_distclean: distclean_kernel
Index: arch/ppc32/loader/Makefile
===================================================================
--- arch/ppc32/loader/Makefile	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/loader/Makefile	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -61,9 +61,9 @@
 .PHONY: all clean depend
 
-all: ../image.boot
+all: image.boot
 
 -include Makefile.depend
 
-../image.boot: depend $(OBJECTS) kernel.o
+image.boot: depend $(OBJECTS) kernel.o
 	$(LD) -no-check-sections -N -T _link.ld $(OBJECTS) kernel.o -o $@
 
@@ -72,5 +72,5 @@
 
 clean:
-	-rm -f $(OBJECTS) ../image.boot kernel.o Makefile.depend
+	-rm -f $(OBJECTS) image.boot kernel.o Makefile.depend
 
 kernel.o: $(KERNEL)
Index: arch/ppc32/loader/asm.S
===================================================================
--- arch/ppc32/loader/asm.S	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/loader/asm.S	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -33,5 +33,5 @@
 
 flush_buffer:
-	.space 4
+	.space (L1_CACHE_LINES * L1_CACHE_BYTES)
 
 .text
@@ -185,8 +185,8 @@
 
 jump_to_kernel:
-	mfmsr r4
-	andis. r4, r4, (~MSR_DR | MSR_IR) >> 16
 	mtspr SPRN_SRR0, r3
-	mtspr SPRN_SRR1, r4
+	mfmsr r3
+	andi. r3, r3, ~(MSR_IR | MSR_DR)@l
+	mtspr SPRN_SRR1, r3
 	bl flush_instruction_cache
 	rfi
Index: arch/ppc32/loader/main.c
===================================================================
--- arch/ppc32/loader/main.c	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/loader/main.c	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -39,5 +39,5 @@
 void bootstrap(void)
 {
-	printf("\nHelenOS PPC Bootloader\nKernel size %d bytes, load address %L\n", KERNEL_SIZE, KERNEL_LOAD_ADDRESS);
+	printf("\nHelenOS PPC Bootloader\nLoaded at %L\nKernel size %d bytes, load address %L\n", &start, KERNEL_SIZE, KERNEL_LOAD_ADDRESS);
 	
 	void *addr = ofw_claim((void *) KERNEL_LOAD_ADDRESS, KERNEL_SIZE, 1);
@@ -46,4 +46,5 @@
 		halt();
 	}
+	printf("Claimed memory at %L\n", addr);
 	memcpy(addr, KERNEL_START, KERNEL_SIZE);
 	
Index: arch/ppc32/loader/main.h
===================================================================
--- arch/ppc32/loader/main.h	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/loader/main.h	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -32,4 +32,5 @@
 extern int _binary_____________kernel_kernel_bin_start;
 extern int _binary_____________kernel_kernel_bin_end;
+extern void start(void);
 extern void bootstrap(void);
 
Index: arch/ppc32/loader/spr.h
===================================================================
--- arch/ppc32/loader/spr.h	(revision 91aba7fad30829c561e3e7d47152328617be71ab)
+++ arch/ppc32/loader/spr.h	(revision 75a3095d615d88154b14bf008826b08285aa1814)
@@ -30,6 +30,6 @@
 #define __SPR_H__
 
-#define MSR_DR (1 << 27)
-#define MSR_IR (1 << 26)
+#define MSR_DR (1 << 4)
+#define MSR_IR (1 << 5)
 
 #define SPRN_SRR0  0x1a
