mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
net: ftgmac100: Read and retain MAC address
Read and retain MAC address across flash and QEMU support. Signed-off-by: Hongwei Zhang <hongweiz@ami.com>
This commit is contained in:
parent
c1ab738145
commit
0be3d1fafb
@ -270,6 +270,28 @@ static int ftgmac100_set_mac(struct ftgmac100_data *priv,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get MAC address
|
||||||
|
*/
|
||||||
|
static int ftgmac100_get_mac(struct ftgmac100_data *priv,
|
||||||
|
unsigned char *mac)
|
||||||
|
{
|
||||||
|
struct ftgmac100 *ftgmac100 = priv->iobase;
|
||||||
|
unsigned int maddr = readl(&ftgmac100->mac_madr);
|
||||||
|
unsigned int laddr = readl(&ftgmac100->mac_ladr);
|
||||||
|
|
||||||
|
debug("%s(%x %x)\n", __func__, maddr, laddr);
|
||||||
|
|
||||||
|
mac[0] = (maddr >> 8) & 0xff;
|
||||||
|
mac[1] = maddr & 0xff;
|
||||||
|
mac[2] = (laddr >> 24) & 0xff;
|
||||||
|
mac[3] = (laddr >> 16) & 0xff;
|
||||||
|
mac[4] = (laddr >> 8) & 0xff;
|
||||||
|
mac[5] = laddr & 0xff;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* disable transmitter, receiver
|
* disable transmitter, receiver
|
||||||
*/
|
*/
|
||||||
@ -511,6 +533,14 @@ static int ftgmac100_write_hwaddr(struct udevice *dev)
|
|||||||
return ftgmac100_set_mac(priv, pdata->enetaddr);
|
return ftgmac100_set_mac(priv, pdata->enetaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ftgmac_read_hwaddr(struct udevice *dev)
|
||||||
|
{
|
||||||
|
struct eth_pdata *pdata = dev_get_plat(dev);
|
||||||
|
struct ftgmac100_data *priv = dev_get_priv(dev);
|
||||||
|
|
||||||
|
return ftgmac100_get_mac(priv, pdata->enetaddr);
|
||||||
|
}
|
||||||
|
|
||||||
static int ftgmac100_of_to_plat(struct udevice *dev)
|
static int ftgmac100_of_to_plat(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct eth_pdata *pdata = dev_get_plat(dev);
|
struct eth_pdata *pdata = dev_get_plat(dev);
|
||||||
@ -571,6 +601,8 @@ static int ftgmac100_probe(struct udevice *dev)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ftgmac_read_hwaddr(dev);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (ret)
|
if (ret)
|
||||||
clk_release_bulk(&priv->clks);
|
clk_release_bulk(&priv->clks);
|
||||||
|
Loading…
Reference in New Issue
Block a user