Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Mar 2009 10:08:21 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        "Arno J. Klaassen" <arno@heho.snv.jussieu.fr>
Cc:        current@freebsd.org
Subject:   Re: msi broken?
Message-ID:  <20090311010821.GC13527@michelle.cdnetworks.co.kr>
In-Reply-To: <wp1vt5bhc4.fsf@heho.snv.jussieu.fr>
References:  <wp1vt5bhc4.fsf@heho.snv.jussieu.fr>

next in thread | previous in thread | raw e-mail | index | archive | help

--lrZ03NoBR/3+SXJZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Mar 10, 2009 at 03:08:59PM +0100, Arno J. Klaassen wrote:
> 
> Hello,
> 
> when upgrading this morning from a March 1 -current, if_bge
> stopped working (and irq256: bge0 not showing up in
> vmstat -i ). Setting hw.pci.enable_msi="0" makes it work again.
> 

I don't have bge(4) hardwares so I can't test this. Would you try
attached patch?

--lrZ03NoBR/3+SXJZ
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="bge.msi.diff"

Index: sys/dev/bge/if_bge.c
===================================================================
--- sys/dev/bge/if_bge.c	(revision 189658)
+++ sys/dev/bge/if_bge.c	(working copy)
@@ -2912,7 +2912,7 @@
 	write_op(sc, BGE_MISC_CFG, BGE_32BITTIME_66MHZ);
 
 	/* Re-enable MSI, if neccesary, and enable the memory arbiter. */
-	if (BGE_IS_5714_FAMILY(sc)) {
+	if (BGE_IS_5714_FAMILY(sc) || sc->bge_flags & BGE_FLAG_MSI) {
 		/* This chip disables MSI on reset. */
 		if (sc->bge_flags & BGE_FLAG_MSI) {
 			val = pci_read_config(dev, BGE_PCI_MSI_CTL, 2);
@@ -2922,8 +2922,10 @@
 			CSR_WRITE_4(sc, BGE_MSI_MODE,
 			    val | BGE_MSIMODE_ENABLE);
 		}
-		val = CSR_READ_4(sc, BGE_MARB_MODE);
-		CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE | val);
+		if (BGE_IS_5714_FAMILY(sc)) {
+			val = CSR_READ_4(sc, BGE_MARB_MODE);
+			CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE | val);
+		}
 	} else
 		CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
 

--lrZ03NoBR/3+SXJZ--



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