root/arch/c6x/kernel/vectors.S

/* [<][>][^][v][top][bottom][index][help] */
   1 ; SPDX-License-Identifier: GPL-2.0-only
   2 ;
   3 ;  Port on Texas Instruments TMS320C6x architecture
   4 ;
   5 ;  Copyright (C) 2004, 2006, 2009, 2010, 2011 Texas Instruments Incorporated
   6 ;  Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
   7 ;
   8 ;  This section handles all the interrupt vector routines.
   9 ;  At RESET the processor sets up the DRAM timing parameters and
  10 ;  branches to the label _c_int00 which handles initialization for the C code.
  11 ;
  12 
  13 #define ALIGNMENT 5
  14 
  15         .macro IRQVEC name, handler
  16         .align ALIGNMENT
  17         .hidden \name
  18         .global \name
  19 \name:
  20 #ifdef CONFIG_C6X_BIG_KERNEL
  21         STW     .D2T1   A0,*B15--[2]
  22  ||     MVKL    .S1     \handler,A0
  23         MVKH    .S1     \handler,A0
  24         B       .S2X    A0
  25         LDW     .D2T1   *++B15[2],A0
  26         NOP     4
  27         NOP
  28         NOP
  29         .endm
  30 #else /* CONFIG_C6X_BIG_KERNEL */
  31         B       .S2     \handler
  32         NOP
  33         NOP
  34         NOP
  35         NOP
  36         NOP
  37         NOP
  38         NOP
  39         .endm
  40 #endif /* CONFIG_C6X_BIG_KERNEL */
  41 
  42            .sect ".vectors","ax"
  43            .align ALIGNMENT
  44            .global RESET
  45            .hidden RESET
  46 RESET:
  47 #ifdef CONFIG_C6X_BIG_KERNEL
  48            MVKL .S1     _c_int00,A0             ; branch to _c_int00
  49            MVKH .S1     _c_int00,A0
  50            B    .S2X    A0
  51 #else
  52            B    .S2     _c_int00
  53            NOP
  54            NOP
  55 #endif
  56            NOP
  57            NOP
  58            NOP
  59            NOP
  60            NOP
  61 
  62 
  63            IRQVEC NMI,_nmi_handler              ; NMI interrupt
  64            IRQVEC AINT,_bad_interrupt           ; reserved
  65            IRQVEC MSGINT,_bad_interrupt         ; reserved
  66 
  67            IRQVEC INT4,_int4_handler
  68            IRQVEC INT5,_int5_handler
  69            IRQVEC INT6,_int6_handler
  70            IRQVEC INT7,_int7_handler
  71            IRQVEC INT8,_int8_handler
  72            IRQVEC INT9,_int9_handler
  73            IRQVEC INT10,_int10_handler
  74            IRQVEC INT11,_int11_handler
  75            IRQVEC INT12,_int12_handler
  76            IRQVEC INT13,_int13_handler
  77            IRQVEC INT14,_int14_handler
  78            IRQVEC INT15,_int15_handler

/* [<][>][^][v][top][bottom][index][help] */