PERFORCE change 91772 for review
Kip Macy
kmacy at FreeBSD.org
Tue Feb 14 15:59:31 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=91772
Change 91772 by kmacy at kmacy_storage:sun4v_work on 2006/02/14 23:59:06
re-shape the trap table into something that would be valid on sun4v
all handlers still need to be re-written
Affected files ...
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#2 edit
Differences ...
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#2 (text+ko) ====
@@ -681,6 +681,8 @@
.align 128
.endm
+#ifdef notyet
+/* SUN4V_FIXME */
ENTRY(tl0_immu_miss_set_ref)
/*
* Set the reference bit.
@@ -701,6 +703,7 @@
1: retry
END(tl0_immu_miss_set_ref)
+
ENTRY(tl0_immu_miss_trap)
/*
* Put back the contents of the tag access register, in case we
@@ -1142,7 +1145,7 @@
RSF_TRAP(T_FILL)
RSF_TRAP(T_FILL)
.endm
-
+#endif /* notyet */
ENTRY(tl0_sftrap)
rdpr %tstate, %g1
and %g1, TSTATE_CWP_MASK, %g1
@@ -1302,7 +1305,8 @@
.macro tl1_intr_level
INTR_LEVEL(1)
.endm
-
+#ifdef notyet
+/* SUN4V_FIXME */
.macro tl1_immu_miss
/*
* Load the context and the virtual page number from the tag access
@@ -1665,7 +1669,7 @@
ba %xcc, tl1_trap
mov T_DATA_PROTECTION | T_KERNEL, %o0
END(tl1_dmmu_prot_trap)
-
+#endif /* notyet */
.macro tl1_spill_0_n
SPILL(stx, %sp + SPOFF, 8, EMPTY)
saved
@@ -1820,43 +1824,36 @@
.sect .trap
.align 0x8000
.globl tl0_base
-
tl0_base:
- tl0_reserved 8 ! 0x0-0x7
+ tl0_reserved 8 ! 0x0-0x7
tl0_insn_excptn:
- tl0_insn_excptn ! 0x8
- tl0_reserved 1 ! 0x9
-tl0_insn_error:
- tl0_gen T_INSTRUCTION_ERROR ! 0xa
- tl0_reserved 5 ! 0xb-0xf
+ tl0_insn_excptn ! 0x8
+ tl0_reserved 7 ! 0x9-0xf
tl0_insn_illegal:
- tl0_gen T_ILLEGAL_INSTRUCTION ! 0x10
+ tl0_gen T_ILLEGAL_INSTRUCTION ! 0x10
tl0_priv_opcode:
- tl0_gen T_PRIVILEGED_OPCODE ! 0x11
- tl0_reserved 14 ! 0x12-0x1f
+ tl0_gen T_PRIVILEGED_OPCODE ! 0x11
+ tl0_reserved 14 ! 0x12-0x1f
tl0_fp_disabled:
- tl0_gen T_FP_DISABLED ! 0x20
+ tl0_gen T_FP_DISABLED ! 0x20
tl0_fp_ieee:
- tl0_gen T_FP_EXCEPTION_IEEE_754 ! 0x21
+ tl0_gen T_FP_EXCEPTION_IEEE_754 ! 0x21
tl0_fp_other:
- tl0_gen T_FP_EXCEPTION_OTHER ! 0x22
+ tl0_gen T_FP_EXCEPTION_OTHER ! 0x22
tl0_tag_ovflw:
- tl0_gen T_TAG_OVERFLOW ! 0x23
+ tl0_gen T_TAG_OVERFLOW ! 0x23
tl0_clean_window:
- clean_window ! 0x24
+ clean_window ! 0x24
tl0_divide:
- tl0_gen T_DIVISION_BY_ZERO ! 0x28
- tl0_reserved 7 ! 0x29-0x2f
+ tl0_gen T_DIVISION_BY_ZERO ! 0x28
+ tl0_reserved 7 ! 0x29-0x2f
tl0_data_excptn:
- tl0_data_excptn ! 0x30
- tl0_reserved 1 ! 0x31
-tl0_data_error:
- tl0_gen T_DATA_ERROR ! 0x32
- tl0_reserved 1 ! 0x33
+ tl0_data_excptn ! 0x30
+ tl0_reserved 3 ! 0x31-0x33
tl0_align:
- tl0_align ! 0x34
+ tl0_align ! 0x34
tl0_align_lddf:
- tl0_gen T_RESERVED ! 0x35
+ tl0_gen T_RESERVED ! 0x35
tl0_align_stdf:
tl0_gen T_RESERVED ! 0x36
tl0_priv_action:
@@ -1864,35 +1861,63 @@
tl0_reserved 9 ! 0x38-0x40
tl0_intr_level:
tl0_intr_level ! 0x41-0x4f
- tl0_reserved 16 ! 0x50-0x5f
-tl0_intr_vector:
- intr_vector ! 0x60
-tl0_watch_phys:
- tl0_gen T_PA_WATCHPOINT ! 0x61
+ tl0_reserved 18 ! 0x50-0x61
tl0_watch_virt:
tl0_gen T_VA_WATCHPOINT ! 0x62
-tl0_ecc:
- tl0_gen T_CORRECTED_ECC_ERROR ! 0x63
-tl0_immu_miss:
- tl0_immu_miss ! 0x64
-tl0_dmmu_miss:
- tl0_dmmu_miss ! 0x68
-tl0_dmmu_prot:
- tl0_dmmu_prot ! 0x6c
- tl0_reserved 16 ! 0x70-0x7f
-tl0_spill_0_n:
- tl0_spill_0_n ! 0x80
-tl0_spill_1_n:
- tl0_spill_1_n ! 0x84
- tl0_spill_bad 14 ! 0x88-0xbf
-tl0_fill_0_n:
- tl0_fill_0_n ! 0xc0
-tl0_fill_1_n:
- tl0_fill_1_n ! 0xc4
- tl0_fill_bad 14 ! 0xc8-0xff
+ tl0_reserved 19 ! 0x63-0x75
+tl0_breakpoint:
+ tl0_gen T_BREAKPOINT ! 0x76
+ tl0_reserved 5 ! 0x77-0x7b
+tl0_cpu_mondo:
+ tl0_cpu_mondo ! 0x7c
+tl0_dev_mondo:
+ tl0_dev_mondo ! 0x7d
+tl0_resumable_error:
+ tl0_resumable_error ! 0x7e
+tl0_unresumable_error:
+ tl0_unresumable_error ! 0x7f
+tl0_spill_n_normal:
+ tl0_spill_n_normal T_SPILL_0 ! 0x80
+ tl0_spill_n_normal T_SPILL_1 ! 0x84
+ tl0_spill_n_normal T_SPILL_2 ! 0x88
+ tl0_spill_n_normal T_SPILL_3 ! 0x8c
+ tl0_spill_n_normal T_SPILL_4 ! 0x90
+ tl0_spill_n_normal T_SPILL_5 ! 0x94
+ tl0_spill_n_normal T_SPILL_6 ! 0x98
+ tl0_spill_n_normal T_SPILL_7 ! 0x9c
+ tl0_reserved 3 ! 0x9d-0x9f
+tl0_spill_n_other:
+ tl0_spill_n_other T_SPILL_0 ! 0xa0
+ tl0_spill_n_other T_SPILL_1 ! 0xa4
+ tl0_spill_n_other T_SPILL_2 ! 0xa8
+ tl0_spill_n_other T_SPILL_3 ! 0xac
+ tl0_spill_n_other T_SPILL_4 ! 0xb0
+ tl0_spill_n_other T_SPILL_5 ! 0xb4
+ tl0_spill_n_other T_SPILL_6 ! 0xb8
+ tl0_spill_n_other T_SPILL_7 ! 0xbc
+ tl0_reserved 3 ! 0xbd-0xbf
+tl0_fill_n_normal:
+ tl0_fill_n_normal T_FILL_0 ! 0xc0
+ tl0_fill_n_normal T_FILL_1 ! 0xc4
+ tl0_fill_n_normal T_FILL_2 ! 0xc8
+ tl0_fill_n_normal T_FILL_3 ! 0xcc
+ tl0_fill_n_normal T_FILL_4 ! 0xd0
+ tl0_fill_n_normal T_FILL_5 ! 0xd4
+ tl0_fill_n_normal T_FILL_6 ! 0xd8
+ tl0_fill_n_normal T_FILL_7 ! 0xdc
+ tl0_reserved 3 ! 0xdd-0xdf
+tl0_fill_n_other:
+ tl0_fill_n_other T_FILL_0 ! 0xe0
+ tl0_fill_n_other T_FILL_1 ! 0xe4
+ tl0_fill_n_other T_FILL_2 ! 0xe8
+ tl0_fill_n_other T_FILL_3 ! 0xec
+ tl0_fill_n_other T_FILL_4 ! 0xf0
+ tl0_fill_n_other T_FILL_5 ! 0xf4
+ tl0_fill_n_other T_FILL_6 ! 0xf8
+ tl0_fill_n_other T_FILL_7 ! 0xfc
+ tl0_reserved 3 ! 0xfd-0xff
tl0_soft:
tl0_gen T_SYSCALL ! 0x100
- tl0_gen T_BREAKPOINT ! 0x101
tl0_gen T_DIVISION_BY_ZERO ! 0x102
tl0_reserved 1 ! 0x103
tl0_gen T_CLEAN_WINDOW ! 0x104
@@ -1926,42 +1951,37 @@
tl0_gen T_SYSCALL ! 0x143
tl0_reserved 188 ! 0x144-0x1ff
-tl1_base:
- tl1_reserved 8 ! 0x200-0x207
-tl1_insn_excptn:
- tl1_insn_excptn ! 0x208
- tl1_reserved 1 ! 0x209
-tl1_insn_error:
- tl1_gen T_INSTRUCTION_ERROR ! 0x20a
- tl1_reserved 5 ! 0x20b-0x20f
+
+tll_base:
+ tll_reserved 8 ! 0x200-0x207
+tll_insn_excptn:
+ tl1_insn_excptn ! 0x208
+ tl1_reserved 7 ! 0x209-0x20f
tl1_insn_illegal:
- tl1_gen T_ILLEGAL_INSTRUCTION ! 0x210
+ tl1_gen T_ILLEGAL_INSTRUCTION ! 0x210
tl1_priv_opcode:
- tl1_gen T_PRIVILEGED_OPCODE ! 0x211
- tl1_reserved 14 ! 0x212-0x21f
+ tl1_gen T_PRIVILEGED_OPCODE ! 0x211
+ tl1_reserved 14 ! 0x212-0x21f
tl1_fp_disabled:
- tl1_fp_disabled ! 0x220
+ tl1_gen T_FP_DISABLED ! 0x220
tl1_fp_ieee:
- tl1_gen T_FP_EXCEPTION_IEEE_754 ! 0x221
+ tl1_gen T_FP_EXCEPTION_IEEE_754 ! 0x221
tl1_fp_other:
- tl1_gen T_FP_EXCEPTION_OTHER ! 0x222
+ tl1_gen T_FP_EXCEPTION_OTHER ! 0x222
tl1_tag_ovflw:
- tl1_gen T_TAG_OVERFLOW ! 0x223
+ tl1_gen T_TAG_OVERFLOW ! 0x223
tl1_clean_window:
- clean_window ! 0x224
+ clean_window ! 0x224
tl1_divide:
- tl1_gen T_DIVISION_BY_ZERO ! 0x228
- tl1_reserved 7 ! 0x229-0x22f
+ tl1_gen T_DIVISION_BY_ZERO ! 0x228
+ tl1_reserved 7 ! 0x229-0x22f
tl1_data_excptn:
- tl1_data_excptn ! 0x230
- tl1_reserved 1 ! 0x231
-tl1_data_error:
- tl1_gen T_DATA_ERROR ! 0x232
- tl1_reserved 1 ! 0x233
+ tl1_data_excptn ! 0x230
+ tl1_reserved 3 ! 0x231-0x233
tl1_align:
- tl1_align ! 0x234
+ tl1_align ! 0x234
tl1_align_lddf:
- tl1_gen T_RESERVED ! 0x235
+ tl1_gen T_RESERVED ! 0x235
tl1_align_stdf:
tl1_gen T_RESERVED ! 0x236
tl1_priv_action:
@@ -1969,51 +1989,64 @@
tl1_reserved 9 ! 0x238-0x240
tl1_intr_level:
tl1_intr_level ! 0x241-0x24f
- tl1_reserved 16 ! 0x250-0x25f
-tl1_intr_vector:
- intr_vector ! 0x260
-tl1_watch_phys:
- tl1_gen T_PA_WATCHPOINT ! 0x261
+ tl1_reserved 18 ! 0x250-0x261
tl1_watch_virt:
tl1_gen T_VA_WATCHPOINT ! 0x262
-tl1_ecc:
- tl1_gen T_CORRECTED_ECC_ERROR ! 0x263
-tl1_immu_miss:
- tl1_immu_miss ! 0x264
-tl1_dmmu_miss:
- tl1_dmmu_miss ! 0x268
-tl1_dmmu_prot:
- tl1_dmmu_prot ! 0x26c
- tl1_reserved 16 ! 0x270-0x27f
-tl1_spill_0_n:
- tl1_spill_0_n ! 0x280
- tl1_spill_bad 1 ! 0x284
-tl1_spill_2_n:
- tl1_spill_2_n ! 0x288
-tl1_spill_3_n:
- tl1_spill_3_n ! 0x29c
- tl1_spill_bad 4 ! 0x290-0x29f
-tl1_spill_0_o:
- tl1_spill_0_o ! 0x2a0
-tl1_spill_1_o:
- tl1_spill_1_o ! 0x2a4
-tl1_spill_2_o:
- tl1_spill_2_o ! 0x2a8
- tl1_spill_bad 5 ! 0x2ac-0x2bf
-tl1_fill_0_n:
- tl1_fill_0_n ! 0x2c0
- tl1_fill_bad 1 ! 0x2c4
-tl1_fill_2_n:
- tl1_fill_2_n ! 0x2d0
-tl1_fill_3_n:
- tl1_fill_3_n ! 0x2d4
- tl1_fill_bad 12 ! 0x2d8-0x2ff
- tl1_reserved 1 ! 0x300
+ tl1_reserved 19 ! 0x,63-0x275
tl1_breakpoint:
- tl1_gen T_BREAKPOINT ! 0x301
- tl1_gen T_RSTRWP_PHYS ! 0x302
- tl1_gen T_RSTRWP_VIRT ! 0x303
- tl1_reserved 252 ! 0x304-0x3ff
+ tl1_gen T_BREAKPOINT ! 0x276
+ tl1_reserved 5 ! 02x77-0x27b
+tl1_cpu_mondo:
+ tl1_cpu_mondo ! 0x27c
+tl1_dev_mondo:
+ tl1_dev_mondo ! 0x27d
+tl1_resumable_error:
+ tl1_resumable_error ! 0x27e
+tl1_unresumable_error:
+ tl1_unresumable_error ! 0x27f
+tl1_spill_n_normal:
+ tl1_spill_n_normal T_SPILL_0 ! 0x280
+ tl1_spill_n_normal T_SPILL_1 ! 0x284
+ tl1_spill_n_normal T_SPILL_2 ! 0x288
+ tl1_spill_n_normal T_SPILL_3 ! 0x28c
+ tl1_spill_n_normal T_SPILL_4 ! 0x290
+ tl1_spill_n_normal T_SPILL_5 ! 0x294
+ tl1_spill_n_normal T_SPILL_6 ! 0x298
+ tl1_spill_n_normal T_SPILL_7 ! 0x29c
+ tl1_reserved 3 ! 0x29d-0x29f
+tl1_spill_n_other:
+ tl1_spill_n_other T_SPILL_0 ! 0x2a0
+ tl1_spill_n_other T_SPILL_1 ! 0x2a4
+ tl1_spill_n_other T_SPILL_2 ! 0x2a8
+ tl1_spill_n_other T_SPILL_3 ! 0x2ac
+ tl1_spill_n_other T_SPILL_4 ! 0x2b0
+ tl1_spill_n_other T_SPILL_5 ! 0x2b4
+ tl1_spill_n_other T_SPILL_6 ! 0x2b8
+ tl1_spill_n_other T_SPILL_7 ! 0x2bc
+ tl1_reserved 3 ! 0x2bd-0x2bf
+tl1_fill_n_normal:
+ tl1_fill_n_normal T_FILL_0 ! 0x2c0
+ tl1_fill_n_normal T_FILL_1 ! 0x2c4
+ tl1_fill_n_normal T_FILL_2 ! 0x2c8
+ tl1_fill_n_normal T_FILL_3 ! 0x2cc
+ tl1_fill_n_normal T_FILL_4 ! 0x2d0
+ tl1_fill_n_normal T_FILL_5 ! 0x2d4
+ tl1_fill_n_normal T_FILL_6 ! 0x2d8
+ tl1_fill_n_normal T_FILL_7 ! 0x2dc
+ tl1_reserved 3 ! 0x2dd-0x2df
+tl1_fill_n_other:
+ tl1_fill_n_other T_FILL_0 ! 0x2e0
+ tl1_fill_n_other T_FILL_1 ! 0x2e4
+ tl1_fill_n_other T_FILL_2 ! 0x2e8
+ tl1_fill_n_other T_FILL_3 ! 0x2ec
+ tl1_fill_n_other T_FILL_4 ! 0x2f0
+ tl1_fill_n_other T_FILL_5 ! 0x2f4
+ tl1_fill_n_other T_FILL_6 ! 0x2f8
+ tl1_fill_n_other T_FILL_7 ! 0x2fc
+ tl1_reserved 3 ! 0x2fd-0x2ff
+tl1_soft:
+ tl1_reserved 256 ! 0x300-0x3ff
+
/*
* User trap entry point.
More information about the p4-projects
mailing list