summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2015-04-05 20:56:51 +0000
committeradrian <adrian@FreeBSD.org>2015-04-05 20:56:51 +0000
commit61ea198b48019b613bba16ef45cd70793cb19295 (patch)
tree3fccd09c739b26002852a72cc5e99a9da7cb1837
parent702869582918c86494e3b54b1cab4f4aa4eb2a84 (diff)
downloadFreeBSD-src-61ea198b48019b613bba16ef45cd70793cb19295.zip
FreeBSD-src-61ea198b48019b613bba16ef45cd70793cb19295.tar.gz
Update the board MAC address configuration for the DIR-655A1.
The MAC addresses were totally wrong. They're like the DIR-625C1 - at 0x1ffe0004 and 0x1ffe0018. They're however stored as text strings. The ath0 MAC address is also not set, even though the calibration partition is valid. So, pick the board address / first MAC as the ath0 MAC, and derive arge0/arge1 from that. That way they're hopefully unique enough for people with multiple devices. Tested: * DIR-655A1 TODO: * Do the same for the DIR-625A1 and DIR-625C1.
-rw-r--r--sys/mips/conf/DIR-655A1.hints38
1 files changed, 32 insertions, 6 deletions
diff --git a/sys/mips/conf/DIR-655A1.hints b/sys/mips/conf/DIR-655A1.hints
index 8e5756b..3946fd1 100644
--- a/sys/mips/conf/DIR-655A1.hints
+++ b/sys/mips/conf/DIR-655A1.hints
@@ -7,6 +7,32 @@
# QCA955X_ETH_CFG_RGMII_EN (1 << 0)
hint.qca955x_gmac.0.gmac_cfg=0x1
+# Use this to derive ath0 from arge0 MAC address.
+# 0x1ffe0004 is the arge0 MAC; but it's also the "unit MAC".
+# So make that the ath0 MAC, and make arge0 -1 from that.
+# ath0: offset 0
+# arge0: offset -1
+# arge1: use +1 from the arge0 MAC, even though
+# there's a secondary MAC address configured in EEPROM
+# at 0x1ffe0018.
+hint.ar71xx.0.eeprom_mac_addr=0x1ffe0004
+hint.ar71xx.0.eeprom_mac_isascii=1
+
+hint.ar71xx_mac_map.0.devid=ath
+hint.ar71xx_mac_map.0.unitid=0
+hint.ar71xx_mac_map.0.offset=0
+hint.ar71xx_mac_map.0.is_local=0
+
+hint.ar71xx_mac_map.1.devid=arge
+hint.ar71xx_mac_map.1.unitid=0
+hint.ar71xx_mac_map.1.offset=-1
+hint.ar71xx_mac_map.1.is_local=0
+
+hint.ar71xx_mac_map.2.devid=arge
+hint.ar71xx_mac_map.2.unitid=1
+hint.ar71xx_mac_map.2.offset=1
+hint.ar71xx_mac_map.2.is_local=0
+
# mdiobus0 on arge0
hint.argemdio.0.at="nexus0"
hint.argemdio.0.maddr=0x19000000
@@ -91,9 +117,8 @@ 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
-hint.arge.0.eeprommac=0x1fff0000
+# hint.arge.0.eeprommac=0x1ffe0004
+# hint.arge.0.readascii=1
# arge1 - lock up to 1000/full
hint.arge.1.phymask=0x0
@@ -101,11 +126,12 @@ hint.arge.1.media=1000
hint.arge.1.fduplex=1
hint.arge.1.miimode=5 # SGMII
hint.arge.1.pll_1000=0x03000101
-
-# MAC for arge1 is the second 6 bytes of the ART
-hint.arge.1.eeprommac=0x1fff0006
+#hint.arge.1.eeprommac=0x1ffe0018
+#hint.arge.1.readascii=1
# ath0: Where the ART is - last 64k in the flash
+# Note: ath0 MAC is default (00:11:22:33:44:55) and thus
+# requires replacing via the board MAC address map.
hint.ath.0.eepromaddr=0x1fff0000
hint.ath.0.eepromsize=16384
OpenPOWER on IntegriCloud