Index: kernel/arch/ppc32/src/boot/boot.S
===================================================================
--- kernel/arch/ppc32/src/boot/boot.S	(revision ae318d3535cba06a6996f270db31a961fae402ad)
+++ kernel/arch/ppc32/src/boot/boot.S	(revision 013c4d666a79f5b3ee840b780dc07c7530965584)
@@ -34,5 +34,5 @@
 .global kernel_image_start
 kernel_image_start:
-
+	
 	# load temporal kernel stack
 	
@@ -53,5 +53,5 @@
 	
 	addis r3, r3, 0x8000
-
+	
 	lis r31, bootinfo@ha
 	addi r31, r31, bootinfo@l  # r31 = bootinfo
Index: kernel/arch/ppc32/src/ppc32.c
===================================================================
--- kernel/arch/ppc32/src/ppc32.c	(revision ae318d3535cba06a6996f270db31a961fae402ad)
+++ kernel/arch/ppc32/src/ppc32.c	(revision 013c4d666a79f5b3ee840b780dc07c7530965584)
@@ -46,6 +46,7 @@
 #include <ddi/irq.h>
 #include <arch/drivers/pic.h>
+#include <macros.h>
 
-#define IRQ_COUNT	64
+#define IRQ_COUNT  64
 
 bootinfo_t bootinfo;
@@ -53,10 +54,9 @@
 void arch_pre_main(void)
 {
-	/* Setup usermode */
 	init.cnt = bootinfo.taskmap.count;
 	
 	uint32_t i;
 	
-	for (i = 0; i < bootinfo.taskmap.count; i++) {
+	for (i = 0; i < min3(bootinfo.taskmap.count, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS); i++) {
 		init.tasks[i].addr = PA2KA(bootinfo.taskmap.tasks[i].addr);
 		init.tasks[i].size = bootinfo.taskmap.tasks[i].size;
