2019-06-04 10:11:33 +02:00
; SPDX-License-Identifier: GPL-2.0-only
2011-10-04 11:00:02 -04:00
;
; Port on Texas Instruments TMS320C6x architecture
;
; Copyright (C) 2004, 2006, 2009, 2010, 2011 Texas Instruments Incorporated
; Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
;
; This section handles all the interrupt vector routines.
; At RESET the processor sets up the DRAM timing parameters and
; branches to the label _c_int00 which handles initialization for the C code.
;
# define A L I G N M E N T 5
.macro IRQVEC name, h a n d l e r
.align ALIGNMENT
.hidden \ name
.global \ name
\ name :
# ifdef C O N F I G _ C 6 X _ B I G _ K E R N E L
STW . D 2 T 1 A 0 ,* B 1 5 - - [ 2 ]
| | MVKL . S 1 \ h a n d l e r ,A 0
MVKH . S 1 \ h a n d l e r ,A 0
B . S 2 X A 0
LDW . D 2 T 1 * + + B 1 5 [ 2 ] ,A 0
NOP 4
NOP
NOP
.endm
# else / * C O N F I G _ C 6 X _ B I G _ K E R N E L * /
B . S 2 \ h a n d l e r
NOP
NOP
NOP
NOP
NOP
NOP
NOP
.endm
# endif / * C O N F I G _ C 6 X _ B I G _ K E R N E L * /
.sect " .vectors " , " ax"
.align ALIGNMENT
.global RESET
.hidden RESET
RESET :
# ifdef C O N F I G _ C 6 X _ B I G _ K E R N E L
MVKL . S 1 _ c _ i n t 0 0 ,A 0 ; branch to _c_int00
MVKH . S 1 _ c _ i n t 0 0 ,A 0
B . S 2 X A 0
# else
B . S 2 _ c _ i n t 0 0
NOP
NOP
# endif
NOP
NOP
NOP
NOP
NOP
IRQVEC N M I ,_ n m i _ h a n d l e r ; NMI interrupt
IRQVEC A I N T ,_ b a d _ i n t e r r u p t ; reserved
IRQVEC M S G I N T ,_ b a d _ i n t e r r u p t ; reserved
IRQVEC I N T 4 ,_ i n t 4 _ h a n d l e r
IRQVEC I N T 5 ,_ i n t 5 _ h a n d l e r
IRQVEC I N T 6 ,_ i n t 6 _ h a n d l e r
IRQVEC I N T 7 ,_ i n t 7 _ h a n d l e r
IRQVEC I N T 8 ,_ i n t 8 _ h a n d l e r
IRQVEC I N T 9 ,_ i n t 9 _ h a n d l e r
IRQVEC I N T 1 0 ,_ i n t 1 0 _ h a n d l e r
IRQVEC I N T 1 1 ,_ i n t 1 1 _ h a n d l e r
IRQVEC I N T 1 2 ,_ i n t 1 2 _ h a n d l e r
IRQVEC I N T 1 3 ,_ i n t 1 3 _ h a n d l e r
IRQVEC I N T 1 4 ,_ i n t 1 4 _ h a n d l e r
IRQVEC I N T 1 5 ,_ i n t 1 5 _ h a n d l e r