aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/ttable.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-09 19:12:22 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:12:05 -0500
commitaa9143b9719c07fb6f1f6207790c9c5086ae07e7 (patch)
tree74d56ecc53ed0542f200d6c6257c8f051095111c /arch/sparc64/kernel/ttable.S
parent12816ab38adddc9d7e9b3315d1739655dedc7c9f (diff)
[SPARC64]: Implement sun4v TSB miss handlers.
When we register a TSB with the hypervisor, so that it or hardware can handle TLB misses and do the TSB walk for us, the hypervisor traps down to these trap when it incurs a TSB miss. Processing is simple, we load the missing virtual address and context, and do a full page table walk. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/ttable.S')
-rw-r--r--arch/sparc64/kernel/ttable.S15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/sparc64/kernel/ttable.S b/arch/sparc64/kernel/ttable.S
index 1608ba4bf1c1..a9d210e11eb3 100644
--- a/arch/sparc64/kernel/ttable.S
+++ b/arch/sparc64/kernel/ttable.S
@@ -1,7 +1,6 @@
1/* $Id: ttable.S,v 1.38 2002/02/09 19:49:30 davem Exp $ 1/* ttable.S: Sparc V9 Trap Table(s) with SpitFire/Cheetah/SUN4V extensions.
2 * ttable.S: Sparc V9 Trap Table(s) with SpitFire/Cheetah extensions.
3 * 2 *
4 * Copyright (C) 1996, 2001 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1996, 2001, 2006 David S. Miller (davem@davemloft.net)
5 */ 4 */
6 5
7#include <linux/config.h> 6#include <linux/config.h>
@@ -22,7 +21,8 @@ tl0_iax: membar #Sync
22tl0_resv009: BTRAP(0x9) 21tl0_resv009: BTRAP(0x9)
23tl0_iae: membar #Sync 22tl0_iae: membar #Sync
24 TRAP_NOSAVE_7INSNS(__spitfire_access_error) 23 TRAP_NOSAVE_7INSNS(__spitfire_access_error)
25tl0_resv00b: BTRAP(0xb) BTRAP(0xc) BTRAP(0xd) BTRAP(0xe) BTRAP(0xf) 24tl0_itsb_4v: SUN4V_ITSB_MISS
25tl0_resv00c: BTRAP(0xc) BTRAP(0xd) BTRAP(0xe) BTRAP(0xf)
26tl0_ill: membar #Sync 26tl0_ill: membar #Sync
27 TRAP_7INSNS(do_illegal_instruction) 27 TRAP_7INSNS(do_illegal_instruction)
28tl0_privop: TRAP(do_privop) 28tl0_privop: TRAP(do_privop)
@@ -38,7 +38,7 @@ tl0_div0: TRAP(do_div0)
38tl0_resv029: BTRAP(0x29) BTRAP(0x2a) BTRAP(0x2b) BTRAP(0x2c) BTRAP(0x2d) BTRAP(0x2e) 38tl0_resv029: BTRAP(0x29) BTRAP(0x2a) BTRAP(0x2b) BTRAP(0x2c) BTRAP(0x2d) BTRAP(0x2e)
39tl0_resv02f: BTRAP(0x2f) 39tl0_resv02f: BTRAP(0x2f)
40tl0_dax: TRAP_NOSAVE(__spitfire_data_access_exception) 40tl0_dax: TRAP_NOSAVE(__spitfire_data_access_exception)
41tl0_resv031: BTRAP(0x31) 41tl0_dtsb_4v: SUN4V_DTSB_MISS
42tl0_dae: membar #Sync 42tl0_dae: membar #Sync
43 TRAP_NOSAVE_7INSNS(__spitfire_access_error) 43 TRAP_NOSAVE_7INSNS(__spitfire_access_error)
44tl0_resv033: BTRAP(0x33) 44tl0_resv033: BTRAP(0x33)
@@ -185,7 +185,8 @@ tl1_iax: TRAP_NOSAVE(__spitfire_insn_access_exception_tl1)
185tl1_resv009: BTRAPTL1(0x9) 185tl1_resv009: BTRAPTL1(0x9)
186tl1_iae: membar #Sync 186tl1_iae: membar #Sync
187 TRAP_NOSAVE_7INSNS(__spitfire_access_error) 187 TRAP_NOSAVE_7INSNS(__spitfire_access_error)
188tl1_resv00b: BTRAPTL1(0xb) BTRAPTL1(0xc) BTRAPTL1(0xd) BTRAPTL1(0xe) BTRAPTL1(0xf) 188tl1_itsb_4v: SUN4V_ITSB_MISS
189tl1_resv00c: BTRAPTL1(0xc) BTRAPTL1(0xd) BTRAPTL1(0xe) BTRAPTL1(0xf)
189tl1_ill: TRAPTL1(do_ill_tl1) 190tl1_ill: TRAPTL1(do_ill_tl1)
190tl1_privop: BTRAPTL1(0x11) 191tl1_privop: BTRAPTL1(0x11)
191tl1_resv012: BTRAPTL1(0x12) BTRAPTL1(0x13) BTRAPTL1(0x14) BTRAPTL1(0x15) 192tl1_resv012: BTRAPTL1(0x12) BTRAPTL1(0x13) BTRAPTL1(0x14) BTRAPTL1(0x15)
@@ -201,7 +202,7 @@ tl1_div0: TRAPTL1(do_div0_tl1)
201tl1_resv029: BTRAPTL1(0x29) BTRAPTL1(0x2a) BTRAPTL1(0x2b) BTRAPTL1(0x2c) 202tl1_resv029: BTRAPTL1(0x29) BTRAPTL1(0x2a) BTRAPTL1(0x2b) BTRAPTL1(0x2c)
202tl1_resv02d: BTRAPTL1(0x2d) BTRAPTL1(0x2e) BTRAPTL1(0x2f) 203tl1_resv02d: BTRAPTL1(0x2d) BTRAPTL1(0x2e) BTRAPTL1(0x2f)
203tl1_dax: TRAP_NOSAVE(__spitfire_data_access_exception_tl1) 204tl1_dax: TRAP_NOSAVE(__spitfire_data_access_exception_tl1)
204tl1_resv031: BTRAPTL1(0x31) 205tl1_dtsb_4v: SUN4V_DTSB_MISS
205tl1_dae: membar #Sync 206tl1_dae: membar #Sync
206 TRAP_NOSAVE_7INSNS(__spitfire_access_error) 207 TRAP_NOSAVE_7INSNS(__spitfire_access_error)
207tl1_resv033: BTRAPTL1(0x33) 208tl1_resv033: BTRAPTL1(0x33)