summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2015-03-04 03:48:11 +0000
committeradrian <adrian@FreeBSD.org>2015-03-04 03:48:11 +0000
commit4c1d00d37740a78c37aa83cf1e991812a0b3c834 (patch)
tree57b4c0eca93c4d80f7b34605ccac19c9ce18c7e8
parent7a87033ac98b808df19eb3ff0da8a9b49cfadf67 (diff)
downloadFreeBSD-src-4c1d00d37740a78c37aa83cf1e991812a0b3c834.zip
FreeBSD-src-4c1d00d37740a78c37aa83cf1e991812a0b3c834.tar.gz
Fix both arge0 and arge1 to work correctly on the AP135.
* Force the arge0 interface to not use a PHY for speed negotiation for now. It'd be nice to do it, but right now the RGMII interface to the switch needs to stay at 1000/full in order to match what the switch side of the port is programmed as. So until that's all sorted out, disconnect arge0 from the PHY and leave it at fixed at 1000/full. I noticed this when I tried using a busted ethernet cable that forced the PHY to negotiate 100/full. The switch was fine and it negotiated to 100/full, but then arge0 saw the link update and set the speed to 100/full when the switch side of that hook up was set to 1000/full. Tsk. * When using argemdio, the mdio device resets and initialises the MAC, /not/ the arge_attach (or, as I discovered, arge_init.) So arge1 wasn't being fully initialised and thus no traffic would ever flow. So until I tidy up that mess, just create an argemdio bus for arge1. It's totally fine; it won't do anything or find anything attached to it. Tested: * AP135 reference board - both arge0 and arge1 now work.
-rw-r--r--sys/mips/conf/AP135.hints10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/mips/conf/AP135.hints b/sys/mips/conf/AP135.hints
index b134d70..87074af 100644
--- a/sys/mips/conf/AP135.hints
+++ b/sys/mips/conf/AP135.hints
@@ -14,6 +14,12 @@ hint.argemdio.0.maddr=0x19000000
hint.argemdio.0.msize=0x1000
hint.argemdio.0.order=0
+# mdiobus1 on arge1 - required to bring up arge1?
+hint.argemdio.1.at="nexus0"
+hint.argemdio.1.maddr=0x1a000000
+hint.argemdio.1.msize=0x1000
+hint.argemdio.1.order=0
+
# AR8327 - connected via mdiobus0 on arge0
hint.arswitch.0.at="mdio0"
hint.arswitch.0.is_7240=0 # definitely not the internal switch!
@@ -77,8 +83,10 @@ hint.arswitch.0.port.6.txpause=1
hint.arswitch.0.port.6.rxpause=1
# arge0 - hooked up to AR8327 GMAC6, RGMII
-hint.arge.0.phymask=0x10
+hint.arge.0.phymask=0x0
hint.arge.0.miimode=3 # RGMII
+hint.arge.0.media=1000
+hint.arge.0.fduplex=1
hint.arge.0.pll_1000=0x56000000
# MAC for arge0 is the first 6 bytes of the ART
OpenPOWER on IntegriCloud