ARC: Setup Vector Table Base in early boot
authorVineet Gupta <vgupta@synopsys.com>
Mon, 17 Jun 2013 12:57:23 +0000 (18:27 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Oct 2013 14:45:45 +0000 (07:45 -0700)
commit 05b016ecf5e7a8c24409d8e9effb5d2ec9107708 upstream.

Otherwise early boot exceptions such as instructions errors due to
configuration mismatch between kernel and hardware go off to la-la land,
as opposed to hitting the handler and panic()'ing properly.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arc/kernel/head.S
arch/arc/kernel/irq.c

index 006dec3..2a913f8 100644 (file)
@@ -27,6 +27,8 @@ stext:
        ; Don't clobber r0-r4 yet. It might have bootloader provided info
        ;-------------------------------------------------------------------
 
+       sr      @_int_vec_base_lds, [AUX_INTR_VEC_BASE]
+
 #ifdef CONFIG_SMP
        ; Only Boot (Master) proceeds. Others wait in platform dependent way
        ;       IDENTITY Reg [ 3  2  1  0 ]
index 8115fa5..e7fd6d2 100644 (file)
@@ -32,8 +32,6 @@ void __cpuinit arc_init_IRQ(void)
 {
        int level_mask = 0;
 
-       write_aux_reg(AUX_INTR_VEC_BASE, _int_vec_base_lds);
-
        /* Disable all IRQs: enable them as devices request */
        write_aux_reg(AUX_IENABLE, 0);