From owner-svn-src-user@FreeBSD.ORG  Wed Apr 21 04:44:09 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 32D691065670;
	Wed, 21 Apr 2010 04:44:09 +0000 (UTC)
	(envelope-from jmallett@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0998D8FC17;
	Wed, 21 Apr 2010 04:44:09 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3L4i8bY048702;
	Wed, 21 Apr 2010 04:44:08 GMT
	(envelope-from jmallett@svn.freebsd.org)
Received: (from jmallett@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3L4i8dW048699;
	Wed, 21 Apr 2010 04:44:08 GMT
	(envelope-from jmallett@svn.freebsd.org)
Message-Id: <201004210444.o3L4i8dW048699@svn.freebsd.org>
From: Juli Mallett <jmallett@FreeBSD.org>
Date: Wed, 21 Apr 2010 04:44:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r206978 - user/jmallett/octeon/sys/mips/cavium
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Apr 2010 04:44:09 -0000

Author: jmallett
Date: Wed Apr 21 04:44:08 2010
New Revision: 206978
URL: http://svn.freebsd.org/changeset/base/206978

Log:
  Centralize and correct MBOX IRQ unmasking.  We want this to go to hard
  interrupt #1 not hard interrupt #0.

Modified:
  user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c
  user/jmallett/octeon/sys/mips/cavium/octeon_mp.c

Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c	Wed Apr 21 04:35:23 2010	(r206977)
+++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c	Wed Apr 21 04:44:08 2010	(r206978)
@@ -209,6 +209,13 @@ octeon_ciu_reset(void)
 	cvmx_write_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num()*2+1), 0);
 	cvmx_write_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num()*2), 0);
 	cvmx_write_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num()*2+1), 0);
+
+#ifdef SMP
+	/* Enable the MBOX interrupts.  */
+	cvmx_write_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num()*2+1),
+		       (1ull << (CVMX_IRQ_MBOX0 - 8)) |
+		       (1ull << (CVMX_IRQ_MBOX1 - 8)));
+#endif
 }
 
 static void
@@ -307,10 +314,9 @@ platform_start(__register_t a0, __regist
 
 #ifdef SMP
 	/*
-	 * Clear any pending IPIs and enable the IPI interrupt.
+	 * Clear any pending IPIs.
 	 */
 	oct_write64(CVMX_CIU_MBOX_CLRX(0), 0xffffffff);
-	cvmx_interrupt_unmask_irq(CVMX_IRQ_MBOX0);
 #endif
 }
 

Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/octeon_mp.c	Wed Apr 21 04:35:23 2010	(r206977)
+++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c	Wed Apr 21 04:44:08 2010	(r206978)
@@ -75,12 +75,14 @@ platform_init_ap(int cpuid)
 	mips_wr_ebase(0x80000000 | cpuid);
 
 	/*
-	 * Set up interrupts, clear IPIs and unmask the IPI interrupt.
+	 * Clear any pending IPIs.
 	 */
-	octeon_ciu_reset();
-
 	oct_write64(CVMX_CIU_MBOX_CLRX(cpuid), 0xffffffff);
-	cvmx_interrupt_unmask_irq(CVMX_IRQ_MBOX0);
+
+	/*
+	 * Set up interrupts.
+	 */
+	octeon_ciu_reset();
 
 	mips_wbflush();
 }