Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Feb 2006 23:59:21 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 91772 for review
Message-ID:  <200602142359.k1ENxLX6049323@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=91772

Change 91772 by kmacy@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602142359.k1ENxLX6049323>