aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-11-04 18:46:07 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-11-04 18:46:07 +0000
commit90ba44f084db8ca6c04d2416c43694b765f8bd68 (patch)
tree4c8077eb143e8abdd7173017b97cd8109151388b /target
parent64d6dd0f2c12b63426759191154428b0bdb32d3a (diff)
downloadupstream-90ba44f084db8ca6c04d2416c43694b765f8bd68.tar.gz
upstream-90ba44f084db8ca6c04d2416c43694b765f8bd68.tar.bz2
upstream-90ba44f084db8ca6c04d2416c43694b765f8bd68.zip
ar71xx: Set eth1 MAC address from EEPROM for WNDR3700
The WNDR3700's art/caldata partition contains three MAC addresses at offsets 0, 6, and 12, used for eth0/wlan0 (shared), eth1, and wlan1, respectively. The existing code configures eth1's MAC address by adding 1 to eth0's instead of using the value stored in the EEPROM. This patch causes the stored value to be used directly. (On my WNDR3700s, the three stored addresses are all sequential anyway.) Signed-off-by: Mark Mentovai <mark@moxienet.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23876 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
index 0d3e374fe2..52ddae5a1e 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
@@ -40,6 +40,9 @@
#define WNDR3700_BUTTONS_POLL_INTERVAL 20
+#define WNDR3700_ETH0_MAC_OFFSET 0
+#define WNDR3700_ETH1_MAC_OFFSET 0x6
+
#define WNDR3700_WMAC0_MAC_OFFSET 0
#define WNDR3700_WMAC1_MAC_OFFSET 0xc
#define WNDR3700_CALDATA0_OFFSET 0x1000
@@ -168,14 +171,16 @@ static void __init wndr3700_setup(void)
{
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
- ar71xx_init_mac(ar71xx_eth0_data.mac_addr, art, 0);
+ ar71xx_init_mac(ar71xx_eth0_data.mac_addr,
+ art + WNDR3700_ETH0_MAC_OFFSET, 0);
ar71xx_eth0_pll_data.pll_1000 = 0x11110000;
ar71xx_eth0_data.mii_bus_dev = &wndr3700_rtl8366s_device.dev;
ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
ar71xx_eth0_data.speed = SPEED_1000;
ar71xx_eth0_data.duplex = DUPLEX_FULL;
- ar71xx_init_mac(ar71xx_eth1_data.mac_addr, art, 1);
+ ar71xx_init_mac(ar71xx_eth1_data.mac_addr,
+ art + WNDR3700_ETH1_MAC_OFFSET, 0);
ar71xx_eth1_pll_data.pll_1000 = 0x11110000;
ar71xx_eth1_data.mii_bus_dev = &wndr3700_rtl8366s_device.dev;
ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;