mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
net: Provide a function to get the current MAC address
The current implementation exposes the eth_device struct to code that needs to access the MAC address. Add a wrapper function for this to abstract away the pointer for this operation. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
0eb25b6196
commit
8b2c9a7157
6 changed files with 13 additions and 5 deletions
|
@ -238,7 +238,7 @@ static int au1x00_init(struct eth_device* dev, bd_t * bd){
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Put mac addr in little endian */
|
/* Put mac addr in little endian */
|
||||||
#define ea eth_get_dev()->enetaddr
|
#define ea eth_get_ethaddr()
|
||||||
*mac_addr_high = (ea[5] << 8) | (ea[4] ) ;
|
*mac_addr_high = (ea[5] << 8) | (ea[4] ) ;
|
||||||
*mac_addr_low = (ea[3] << 24) | (ea[2] << 16) |
|
*mac_addr_low = (ea[3] << 24) | (ea[2] << 16) |
|
||||||
(ea[1] << 8) | (ea[0] ) ;
|
(ea[1] << 8) | (ea[0] ) ;
|
||||||
|
|
|
@ -299,7 +299,7 @@ static int fec_init(struct eth_device* dev, bd_t *bis)
|
||||||
* it unique by setting a few bits in the upper byte of the
|
* it unique by setting a few bits in the upper byte of the
|
||||||
* non-static part of the address.
|
* non-static part of the address.
|
||||||
*/
|
*/
|
||||||
#define ea eth_get_dev()->enetaddr
|
#define ea eth_get_ethaddr()
|
||||||
pram_ptr->fen_paddrh = (ea[5] << 8) + ea[4];
|
pram_ptr->fen_paddrh = (ea[5] << 8) + ea[4];
|
||||||
pram_ptr->fen_paddrm = (ea[3] << 8) + ea[2];
|
pram_ptr->fen_paddrm = (ea[3] << 8) + ea[2];
|
||||||
pram_ptr->fen_paddrl = (ea[1] << 8) + ea[0];
|
pram_ptr->fen_paddrl = (ea[1] << 8) + ea[0];
|
||||||
|
|
|
@ -338,7 +338,7 @@ static int fec_init(struct eth_device* dev, bd_t *bis)
|
||||||
* it unique by setting a few bits in the upper byte of the
|
* it unique by setting a few bits in the upper byte of the
|
||||||
* non-static part of the address.
|
* non-static part of the address.
|
||||||
*/
|
*/
|
||||||
#define ea eth_get_dev()->enetaddr
|
#define ea eth_get_ethaddr()
|
||||||
pram_ptr->fen_paddrh = (ea[5] << 8) + ea[4];
|
pram_ptr->fen_paddrh = (ea[5] << 8) + ea[4];
|
||||||
pram_ptr->fen_paddrm = (ea[3] << 8) + ea[2];
|
pram_ptr->fen_paddrm = (ea[3] << 8) + ea[2];
|
||||||
pram_ptr->fen_paddrl = (ea[1] << 8) + ea[0];
|
pram_ptr->fen_paddrl = (ea[1] << 8) + ea[0];
|
||||||
|
|
|
@ -339,7 +339,7 @@ static int scc_init (struct eth_device *dev, bd_t * bis)
|
||||||
pram_ptr->sen_gaddr3 = 0x0; /* Group Address Filter 3 (unused) */
|
pram_ptr->sen_gaddr3 = 0x0; /* Group Address Filter 3 (unused) */
|
||||||
pram_ptr->sen_gaddr4 = 0x0; /* Group Address Filter 4 (unused) */
|
pram_ptr->sen_gaddr4 = 0x0; /* Group Address Filter 4 (unused) */
|
||||||
|
|
||||||
#define ea eth_get_dev()->enetaddr
|
#define ea eth_get_ethaddr()
|
||||||
pram_ptr->sen_paddrh = (ea[5] << 8) + ea[4];
|
pram_ptr->sen_paddrh = (ea[5] << 8) + ea[4];
|
||||||
pram_ptr->sen_paddrm = (ea[3] << 8) + ea[2];
|
pram_ptr->sen_paddrm = (ea[3] << 8) + ea[2];
|
||||||
pram_ptr->sen_paddrl = (ea[1] << 8) + ea[0];
|
pram_ptr->sen_paddrl = (ea[1] << 8) + ea[0];
|
||||||
|
|
|
@ -111,6 +111,14 @@ struct eth_device *eth_get_dev(void)
|
||||||
{
|
{
|
||||||
return eth_current;
|
return eth_current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline unsigned char *eth_get_ethaddr(void)
|
||||||
|
{
|
||||||
|
if (eth_current)
|
||||||
|
return eth_current->enetaddr;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
extern struct eth_device *eth_get_dev_by_name(const char *devname);
|
extern struct eth_device *eth_get_dev_by_name(const char *devname);
|
||||||
extern struct eth_device *eth_get_dev_by_index(int index); /* get dev @ index */
|
extern struct eth_device *eth_get_dev_by_index(int index); /* get dev @ index */
|
||||||
extern int eth_get_dev_index(void); /* get the device index */
|
extern int eth_get_dev_index(void); /* get the device index */
|
||||||
|
|
|
@ -275,7 +275,7 @@ static void NetInitLoop(void)
|
||||||
env_changed_id = env_id;
|
env_changed_id = env_id;
|
||||||
}
|
}
|
||||||
if (eth_get_dev())
|
if (eth_get_dev())
|
||||||
memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
|
memcpy(NetOurEther, eth_get_ethaddr(), 6);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue