From owner-p4-projects@FreeBSD.ORG Tue Feb 14 23:59:31 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9383916A423; Tue, 14 Feb 2006 23:59:30 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CD13416A420 for ; Tue, 14 Feb 2006 23:59:29 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ABA7D43D46 for ; Tue, 14 Feb 2006 23:59:21 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k1ENxLlw049326 for ; Tue, 14 Feb 2006 23:59:21 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k1ENxLX6049323 for perforce@freebsd.org; Tue, 14 Feb 2006 23:59:21 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 14 Feb 2006 23:59:21 GMT Message-Id: <200602142359.k1ENxLX6049323@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 91772 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Feb 2006 23:59:31 -0000 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.