diff options
author | Prabhakar Kushwaha <prabhakar@freescale.com> | 2015-10-07 16:29:58 +0530 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-10-29 10:33:57 -0700 |
commit | 7b2edb8b9dd9e9b792f1b2b5c5db4ce57fb1c6f0 (patch) | |
tree | 591bc1903711eecebea3e00691166a41eaa6127a /drivers/net/ldpaa_eth/ldpaa_eth.c | |
parent | c69384e11d36240392839fa51e04a78187dc9b3a (diff) | |
download | u-boot-imx-7b2edb8b9dd9e9b792f1b2b5c5db4ce57fb1c6f0.zip u-boot-imx-7b2edb8b9dd9e9b792f1b2b5c5db4ce57fb1c6f0.tar.gz u-boot-imx-7b2edb8b9dd9e9b792f1b2b5c5db4ce57fb1c6f0.tar.bz2 |
driver: net: ldpaa_eth: Set MAC address during interface open
Currently ldpaa ethernet driver rely on DPL file to statically configure
mac address for the DPNIs. It is not a correct approach.
Add support setting MAC address from env variable or Random MAC address.
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'drivers/net/ldpaa_eth/ldpaa_eth.c')
-rw-r--r-- | drivers/net/ldpaa_eth/ldpaa_eth.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c index 4de7586..99acb7a 100644 --- a/drivers/net/ldpaa_eth/ldpaa_eth.c +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c @@ -220,7 +220,6 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd) { struct ldpaa_eth_priv *priv = (struct ldpaa_eth_priv *)net_dev->priv; struct dpni_queue_attr rx_queue_attr; - uint8_t mac_addr[6]; int err; if (net_dev->state == ETH_STATE_ACTIVE) @@ -240,21 +239,13 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd) if (err) goto err_bind; - err = dpni_get_primary_mac_addr(dflt_mc_io, MC_CMD_NO_FLAGS, - priv->dpni_handle, mac_addr); + err = dpni_add_mac_addr(dflt_mc_io, MC_CMD_NO_FLAGS, + priv->dpni_handle, net_dev->enetaddr); if (err) { - printf("dpni_get_primary_mac_addr() failed\n"); + printf("dpni_add_mac_addr() failed\n"); return err; } - memcpy(net_dev->enetaddr, mac_addr, 0x6); - - /* setup the MAC address */ - if (net_dev->enetaddr[0] & 0x01) { - printf("%s: MacAddress is multcast address\n", __func__); - return 1; - } - #ifdef CONFIG_PHYLIB /* TODO Check this path */ err = phy_startup(priv->phydev); |