ex.S 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. /*
  2. * arch/sh/kernel/cpu/sh3/ex.S
  3. *
  4. * The SH-3 exception vector table.
  5. * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
  6. * Copyright (C) 2003 Paul Mundt
  7. *
  8. * This file is subject to the terms and conditions of the GNU General Public
  9. * License. See the file "COPYING" in the main directory of this archive
  10. * for more details.
  11. *
  12. */
  13. #include <linux/linkage.h>
  14. .align 2
  15. .data
  16. ENTRY(exception_handling_table)
  17. .long exception_error /* 000 */
  18. .long exception_error
  19. #if defined(CONFIG_MMU)
  20. .long tlb_miss_load /* 040 */
  21. .long tlb_miss_store
  22. .long initial_page_write
  23. .long tlb_protection_violation_load
  24. .long tlb_protection_violation_store
  25. .long address_error_load
  26. .long address_error_store /* 100 */
  27. #else
  28. .long exception_error ! tlb miss load /* 040 */
  29. .long exception_error ! tlb miss store
  30. .long exception_error ! initial page write
  31. .long exception_error ! tlb prot violation load
  32. .long exception_error ! tlb prot violation store
  33. .long exception_error ! address error load
  34. .long exception_error ! address error store /* 100 */
  35. #endif
  36. .long exception_error ! fpu_exception /* 120 */
  37. .long exception_error /* 140 */
  38. .long system_call ! Unconditional Trap /* 160 */
  39. .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
  40. .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
  41. ENTRY(nmi_slot)
  42. #if defined (CONFIG_KGDB_NMI)
  43. .long debug_enter /* 1C0 */ ! Allow trap to debugger
  44. #else
  45. .long exception_none /* 1C0 */ ! Not implemented yet
  46. #endif
  47. ENTRY(user_break_point_trap)
  48. .long break_point_trap /* 1E0 */
  49. ENTRY(interrupt_table)
  50. ! external hardware
  51. .long do_IRQ ! 0000 /* 200 */
  52. .long do_IRQ ! 0001
  53. .long do_IRQ ! 0010
  54. .long do_IRQ ! 0011
  55. .long do_IRQ ! 0100
  56. .long do_IRQ ! 0101
  57. .long do_IRQ ! 0110
  58. .long do_IRQ ! 0111
  59. .long do_IRQ ! 1000 /* 300 */
  60. .long do_IRQ ! 1001
  61. .long do_IRQ ! 1010
  62. .long do_IRQ ! 1011
  63. .long do_IRQ ! 1100
  64. .long do_IRQ ! 1101
  65. .long do_IRQ ! 1110
  66. .long exception_error
  67. ! Internal hardware
  68. .long do_IRQ ! TMU0 tuni0 /* 400 */
  69. .long do_IRQ ! TMU1 tuni1
  70. .long do_IRQ ! TMU2 tuni2
  71. .long do_IRQ ! ticpi2
  72. .long do_IRQ ! RTC ati
  73. .long do_IRQ ! pri
  74. .long do_IRQ ! cui
  75. .long do_IRQ ! SCI eri
  76. .long do_IRQ ! rxi /* 500 */
  77. .long do_IRQ ! txi
  78. .long do_IRQ ! tei
  79. .long do_IRQ ! WDT iti /* 560 */
  80. .long do_IRQ ! REF rcmi
  81. .long do_IRQ ! rovi
  82. .long do_IRQ
  83. .long do_IRQ /* 5E0 */
  84. #if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
  85. defined(CONFIG_CPU_SUBTYPE_SH7709) || \
  86. defined(CONFIG_CPU_SUBTYPE_SH7706) || \
  87. defined(CONFIG_CPU_SUBTYPE_SH7300) || \
  88. defined(CONFIG_CPU_SUBTYPE_SH7705) || \
  89. defined(CONFIG_CPU_SUBTYPE_SH7710)
  90. .long do_IRQ ! 32 IRQ irq0 /* 600 */
  91. .long do_IRQ ! 33 irq1
  92. .long do_IRQ ! 34 irq2
  93. .long do_IRQ ! 35 irq3
  94. .long do_IRQ ! 36 irq4
  95. .long do_IRQ ! 37 irq5
  96. .long do_IRQ ! 38
  97. .long do_IRQ ! 39
  98. .long do_IRQ ! 40 PINT pint0-7 /* 700 */
  99. .long do_IRQ ! 41 pint8-15
  100. .long do_IRQ ! 42
  101. .long do_IRQ ! 43
  102. .long do_IRQ ! 44
  103. .long do_IRQ ! 45
  104. .long do_IRQ ! 46
  105. .long do_IRQ ! 47
  106. .long do_IRQ ! 48 DMAC dei0 /* 800 */
  107. .long do_IRQ ! 49 dei1
  108. .long do_IRQ ! 50 dei2
  109. .long do_IRQ ! 51 dei3
  110. .long do_IRQ ! 52 IrDA eri1
  111. .long do_IRQ ! 53 rxi1
  112. .long do_IRQ ! 54 bri1
  113. .long do_IRQ ! 55 txi1
  114. .long do_IRQ ! 56 SCIF eri2
  115. .long do_IRQ ! 57 rxi2
  116. .long do_IRQ ! 58 bri2
  117. .long do_IRQ ! 59 txi2
  118. .long do_IRQ ! 60 ADC adi /* 980 */
  119. #if defined(CONFIG_CPU_SUBTYPE_SH7705)
  120. .long exception_none ! 61 /* 9A0 */
  121. .long exception_none ! 62
  122. .long exception_none ! 63
  123. .long exception_none ! 64 /* A00 */
  124. .long do_IRQ ! 65 USB usi0
  125. .long do_IRQ ! 66 usi1
  126. .long exception_none ! 67
  127. .long exception_none ! 68
  128. .long exception_none ! 69
  129. .long exception_none ! 70
  130. .long exception_none ! 71
  131. .long exception_none ! 72 /* B00 */
  132. .long exception_none ! 73
  133. .long exception_none ! 74
  134. .long exception_none ! 75
  135. .long exception_none ! 76
  136. .long exception_none ! 77
  137. .long exception_none ! 78
  138. .long exception_none ! 79
  139. .long do_IRQ ! 80 TPU0 tpi0 /* C00 */
  140. .long do_IRQ ! 81 TPU1 tpi1
  141. .long exception_none ! 82
  142. .long exception_none ! 83
  143. .long do_IRQ ! 84 TPU2 tpi2
  144. .long do_IRQ ! 85 TPU3 tpi3 /* CA0 */
  145. #endif
  146. #if defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7300)
  147. .long do_IRQ ! 61 LCDC lcdi /* 9A0 */
  148. .long do_IRQ ! 62 PCC pcc0i
  149. .long do_IRQ ! 63 pcc1i /* 9E0 */
  150. #endif
  151. #if defined(CONFIG_CPU_SUBTYPE_SH7710)
  152. .long exception_none ! 61 /* 9A0 */
  153. .long exception_none ! 62
  154. .long exception_none ! 63
  155. .long exception_none ! 64 /* A00 */
  156. .long exception_none ! 65
  157. .long exception_none ! 66
  158. .long exception_none ! 67
  159. .long exception_none ! 68
  160. .long exception_none ! 69
  161. .long exception_none ! 70
  162. .long exception_none ! 71
  163. .long exception_none ! 72 /* B00 */
  164. .long exception_none ! 73
  165. .long exception_none ! 74
  166. .long exception_none ! 75
  167. .long do_IRQ ! 76 DMAC2 dei4 /* B80 */
  168. .long do_IRQ ! 77 DMAC2 dei5
  169. .long exception_none ! 78
  170. .long do_IRQ ! 79 IPSEC ipseci /* BE0 */
  171. .long do_IRQ ! 80 EDMAC eint0 /* C00 */
  172. .long do_IRQ ! 81 EDMAC eint1
  173. .long do_IRQ ! 82 EDMAC eint2
  174. .long exception_none ! 83 /* C60 */
  175. .long exception_none ! 84
  176. .long exception_none ! 85
  177. .long exception_none ! 86
  178. .long exception_none ! 87
  179. .long exception_none ! 88 /* D00 */
  180. .long exception_none ! 89
  181. .long exception_none ! 90
  182. .long exception_none ! 91
  183. .long exception_none ! 92
  184. .long exception_none ! 93
  185. .long exception_none ! 94
  186. .long exception_none ! 95
  187. .long do_IRQ ! 96 SIOF eri0 /* E00 */
  188. .long do_IRQ ! 97 txi0
  189. .long do_IRQ ! 98 rxi0
  190. .long do_IRQ ! 99 cci0
  191. .long do_IRQ ! 100 eri1 /* E80 */
  192. .long do_IRQ ! 101 txi1
  193. .long do_IRQ ! 102 rxi2
  194. .long do_IRQ ! 103 cci3
  195. #endif
  196. #if defined(CONFIG_CPU_SUBTYPE_SH7300)
  197. .long do_IRQ ! 64
  198. .long do_IRQ ! 65
  199. .long do_IRQ ! 66
  200. .long do_IRQ ! 67
  201. .long do_IRQ ! 68
  202. .long do_IRQ ! 69
  203. .long do_IRQ ! 70
  204. .long do_IRQ ! 71
  205. .long do_IRQ ! 72
  206. .long do_IRQ ! 73
  207. .long do_IRQ ! 74
  208. .long do_IRQ ! 75
  209. .long do_IRQ ! 76
  210. .long do_IRQ ! 77
  211. .long do_IRQ ! 78
  212. .long do_IRQ ! 79
  213. .long do_IRQ ! 80 SCIF0(SH7300)
  214. .long do_IRQ ! 81
  215. .long do_IRQ ! 82
  216. .long do_IRQ ! 83
  217. .long do_IRQ ! 84
  218. .long do_IRQ ! 85
  219. .long do_IRQ ! 86
  220. .long do_IRQ ! 87
  221. .long do_IRQ ! 88
  222. .long do_IRQ ! 89
  223. .long do_IRQ ! 90
  224. .long do_IRQ ! 91
  225. .long do_IRQ ! 92
  226. .long do_IRQ ! 93
  227. .long do_IRQ ! 94
  228. .long do_IRQ ! 95
  229. .long do_IRQ ! 96
  230. .long do_IRQ ! 97
  231. .long do_IRQ ! 98
  232. .long do_IRQ ! 99
  233. .long do_IRQ ! 100
  234. .long do_IRQ ! 101
  235. .long do_IRQ ! 102
  236. .long do_IRQ ! 103
  237. .long do_IRQ ! 104
  238. .long do_IRQ ! 105
  239. .long do_IRQ ! 106
  240. .long do_IRQ ! 107
  241. .long do_IRQ ! 108
  242. #endif
  243. #endif