]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/lib/vectors.S
Merge branch 'master' of git://git.denx.de/u-boot-imx
[u-boot] / arch / arm / lib / vectors.S
index d68cc477dc68e7a1ba60eaba046747901dae38f7..f53b1e9a2bc118c623e0aa7424bd1a4074903bab 100644 (file)
@@ -13,6 +13,8 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include <config.h>
+
 /*
  *************************************************************************
  *
@@ -31,7 +33,7 @@
  *************************************************************************
  */
 
-       .section ".vectors", "x"
+       .section ".vectors", "ax"
 
 /*
  *************************************************************************
@@ -49,8 +51,7 @@ _start:
        .word   CONFIG_SYS_DV_NOR_BOOT_CFG
 #endif
 
-_start:
-       ldr     pc, _reset
+       b       reset
        ldr     pc, _undefined_instruction
        ldr     pc, _software_interrupt
        ldr     pc, _prefetch_abort
@@ -59,6 +60,15 @@ _start:
        ldr     pc, _irq
        ldr     pc, _fiq
 
+#ifdef CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK
+/*
+ * Various SoCs need something special and SoC-specific up front in
+ * order to boot, allow them to set that in their boot0.h file and then
+ * use it here.
+ */
+#include <asm/arch/boot0.h>
+#endif
+
 /*
  *************************************************************************
  *
@@ -77,7 +87,6 @@ _start:
        .globl  _irq
        .globl  _fiq
 
-_reset:                        .word reset
 _undefined_instruction:        .word undefined_instruction
 _software_interrupt:   .word software_interrupt
 _prefetch_abort:       .word prefetch_abort
@@ -119,19 +128,6 @@ fiq:
 IRQ_STACK_START_IN:
        .word   0x0badc0de
 
-#ifdef CONFIG_USE_IRQ
-/* IRQ stack memory (calculated at run-time) */
-.globl IRQ_STACK_START
-IRQ_STACK_START:
-       .word   0x0badc0de
-
-/* IRQ stack memory (calculated at run-time) */
-.globl FIQ_STACK_START
-FIQ_STACK_START:
-       .word 0x0badc0de
-
-#endif /* CONFIG_USE_IRQ */
-
 @
 @ IRQ stack frame.
 @
@@ -255,24 +251,6 @@ not_used:
        bad_save_user_regs
        bl      do_not_used
 
-#ifdef CONFIG_USE_IRQ
-
-       .align  5
-irq:
-       get_irq_stack
-       irq_save_user_regs
-       bl      do_irq
-       irq_restore_user_regs
-
-       .align  5
-fiq:
-       get_fiq_stack
-       /* someone ought to write a more effiction fiq_save_user_regs */
-       irq_save_user_regs
-       bl      do_fiq
-       irq_restore_user_regs
-
-#else
 
        .align  5
 irq:
@@ -286,6 +264,4 @@ fiq:
        bad_save_user_regs
        bl      do_fiq
 
-#endif /* CONFIG_USE_IRQ */
-
 #endif /* CONFIG_SPL_BUILD */