Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/broadcom When initializing the ethernet, make s...



details:   https://anonhg.NetBSD.org/src/rev/ffef12bc217c
branches:  trunk
changeset: 783231:ffef12bc217c
user:      matt <matt%NetBSD.org@localhost>
date:      Wed Dec 12 00:01:28 2012 +0000

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

diffstat:

 sys/arch/arm/broadcom/bcm53xx_idm.c |  20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diffs (42 lines):

diff -r 092c5b0fdff2 -r ffef12bc217c sys/arch/arm/broadcom/bcm53xx_idm.c
--- a/sys/arch/arm/broadcom/bcm53xx_idm.c       Wed Dec 12 00:00:38 2012 +0000
+++ b/sys/arch/arm/broadcom/bcm53xx_idm.c       Wed Dec 12 00:01:28 2012 +0000
@@ -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 @@
                            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);
                }



Home | Main Index | Thread Index | Old Index