Module Name:    src
Committed By:   matt
Date:           Wed Dec 12 00:01:29 UTC 2012

Modified Files:
        src/sys/arch/arm/broadcom: bcm53xx_idm.c

Log Message:
When initializing the ethernet, make sure the IO_CONTROL_DIRECT IDM register
is set properly.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm53xx_idm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/bcm53xx_idm.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.2 src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.3
--- src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.2	Fri Oct 26 04:46:06 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_idm.c	Wed Dec 12 00:01:28 2012
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_idm.c,v 1.2 2012/10/26 04:46:06 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_idm.c,v 1.3 2012/12/12 00:01:28 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -78,12 +78,28 @@ bcmeth_unreset(bus_space_tag_t bst, bus_
 			    off + IDM_IO_CONTROL_DIRECT);
 			/*
 			 * Clear read-allocate and write-allocate bits from
-			 * ACP cache access so we don't pollute the caches.
+			 * ACP cache access so we don't pollute the caches with
+			 * DMA traffic.
 			 */
 			v &= ~IO_CONTROL_DIRECT_ARCACHE;
 			v &= ~IO_CONTROL_DIRECT_AWCACHE;
+#if 0
+			v |= __SHIFTIN(AXCACHE_WA, IO_CONTROL_DIRECT_ARCACHE);
+			v |= __SHIFTIN(AXCACHE_RA, IO_CONTROL_DIRECT_AWCACHE);
+#endif
 			v |= __SHIFTIN(AXCACHE_C|AXCACHE_B, IO_CONTROL_DIRECT_ARCACHE);
 			v |= __SHIFTIN(AXCACHE_C|AXCACHE_B, IO_CONTROL_DIRECT_AWCACHE);
+			/*
+			 * These are the default but make sure they are
+			 * properly set.
+			 */
+			v |= __SHIFTIN(0x1F, IO_CONTROL_DIRECT_ARUSER);
+			v |= __SHIFTIN(0x1F, IO_CONTROL_DIRECT_AWUSER);
+			v |= IO_CONTROL_DIRECT_CLK_250_SEL;
+			v |= IO_CONTROL_DIRECT_DIRECT_GMII_MODE;
+			v |= IO_CONTROL_DIRECT_SOURCE_SYNC_MODE_EN;
+			v |= IO_CONTROL_DIRECT_CLK_GATING_EN;
+
 			bus_space_write_4(bst, bsh, off + IDM_IO_CONTROL_DIRECT,
 			    v);
 		}

Reply via email to