Index: kernel/arch/arm32/include/arch.h
===================================================================
--- kernel/arch/arm32/include/arch.h	(revision d7f8796c40c41b049e325f2536ead52925a9ebcf)
+++ kernel/arch/arm32/include/arch.h	(revision 568db0fa9731edee5774d4965f5840e413666d76)
@@ -45,11 +45,11 @@
 
 typedef struct {
-	uintptr_t addr;
-	uint32_t size;
+	void *addr;
+	size_t size;
 	char name[BOOTINFO_TASK_NAME_BUFLEN];
 } utask_t;
 
 typedef struct {
-	uint32_t cnt;
+	size_t cnt;
 	utask_t tasks[TASKMAP_MAX_RECORDS];
 } bootinfo_t;
Index: kernel/arch/arm32/include/mm/frame.h
===================================================================
--- kernel/arch/arm32/include/mm/frame.h	(revision d7f8796c40c41b049e325f2536ead52925a9ebcf)
+++ kernel/arch/arm32/include/mm/frame.h	(revision 568db0fa9731edee5774d4965f5840e413666d76)
@@ -46,5 +46,5 @@
 
 #define BOOT_PAGE_TABLE_SIZE     0x4000
-#define BOOT_PAGE_TABLE_ADDRESS  0x4000
+#define BOOT_PAGE_TABLE_ADDRESS  0x8000
 
 #define BOOT_PAGE_TABLE_START_FRAME     (BOOT_PAGE_TABLE_ADDRESS >> FRAME_WIDTH)
Index: kernel/arch/arm32/src/arm32.c
===================================================================
--- kernel/arch/arm32/src/arm32.c	(revision d7f8796c40c41b049e325f2536ead52925a9ebcf)
+++ kernel/arch/arm32/src/arm32.c	(revision 568db0fa9731edee5774d4965f5840e413666d76)
@@ -62,10 +62,9 @@
 void arch_pre_main(void *entry __attribute__((unused)), bootinfo_t *bootinfo)
 {
-	unsigned int i;
+	init.cnt = min3(bootinfo->cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS);
 	
-	init.cnt = bootinfo->cnt;
-	
-	for (i = 0; i < min3(bootinfo->cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS); ++i) {
-		init.tasks[i].addr = bootinfo->tasks[i].addr;
+	size_t i;
+	for (i = 0; i < init.cnt; i++) {
+		init.tasks[i].addr = (uintptr_t) bootinfo->tasks[i].addr;
 		init.tasks[i].size = bootinfo->tasks[i].size;
 		str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
