vectors.S 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. ;
  2. ; Port on Texas Instruments TMS320C6x architecture
  3. ;
  4. ; Copyright (C) 2004, 2006, 2009, 2010, 2011 Texas Instruments Incorporated
  5. ; Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
  6. ;
  7. ; This program is free software; you can redistribute it and/or modify
  8. ; it under the terms of the GNU General Public License version 2 as
  9. ; published by the Free Software Foundation.
  10. ;
  11. ; This section handles all the interrupt vector routines.
  12. ; At RESET the processor sets up the DRAM timing parameters and
  13. ; branches to the label _c_int00 which handles initialization for the C code.
  14. ;
  15. #define ALIGNMENT 5
  16. .macro IRQVEC name, handler
  17. .align ALIGNMENT
  18. .hidden \name
  19. .global \name
  20. \name:
  21. #ifdef CONFIG_C6X_BIG_KERNEL
  22. STW .D2T1 A0,*B15--[2]
  23. || MVKL .S1 \handler,A0
  24. MVKH .S1 \handler,A0
  25. B .S2X A0
  26. LDW .D2T1 *++B15[2],A0
  27. NOP 4
  28. NOP
  29. NOP
  30. .endm
  31. #else /* CONFIG_C6X_BIG_KERNEL */
  32. B .S2 \handler
  33. NOP
  34. NOP
  35. NOP
  36. NOP
  37. NOP
  38. NOP
  39. NOP
  40. .endm
  41. #endif /* CONFIG_C6X_BIG_KERNEL */
  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. IRQVEC NMI,_nmi_handler ; NMI interrupt
  62. IRQVEC AINT,_bad_interrupt ; reserved
  63. IRQVEC MSGINT,_bad_interrupt ; reserved
  64. IRQVEC INT4,_int4_handler
  65. IRQVEC INT5,_int5_handler
  66. IRQVEC INT6,_int6_handler
  67. IRQVEC INT7,_int7_handler
  68. IRQVEC INT8,_int8_handler
  69. IRQVEC INT9,_int9_handler
  70. IRQVEC INT10,_int10_handler
  71. IRQVEC INT11,_int11_handler
  72. IRQVEC INT12,_int12_handler
  73. IRQVEC INT13,_int13_handler
  74. IRQVEC INT14,_int14_handler
  75. IRQVEC INT15,_int15_handler