@@ -81,12 +81,7 @@ start:
/* complete setup */
pop {r0-r1}
bl setup
- bl get_mmu_off
- cmp r0, #0
- bne 1f
- bl setup_vm
-1:
/* run the test */
ldr r0, =__argc
ldr r0, [r0]
@@ -108,7 +103,6 @@ enable_vfp:
vmsr fpexc, r0
mov pc, lr
-.global get_mmu_off
get_mmu_off:
ldr r0, =auxinfo
ldr r0, [r0, #4]
@@ -93,11 +93,7 @@ start:
/* complete setup */
bl setup // x0 is the addr of the dtb
- bl get_mmu_off
- cbnz x0, 1f
- bl setup_vm
-1:
/* run the test */
adrp x0, __argc
ldr w0, [x0, :lo12:__argc]
@@ -111,7 +107,6 @@ start:
.text
-.globl get_mmu_off
get_mmu_off:
adrp x0, auxinfo
ldr x0, [x0, :lo12:auxinfo + 8]
@@ -16,6 +16,8 @@
#include <alloc.h>
#include <alloc_phys.h>
#include <alloc_page.h>
+#include <vmalloc.h>
+#include <auxinfo.h>
#include <argv.h>
#include <asm/thread_info.h>
#include <asm/setup.h>
@@ -233,7 +235,6 @@ void setup(const void *fdt)
freemem += initrd_size;
}
- /* call init functions */
mem_init(PAGE_ALIGN((unsigned long)freemem));
cpu_init();
@@ -243,7 +244,6 @@ void setup(const void *fdt)
/* mem_init must be called before io_init */
io_init();
- /* finish setup */
timer_save_state();
ret = dt_get_bootargs(&bootargs);
@@ -256,4 +256,7 @@ void setup(const void *fdt)
memcpy(env, initrd, initrd_size);
setup_env(env, initrd_size);
}
+
+ if (!(auxinfo.flags & AUXINFO_MMU_OFF))
+ setup_vm();
}