]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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 006dec3fc3534cbbf179e5c0d002d7c3c258a7af..2a913f85a74793ae47c19e90deea0f9ef69793e1 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 8115fa531575f0d46d6fb030aa05270f7c7d6983..e7fd6d2abce7a649d37aebeedd92fd685f311870 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);