diff options
Diffstat (limited to 'arch/arm/cpu/board-dt-2nd.c')
-rw-r--r-- | arch/arm/cpu/board-dt-2nd.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/arch/arm/cpu/board-dt-2nd.c b/arch/arm/cpu/board-dt-2nd.c index 6f6f535918..6f69a6dd27 100644 --- a/arch/arm/cpu/board-dt-2nd.c +++ b/arch/arm/cpu/board-dt-2nd.c @@ -12,29 +12,28 @@ #ifdef CONFIG_CPU_V8 -static noinline void dt_2nd_continue_aarch64(void *fdt) -{ - unsigned long membase, memsize; - - if (!fdt) - hang(); - - fdt_find_mem(fdt, &membase, &memsize); - - barebox_arm_entry(membase, memsize, fdt); -} - /* called from assembly */ void dt_2nd_aarch64(void *fdt); void dt_2nd_aarch64(void *fdt) { + unsigned long membase, memsize; + + putc_ll('>'); + /* entry point already set up stack */ + arm_cpu_lowlevel_init(); + relocate_to_current_adr(); setup_c(); - dt_2nd_continue_aarch64(fdt); + if (!fdt) + hang(); + + fdt_find_mem(fdt, &membase, &memsize); + + barebox_arm_entry(membase, memsize, fdt); } #else @@ -55,6 +54,8 @@ ENTRY_FUNCTION(start_dt_2nd, r0, r1, r2) { unsigned long image_start = (unsigned long)_text + global_variable_offset(); + arm_cpu_lowlevel_init(); + arm_setup_stack(image_start); relocate_to_current_adr(); |