Index: arch/ppc32/include/boot/boot.h
===================================================================
--- arch/ppc32/include/boot/boot.h	(revision bd5a66303dbc439520defdf0dbb2f94fd9ee02b8)
+++ arch/ppc32/include/boot/boot.h	(revision 59477e3b6a3aeb84bf23932ae84de3dbf518bad2)
@@ -35,4 +35,5 @@
 #define TEMP_STACK_SIZE 0x100
 
+#define TASKMAP_MAX_RECORDS 32
 #define MEMMAP_MAX_RECORDS 32
 
@@ -45,4 +46,9 @@
 	__u32 size;
 } utask_t;
+
+typedef struct {
+	__u32 count;
+	utask_t tasks[TASKMAP_MAX_RECORDS];
+} taskmap_t;
 
 typedef struct {
@@ -66,5 +72,5 @@
 
 typedef struct {
-	utask_t init;
+	taskmap_t taskmap;
 	memmap_t memmap;
 	screen_t screen;
Index: arch/ppc32/src/ppc32.c
===================================================================
--- arch/ppc32/src/ppc32.c	(revision bd5a66303dbc439520defdf0dbb2f94fd9ee02b8)
+++ arch/ppc32/src/ppc32.c	(revision 59477e3b6a3aeb84bf23932ae84de3dbf518bad2)
@@ -41,7 +41,12 @@
 {
 	/* Setup usermode */
-	init.cnt = 1;
-	init.tasks[0].addr = PA2KA(bootinfo.init.addr);
-	init.tasks[0].size = bootinfo.init.size;
+	init.cnt = bootinfo.taskmap.count;
+	
+	__u32 i;
+	
+	for (i = 0; i < bootinfo.taskmap.count; i++) {
+		init.tasks[i].addr = PA2KA(bootinfo.taskmap.tasks[i].addr);
+		init.tasks[i].size = bootinfo.taskmap.tasks[i].size;
+	}
 }
 
