linux/arch/sparc/kernel/ttable_64.S
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* ttable.S: Sparc V9 Trap Table(s) with SpitFire/Cheetah/SUN4V extensions.
   3 *
   4 * Copyright (C) 1996, 2001, 2006 David S. Miller (davem@davemloft.net)
   5 */
   6
   7
   8        .globl  sparc64_ttable_tl0, sparc64_ttable_tl1
   9        .globl  tl0_icpe, tl1_icpe
  10        .globl  tl0_dcpe, tl1_dcpe
  11        .globl  tl0_fecc, tl1_fecc
  12        .globl  tl0_cee, tl1_cee
  13        .globl  tl0_iae, tl1_iae
  14        .globl  tl0_dae, tl1_dae
  15
  16sparc64_ttable_tl0:
  17tl0_resv000:    BOOT_KERNEL BTRAP(0x1) BTRAP(0x2) BTRAP(0x3)
  18tl0_resv004:    BTRAP(0x4)  BTRAP(0x5) BTRAP(0x6) BTRAP(0x7)
  19tl0_iax:        membar #Sync
  20                TRAP_NOSAVE_7INSNS(__spitfire_insn_access_exception)
  21tl0_itsb_4v:    SUN4V_ITSB_MISS
  22tl0_iae:        membar #Sync
  23                TRAP_NOSAVE_7INSNS(__spitfire_access_error)
  24tl0_resv00b:    BTRAP(0xb) BTRAP(0xc) BTRAP(0xd) BTRAP(0xe) BTRAP(0xf)
  25tl0_ill:        membar #Sync
  26                TRAP_7INSNS(do_illegal_instruction)
  27tl0_privop:     TRAP(do_privop)
  28tl0_resv012:    BTRAP(0x12) BTRAP(0x13) BTRAP(0x14) BTRAP(0x15) BTRAP(0x16) BTRAP(0x17)
  29tl0_resv018:    BTRAP(0x18) BTRAP(0x19)
  30tl0_mcd:        SUN4V_MCD_PRECISE
  31tl0_resv01b:    BTRAP(0x1b)
  32tl0_resv01c:    BTRAP(0x1c) BTRAP(0x1d) BTRAP(0x1e) BTRAP(0x1f)
  33tl0_fpdis:      TRAP_NOSAVE(do_fpdis)
  34tl0_fpieee:     TRAP_SAVEFPU(do_fpieee)
  35tl0_fpother:    TRAP_NOSAVE(do_fpother_check_fitos)
  36tl0_tof:        TRAP(do_tof)
  37tl0_cwin:       CLEAN_WINDOW
  38tl0_div0:       TRAP(do_div0)
  39tl0_resv029:    BTRAP(0x29) BTRAP(0x2a) BTRAP(0x2b) BTRAP(0x2c) BTRAP(0x2d) BTRAP(0x2e)
  40tl0_resv02f:    BTRAP(0x2f)
  41tl0_dax:        TRAP_NOSAVE(__spitfire_data_access_exception)
  42tl0_dtsb_4v:    SUN4V_DTSB_MISS
  43tl0_dae:        membar #Sync
  44                TRAP_NOSAVE_7INSNS(__spitfire_access_error)
  45tl0_resv033:    BTRAP(0x33)
  46tl0_mna:        TRAP_NOSAVE(do_mna)
  47tl0_lddfmna:    TRAP_NOSAVE(do_lddfmna)
  48tl0_stdfmna:    TRAP_NOSAVE(do_stdfmna)
  49tl0_privact:    TRAP_NOSAVE(__do_privact)
  50tl0_resv038:    BTRAP(0x38) BTRAP(0x39) BTRAP(0x3a) BTRAP(0x3b) BTRAP(0x3c) BTRAP(0x3d)
  51tl0_resv03e:    BTRAP(0x3e) BTRAP(0x3f) BTRAP(0x40)
  52#ifdef CONFIG_SMP
  53tl0_irq1:       TRAP_IRQ(smp_call_function_client, 1)
  54tl0_irq2:       TRAP_IRQ(smp_receive_signal_client, 2)
  55tl0_irq3:       TRAP_IRQ(smp_penguin_jailcell, 3)
  56tl0_irq4:       BTRAP(0x44)
  57#else
  58tl0_irq1:       BTRAP(0x41)
  59tl0_irq2:       BTRAP(0x42)
  60tl0_irq3:       BTRAP(0x43)
  61tl0_irq4:       BTRAP(0x44)
  62#endif
  63tl0_irq5:       TRAP_IRQ(handler_irq, 5)
  64#ifdef CONFIG_SMP
  65tl0_irq6:       TRAP_IRQ(smp_call_function_single_client, 6)
  66#else
  67tl0_irq6:       BTRAP(0x46)
  68#endif
  69tl0_irq7:       TRAP_IRQ(deferred_pcr_work_irq, 7)
  70#if defined(CONFIG_KGDB) && defined(CONFIG_SMP)
  71tl0_irq8:       TRAP_IRQ(smp_kgdb_capture_client, 8)
  72#else
  73tl0_irq8:       BTRAP(0x48)
  74#endif
  75tl0_irq9:       BTRAP(0x49)
  76tl0_irq10:      BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d)
  77tl0_irq14:      TRAP_IRQ(timer_interrupt, 14)
  78tl0_irq15:      TRAP_NMI_IRQ(perfctr_irq, 15)
  79tl0_resv050:    BTRAP(0x50) BTRAP(0x51) BTRAP(0x52) BTRAP(0x53) BTRAP(0x54) BTRAP(0x55)
  80tl0_resv056:    BTRAP(0x56) BTRAP(0x57) BTRAP(0x58) BTRAP(0x59) BTRAP(0x5a) BTRAP(0x5b)
  81tl0_resv05c:    BTRAP(0x5c) BTRAP(0x5d) BTRAP(0x5e) BTRAP(0x5f)
  82tl0_ivec:       TRAP_IVEC
  83tl0_paw:        TRAP(do_paw)
  84tl0_vaw:        TRAP(do_vaw)
  85tl0_cee:        membar #Sync
  86                TRAP_NOSAVE_7INSNS(__spitfire_cee_trap)
  87tl0_iamiss:
  88#include        "itlb_miss.S"
  89tl0_damiss:
  90#include        "dtlb_miss.S"
  91tl0_daprot:
  92#include        "dtlb_prot.S"
  93tl0_fecc:       BTRAP(0x70)     /* Fast-ECC on Cheetah */
  94tl0_dcpe:       BTRAP(0x71)     /* D-cache Parity Error on Cheetah+ */
  95tl0_icpe:       BTRAP(0x72)     /* I-cache Parity Error on Cheetah+ */
  96tl0_resv073:    BTRAP(0x73) BTRAP(0x74) BTRAP(0x75)
  97tl0_resv076:    BTRAP(0x76) BTRAP(0x77) BTRAP(0x78) BTRAP(0x79) BTRAP(0x7a) BTRAP(0x7b)
  98tl0_cpu_mondo:  TRAP_NOSAVE(sun4v_cpu_mondo)
  99tl0_dev_mondo:  TRAP_NOSAVE(sun4v_dev_mondo)
 100tl0_res_mondo:  TRAP_NOSAVE(sun4v_res_mondo)
 101tl0_nres_mondo: TRAP_NOSAVE(sun4v_nonres_mondo)
 102tl0_s0n:        SPILL_0_NORMAL
 103tl0_s1n:        SPILL_1_NORMAL
 104tl0_s2n:        SPILL_2_NORMAL
 105tl0_s3n:        SPILL_0_NORMAL_ETRAP
 106tl0_s4n:        SPILL_1_GENERIC_ETRAP
 107tl0_s5n:        SPILL_1_GENERIC_ETRAP_FIXUP
 108tl0_s6n:        SPILL_2_GENERIC_ETRAP
 109tl0_s7n:        SPILL_2_GENERIC_ETRAP_FIXUP
 110tl0_s0o:        SPILL_0_OTHER
 111tl0_s1o:        SPILL_1_OTHER
 112tl0_s2o:        SPILL_2_OTHER
 113tl0_s3o:        SPILL_3_OTHER
 114tl0_s4o:        SPILL_4_OTHER
 115tl0_s5o:        SPILL_5_OTHER
 116tl0_s6o:        SPILL_6_OTHER
 117tl0_s7o:        SPILL_7_OTHER
 118tl0_f0n:        FILL_0_NORMAL
 119tl0_f1n:        FILL_1_NORMAL
 120tl0_f2n:        FILL_2_NORMAL
 121tl0_f3n:        FILL_3_NORMAL
 122tl0_f4n:        FILL_4_NORMAL
 123tl0_f5n:        FILL_0_NORMAL_RTRAP
 124tl0_f6n:        FILL_1_GENERIC_RTRAP
 125tl0_f7n:        FILL_2_GENERIC_RTRAP
 126tl0_f0o:        FILL_0_OTHER
 127tl0_f1o:        FILL_1_OTHER
 128tl0_f2o:        FILL_2_OTHER
 129tl0_f3o:        FILL_3_OTHER
 130tl0_f4o:        FILL_4_OTHER
 131tl0_f5o:        FILL_5_OTHER
 132tl0_f6o:        FILL_6_OTHER
 133tl0_f7o:        FILL_7_OTHER
 134tl0_resv100:    BTRAP(0x100)
 135tl0_bkpt:       BREAKPOINT_TRAP
 136tl0_divz:       TRAP(do_div0)
 137tl0_flushw:     FLUSH_WINDOW_TRAP
 138tl0_resv104:    BTRAP(0x104) BTRAP(0x105) BTRAP(0x106) BTRAP(0x107) BTRAP(0x108)
 139tl0_resv109:    BTRAP(0x109) BTRAP(0x10a) BTRAP(0x10b) BTRAP(0x10c) BTRAP(0x10d)
 140tl0_resv10e:    BTRAP(0x10e) BTRAP(0x10f)
 141tl0_linux32:    LINUX_32BIT_SYSCALL_TRAP
 142tl0_oldlinux64: LINUX_64BIT_SYSCALL_TRAP
 143tl0_resv112:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_18,0x112) TRAP_UTRAP(UT_TRAP_INSTRUCTION_19,0x113)
 144tl0_resv114:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_20,0x114) TRAP_UTRAP(UT_TRAP_INSTRUCTION_21,0x115)
 145tl0_resv116:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_22,0x116) TRAP_UTRAP(UT_TRAP_INSTRUCTION_23,0x117)
 146tl0_resv118:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_24,0x118) TRAP_UTRAP(UT_TRAP_INSTRUCTION_25,0x119)
 147tl0_resv11a:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_26,0x11a) TRAP_UTRAP(UT_TRAP_INSTRUCTION_27,0x11b)
 148tl0_resv11c:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_28,0x11c) TRAP_UTRAP(UT_TRAP_INSTRUCTION_29,0x11d)
 149tl0_resv11e:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_30,0x11e) TRAP_UTRAP(UT_TRAP_INSTRUCTION_31,0x11f)
 150tl0_getcc:      GETCC_TRAP
 151tl0_setcc:      SETCC_TRAP
 152tl0_getpsr:     TRAP(do_getpsr)
 153tl0_resv123:    BTRAP(0x123) BTRAP(0x124) BTRAP(0x125) BTRAP(0x126) BTRAP(0x127)
 154tl0_resv128:    BTRAP(0x128) BTRAP(0x129) BTRAP(0x12a) BTRAP(0x12b) BTRAP(0x12c)
 155tl0_resv12d:    BTRAP(0x12d) BTRAP(0x12e) BTRAP(0x12f) BTRAP(0x130) BTRAP(0x131)
 156tl0_resv132:    BTRAP(0x132) BTRAP(0x133) BTRAP(0x134) BTRAP(0x135) BTRAP(0x136)
 157tl0_resv137:    BTRAP(0x137) BTRAP(0x138) BTRAP(0x139) BTRAP(0x13a) BTRAP(0x13b)
 158tl0_resv13c:    BTRAP(0x13c) BTRAP(0x13d) BTRAP(0x13e) BTRAP(0x13f) BTRAP(0x140)
 159tl0_resv141:    BTRAP(0x141) BTRAP(0x142) BTRAP(0x143) BTRAP(0x144) BTRAP(0x145)
 160tl0_resv146:    BTRAP(0x146) BTRAP(0x147) BTRAP(0x148) BTRAP(0x149) BTRAP(0x14a)
 161tl0_resv14b:    BTRAP(0x14b) BTRAP(0x14c) BTRAP(0x14d) BTRAP(0x14e) BTRAP(0x14f)
 162tl0_resv150:    BTRAP(0x150) BTRAP(0x151) BTRAP(0x152) BTRAP(0x153) BTRAP(0x154)
 163tl0_resv155:    BTRAP(0x155) BTRAP(0x156) BTRAP(0x157) BTRAP(0x158) BTRAP(0x159)
 164tl0_resv15a:    BTRAP(0x15a) BTRAP(0x15b) BTRAP(0x15c) BTRAP(0x15d) BTRAP(0x15e)
 165tl0_resv15f:    BTRAP(0x15f) BTRAP(0x160) BTRAP(0x161) BTRAP(0x162) BTRAP(0x163)
 166tl0_resv164:    BTRAP(0x164) BTRAP(0x165) BTRAP(0x166) BTRAP(0x167) BTRAP(0x168)
 167tl0_resv169:    BTRAP(0x169) BTRAP(0x16a) BTRAP(0x16b) BTRAP(0x16c)
 168tl0_linux64:    LINUX_64BIT_SYSCALL_TRAP
 169tl0_gsctx:      TRAP(sparc64_get_context) TRAP(sparc64_set_context)
 170tl0_resv170:    KPROBES_TRAP(0x170) KPROBES_TRAP(0x171) KGDB_TRAP(0x172)
 171tl0_resv173:    UPROBES_TRAP(0x173) UPROBES_TRAP(0x174) BTRAP(0x175) BTRAP(0x176) BTRAP(0x177)
 172tl0_resv178:    BTRAP(0x178) BTRAP(0x179) BTRAP(0x17a) BTRAP(0x17b) BTRAP(0x17c)
 173tl0_resv17d:    BTRAP(0x17d) BTRAP(0x17e) BTRAP(0x17f)
 174#define BTRAPS(x) BTRAP(x) BTRAP(x+1) BTRAP(x+2) BTRAP(x+3) BTRAP(x+4) BTRAP(x+5) BTRAP(x+6) BTRAP(x+7)
 175tl0_resv180:    BTRAPS(0x180) BTRAPS(0x188)
 176tl0_resv190:    BTRAPS(0x190) BTRAPS(0x198)
 177tl0_resv1a0:    BTRAPS(0x1a0) BTRAPS(0x1a8)
 178tl0_resv1b0:    BTRAPS(0x1b0) BTRAPS(0x1b8)
 179tl0_resv1c0:    BTRAPS(0x1c0) BTRAPS(0x1c8)
 180tl0_resv1d0:    BTRAPS(0x1d0) BTRAPS(0x1d8)
 181tl0_resv1e0:    BTRAPS(0x1e0) BTRAPS(0x1e8)
 182tl0_resv1f0:    BTRAPS(0x1f0) BTRAPS(0x1f8)
 183
 184sparc64_ttable_tl1:
 185tl1_resv000:    BOOT_KERNEL    BTRAPTL1(0x1) BTRAPTL1(0x2) BTRAPTL1(0x3)
 186tl1_resv004:    BTRAPTL1(0x4)  BTRAPTL1(0x5) BTRAPTL1(0x6) BTRAPTL1(0x7)
 187tl1_iax:        TRAP_NOSAVE(__spitfire_insn_access_exception_tl1)
 188tl1_itsb_4v:    SUN4V_ITSB_MISS
 189tl1_iae:        membar #Sync
 190                TRAP_NOSAVE_7INSNS(__spitfire_access_error)
 191tl1_resv00b:    BTRAPTL1(0xb) BTRAPTL1(0xc) BTRAPTL1(0xd) BTRAPTL1(0xe) BTRAPTL1(0xf)
 192tl1_ill:        TRAPTL1(do_ill_tl1)
 193tl1_privop:     BTRAPTL1(0x11)
 194tl1_resv012:    BTRAPTL1(0x12) BTRAPTL1(0x13) BTRAPTL1(0x14) BTRAPTL1(0x15)
 195tl1_resv016:    BTRAPTL1(0x16) BTRAPTL1(0x17) BTRAPTL1(0x18) BTRAPTL1(0x19)
 196tl1_resv01a:    BTRAPTL1(0x1a) BTRAPTL1(0x1b) BTRAPTL1(0x1c) BTRAPTL1(0x1d)
 197tl1_resv01e:    BTRAPTL1(0x1e) BTRAPTL1(0x1f)
 198tl1_fpdis:      TRAP_NOSAVE(do_fpdis)
 199tl1_fpieee:     TRAPTL1(do_fpieee_tl1)
 200tl1_fpother:    TRAPTL1(do_fpother_tl1)
 201tl1_tof:        TRAPTL1(do_tof_tl1)
 202tl1_cwin:       CLEAN_WINDOW
 203tl1_div0:       TRAPTL1(do_div0_tl1)
 204tl1_resv029:    BTRAPTL1(0x29) BTRAPTL1(0x2a) BTRAPTL1(0x2b) BTRAPTL1(0x2c)
 205tl1_resv02d:    BTRAPTL1(0x2d) BTRAPTL1(0x2e) BTRAPTL1(0x2f)
 206tl1_dax:        TRAP_NOSAVE(__spitfire_data_access_exception_tl1)
 207tl1_dtsb_4v:    SUN4V_DTSB_MISS
 208tl1_dae:        membar #Sync
 209                TRAP_NOSAVE_7INSNS(__spitfire_access_error)
 210tl1_resv033:    BTRAPTL1(0x33)
 211tl1_mna:        TRAP_NOSAVE(do_mna)
 212tl1_lddfmna:    TRAPTL1(do_lddfmna_tl1)
 213tl1_stdfmna:    TRAPTL1(do_stdfmna_tl1)
 214tl1_privact:    BTRAPTL1(0x37)
 215tl1_resv038:    BTRAPTL1(0x38) BTRAPTL1(0x39) BTRAPTL1(0x3a) BTRAPTL1(0x3b)
 216tl1_resv03c:    BTRAPTL1(0x3c) BTRAPTL1(0x3d) BTRAPTL1(0x3e) BTRAPTL1(0x3f)
 217tl1_resv040:    BTRAPTL1(0x40)
 218tl1_irq1:       TRAP_IRQ(do_irq_tl1, 1)  TRAP_IRQ(do_irq_tl1, 2)  TRAP_IRQ(do_irq_tl1, 3)
 219tl1_irq4:       TRAP_IRQ(do_irq_tl1, 4)  TRAP_IRQ(do_irq_tl1, 5)  TRAP_IRQ(do_irq_tl1, 6)
 220tl1_irq7:       TRAP_IRQ(do_irq_tl1, 7)  TRAP_IRQ(do_irq_tl1, 8)  TRAP_IRQ(do_irq_tl1, 9)
 221tl1_irq10:      TRAP_IRQ(do_irq_tl1, 10) TRAP_IRQ(do_irq_tl1, 11)
 222tl1_irq12:      TRAP_IRQ(do_irq_tl1, 12) TRAP_IRQ(do_irq_tl1, 13)
 223tl1_irq14:      TRAP_IRQ(do_irq_tl1, 14) TRAP_IRQ(do_irq_tl1, 15)
 224tl1_resv050:    BTRAPTL1(0x50) BTRAPTL1(0x51) BTRAPTL1(0x52) BTRAPTL1(0x53)
 225tl1_resv054:    BTRAPTL1(0x54) BTRAPTL1(0x55) BTRAPTL1(0x56) BTRAPTL1(0x57)
 226tl1_resv058:    BTRAPTL1(0x58) BTRAPTL1(0x59) BTRAPTL1(0x5a) BTRAPTL1(0x5b)
 227tl1_resv05c:    BTRAPTL1(0x5c) BTRAPTL1(0x5d) BTRAPTL1(0x5e) BTRAPTL1(0x5f)
 228tl1_ivec:       TRAP_IVEC
 229tl1_paw:        TRAPTL1(do_paw_tl1)
 230tl1_vaw:        TRAPTL1(do_vaw_tl1)
 231tl1_cee:        BTRAPTL1(0x63)
 232tl1_iamiss:     BTRAPTL1(0x64) BTRAPTL1(0x65) BTRAPTL1(0x66) BTRAPTL1(0x67)
 233tl1_damiss:
 234#include        "dtlb_miss.S"
 235tl1_daprot:
 236#include        "dtlb_prot.S"
 237tl1_fecc:       BTRAPTL1(0x70)  /* Fast-ECC on Cheetah */
 238tl1_dcpe:       BTRAPTL1(0x71)  /* D-cache Parity Error on Cheetah+ */
 239tl1_icpe:       BTRAPTL1(0x72)  /* I-cache Parity Error on Cheetah+ */
 240tl1_resv073:    BTRAPTL1(0x73)
 241tl1_resv074:    BTRAPTL1(0x74) BTRAPTL1(0x75) BTRAPTL1(0x76) BTRAPTL1(0x77)
 242tl1_resv078:    BTRAPTL1(0x78) BTRAPTL1(0x79) BTRAPTL1(0x7a) BTRAPTL1(0x7b)
 243tl1_resv07c:    BTRAPTL1(0x7c) BTRAPTL1(0x7d) BTRAPTL1(0x7e) BTRAPTL1(0x7f)
 244tl1_s0n:        SPILL_0_NORMAL
 245tl1_s1n:        SPILL_1_NORMAL
 246tl1_s2n:        SPILL_2_NORMAL
 247tl1_s3n:        SPILL_3_NORMAL
 248tl1_s4n:        SPILL_4_NORMAL
 249tl1_s5n:        SPILL_5_NORMAL
 250tl1_s6n:        SPILL_6_NORMAL
 251tl1_s7n:        SPILL_7_NORMAL
 252tl1_s0o:        SPILL_0_OTHER
 253tl1_s1o:        SPILL_1_OTHER
 254tl1_s2o:        SPILL_2_OTHER
 255tl1_s3o:        SPILL_3_OTHER
 256tl1_s4o:        SPILL_4_OTHER
 257tl1_s5o:        SPILL_5_OTHER
 258tl1_s6o:        SPILL_6_OTHER
 259tl1_s7o:        SPILL_7_OTHER
 260tl1_f0n:        FILL_0_NORMAL
 261tl1_f1n:        FILL_1_NORMAL
 262tl1_f2n:        FILL_2_NORMAL
 263tl1_f3n:        FILL_3_NORMAL
 264tl1_f4n:        FILL_4_NORMAL
 265tl1_f5n:        FILL_5_NORMAL
 266tl1_f6n:        FILL_6_NORMAL
 267tl1_f7n:        FILL_7_NORMAL
 268tl1_f0o:        FILL_0_OTHER
 269tl1_f1o:        FILL_1_OTHER
 270tl1_f2o:        FILL_2_OTHER
 271tl1_f3o:        FILL_3_OTHER
 272tl1_f4o:        FILL_4_OTHER
 273tl1_f5o:        FILL_5_OTHER
 274tl1_f6o:        FILL_6_OTHER
 275tl1_f7o:        FILL_7_OTHER
 276