123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- ;
- ; Port on Texas Instruments TMS320C6x architecture
- ;
- ; Copyright (C) 2004, 2006, 2009, 2010, 2011 Texas Instruments Incorporated
- ; Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
- ;
- ; This program is free software; you can redistribute it and/or modify
- ; it under the terms of the GNU General Public License version 2 as
- ; published by the Free Software Foundation.
- ;
- ; 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 ALIGNMENT 5
- .macro IRQVEC name, handler
- .align ALIGNMENT
- .hidden \name
- .global \name
- \name:
- #ifdef CONFIG_C6X_BIG_KERNEL
- STW .D2T1 A0,*B15--[2]
- || MVKL .S1 \handler,A0
- MVKH .S1 \handler,A0
- B .S2X A0
- LDW .D2T1 *++B15[2],A0
- NOP 4
- NOP
- NOP
- .endm
- #else /* CONFIG_C6X_BIG_KERNEL */
- B .S2 \handler
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- .endm
- #endif /* CONFIG_C6X_BIG_KERNEL */
- .sect ".vectors","ax"
- .align ALIGNMENT
- .global RESET
- .hidden RESET
- RESET:
- #ifdef CONFIG_C6X_BIG_KERNEL
- MVKL .S1 _c_int00,A0 ; branch to _c_int00
- MVKH .S1 _c_int00,A0
- B .S2X A0
- #else
- B .S2 _c_int00
- NOP
- NOP
- #endif
- NOP
- NOP
- NOP
- NOP
- NOP
- IRQVEC NMI,_nmi_handler ; NMI interrupt
- IRQVEC AINT,_bad_interrupt ; reserved
- IRQVEC MSGINT,_bad_interrupt ; reserved
- IRQVEC INT4,_int4_handler
- IRQVEC INT5,_int5_handler
- IRQVEC INT6,_int6_handler
- IRQVEC INT7,_int7_handler
- IRQVEC INT8,_int8_handler
- IRQVEC INT9,_int9_handler
- IRQVEC INT10,_int10_handler
- IRQVEC INT11,_int11_handler
- IRQVEC INT12,_int12_handler
- IRQVEC INT13,_int13_handler
- IRQVEC INT14,_int14_handler
- IRQVEC INT15,_int15_handler
|