Ignore:
Timestamp:
2011-09-23T21:56:39+02:00 (5 years ago)
Author:
juhosg
Message:

ar71xx: fix MAC addresses on the DIR-825-B1 board

Patch-by: Lukas Kuna

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c

    r27754 r28295  
    22 *  D-Link DIR-825 rev. B1 board support 
    33 * 
    4  *  Copyright (C) 2009 Lukas Kuna, Evkanet, s.r.o. 
     4 *  Copyright (C) 2009-2011 Lukas Kuna, Evkanet, s.r.o. 
    55 * 
    66 *  based on mach-wndr3700.c 
     
    4646#define DIR825B1_CAL_LOCATION_1                 0x1f665000 
    4747 
    48 #define DIR825B1_MAC_LOCATION_0                 0x2ffa81b8 
    49 #define DIR825B1_MAC_LOCATION_1                 0x2ffa8370 
     48#define DIR825B1_MAC_LOCATION_0                 0x1f66ffa0 
     49#define DIR825B1_MAC_LOCATION_1                 0x1f66ffb4 
    5050 
    5151#ifdef CONFIG_MTD_PARTITIONS 
     
    151151}; 
    152152 
     153static void dir825b1_read_ascii_mac(u8 *dest, unsigned int src_addr) 
     154{ 
     155        int ret; 
     156        u8 *src = (u8 *)KSEG1ADDR(src_addr); 
     157 
     158        ret = sscanf(src, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx", 
     159                     &dest[0], &dest[1], &dest[2], 
     160                     &dest[3], &dest[4], &dest[5]); 
     161 
     162        if (ret != ETH_ALEN) memset(dest, 0, ETH_ALEN); 
     163} 
     164 
    153165static void __init dir825b1_setup(void) 
    154166{ 
    155         u8 *mac = (u8 *) KSEG1ADDR(DIR825B1_MAC_LOCATION_1); 
     167        u8 mac1[ETH_ALEN], mac2[ETH_ALEN]; 
     168 
     169        dir825b1_read_ascii_mac(mac1, DIR825B1_MAC_LOCATION_0); 
     170        dir825b1_read_ascii_mac(mac2, DIR825B1_MAC_LOCATION_1); 
    156171 
    157172        ar71xx_add_device_mdio(0x0); 
    158173 
    159         ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 1); 
     174        ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac1, 2); 
    160175        ar71xx_eth0_data.mii_bus_dev = &dir825b1_rtl8366s_device.dev; 
    161176        ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; 
     
    164179        ar71xx_eth0_pll_data.pll_1000 = 0x11110000; 
    165180 
    166         ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 2); 
     181        ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac1, 3); 
    167182        ar71xx_eth1_data.mii_bus_dev = &dir825b1_rtl8366s_device.dev; 
    168183        ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; 
     
    189204        ap94_pci_setup_wmac_led_pin(1, 5); 
    190205 
    191         ap94_pci_init((u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_0), 
    192                       (u8 *) KSEG1ADDR(DIR825B1_MAC_LOCATION_0), 
    193                       (u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_1), 
    194                       (u8 *) KSEG1ADDR(DIR825B1_MAC_LOCATION_1)); 
     206        ap94_pci_init((u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_0), mac1, 
     207                      (u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_1), mac2); 
    195208} 
    196209 
Note: See TracChangeset for help on using the changeset viewer.