
There is no reason to do the few spear-related initialization, in a different procedure than 'reset'. Spare one branching and get a linear code flow by removing this indirection.
Signed-off-by: Miquel Raynal miquel.raynal@bootlin.com --- arch/arm/cpu/arm926ejs/spear/start.S | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/arch/arm/cpu/arm926ejs/spear/start.S b/arch/arm/cpu/arm926ejs/spear/start.S index 2bc9d5990e..5fb2bd12ec 100644 --- a/arch/arm/cpu/arm926ejs/spear/start.S +++ b/arch/arm/cpu/arm926ejs/spear/start.S @@ -36,20 +36,7 @@ reset: * UART boot, USB boot): save registers in BootROM's stack. */ push {r0-r12,lr} - bl cpu_init_crit - pop {r0-r12,pc}
-/* - ************************************************************************* - * - * CPU_init_critical registers - * - * setup important registers - * setup memory timing - * - ************************************************************************* - */ -cpu_init_crit: /* * Flush v4 I/D caches */ @@ -67,6 +54,6 @@ cpu_init_crit: /* * Go setup Memory and board specific bits prior to relocation. */ - push {lr} bl _main /* _main will call board_init_f */ - pop {pc} + + pop {r0-r12,pc}