cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ttable_64.S (11128B)


      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