From owner-p4-projects@FreeBSD.ORG Thu Jan 31 17:21:15 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 522DE16A46D; Thu, 31 Jan 2008 17:21:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 172E916A419 for ; Thu, 31 Jan 2008 17:21:15 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0092913C474 for ; Thu, 31 Jan 2008 17:21:15 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0VHLE6e077216 for ; Thu, 31 Jan 2008 17:21:14 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0VHLE2G077213 for perforce@freebsd.org; Thu, 31 Jan 2008 17:21:14 GMT (envelope-from imp@freebsd.org) Date: Thu, 31 Jan 2008 17:21:14 GMT Message-Id: <200801311721.m0VHLE2G077213@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 134554 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: Thu, 31 Jan 2008 17:21:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=134554 Change 134554 by imp@imp_lighthouse on 2008/01/31 17:20:22 It is bad kharma to write the same address to multiple TLB entries. Use the KSEG3 addresses from mips2 since they are unique and invalid. Not sure how this code could have ever worked for real mips hardware... Affected files ... .. //depot/projects/mips2-jnpr/src/sys/mips/mips/tlb.S#5 edit Differences ... ==== //depot/projects/mips2-jnpr/src/sys/mips/mips/tlb.S#5 (text+ko) ==== @@ -230,7 +230,7 @@ mtc0 zero, COP_0_STATUS_REG # Disable interrupts ITLBNOPFIX mfc0 t1, COP_0_TLB_WIRED - li v0, MIPS_KSEG0_START # invalid address + li v0, MIPS_KSEG3_START + 0x0fff0000 # invalid address _MFC0 t0, COP_0_TLB_HI # Save the PID _MTC0 v0, COP_0_TLB_HI # Mark entry high as invalid @@ -242,7 +242,10 @@ */ 1: mtc0 t1, COP_0_TLB_INDEX # Set the index register. + ITLBNOPFIX + _MTC0 t0, COP_0_TLB_HI # Restore the PID addu t1, t1, 1 # Increment index. + addu t0, t0, 8 * 1024 MIPS_CPU_NOP_DELAY tlbwi # Write the TLB entry. MIPS_CPU_NOP_DELAY