svn commit: r213333 - head/sys/dev/bge

Pyun YongHyeon yongari at FreeBSD.org
Fri Oct 1 17:46:15 UTC 2010


Author: yongari
Date: Fri Oct  1 17:46:15 2010
New Revision: 213333
URL: http://svn.freebsd.org/changeset/base/213333

Log:
  Allow write DMA to request larger DMA burst size to get better
  performance on BCM5785.
  
  Obtained from:	OpenBSD

Modified:
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Fri Oct  1 17:20:48 2010	(r213332)
+++ head/sys/dev/bge/if_bge.c	Fri Oct  1 17:46:15 2010	(r213333)
@@ -1834,6 +1834,10 @@ bge_blockinit(struct bge_softc *sc)
 	if (BGE_IS_5755_PLUS(sc))
 		val |= BGE_WDMAMODE_STATUS_TAG_FIX;
 
+	/* Request larger DMA burst size to get better performance. */
+	if (sc->bge_asicrev == BGE_ASICREV_BCM5785)
+		val |= BGE_WDMAMODE_BURST_ALL_DATA;
+
 	/* Turn on write DMA state machine */
 	CSR_WRITE_4(sc, BGE_WDMA_MODE, val);
 	DELAY(40);

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h	Fri Oct  1 17:20:48 2010	(r213332)
+++ head/sys/dev/bge/if_bgereg.h	Fri Oct  1 17:46:15 2010	(r213333)
@@ -1481,6 +1481,7 @@
 #define	BGE_WDMAMODE_LOCREAD_TOOBIG	0x00000200
 #define	BGE_WDMAMODE_ALL_ATTNS		0x000003FC
 #define	BGE_WDMAMODE_STATUS_TAG_FIX	0x20000000
+#define	BGE_WDMAMODE_BURST_ALL_DATA	0xC0000000
 
 /* Write DMA status register */
 #define	BGE_WDMASTAT_PCI_TGT_ABRT_ATTN	0x00000004


More information about the svn-src-head mailing list