net: Move environment functions to the common file
Move the functions which set ethernet environment variables to the common file. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
818f91eb57
commit
9987ecdd36
43
net/eth.c
43
net/eth.c
|
@ -20,49 +20,6 @@
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
|
|
||||||
{
|
|
||||||
char *end;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < 6; ++i) {
|
|
||||||
enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
|
|
||||||
if (addr)
|
|
||||||
addr = (*end) ? end + 1 : end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int eth_getenv_enetaddr(const char *name, uchar *enetaddr)
|
|
||||||
{
|
|
||||||
eth_parse_enetaddr(getenv(name), enetaddr);
|
|
||||||
return is_valid_ethaddr(enetaddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
int eth_setenv_enetaddr(const char *name, const uchar *enetaddr)
|
|
||||||
{
|
|
||||||
char buf[20];
|
|
||||||
|
|
||||||
sprintf(buf, "%pM", enetaddr);
|
|
||||||
|
|
||||||
return setenv(name, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
int eth_getenv_enetaddr_by_index(const char *base_name, int index,
|
|
||||||
uchar *enetaddr)
|
|
||||||
{
|
|
||||||
char enetvar[32];
|
|
||||||
sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
|
|
||||||
return eth_getenv_enetaddr(enetvar, enetaddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int eth_setenv_enetaddr_by_index(const char *base_name, int index,
|
|
||||||
uchar *enetaddr)
|
|
||||||
{
|
|
||||||
char enetvar[32];
|
|
||||||
sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
|
|
||||||
return eth_setenv_enetaddr(enetvar, enetaddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int eth_mac_skip(int index)
|
static int eth_mac_skip(int index)
|
||||||
{
|
{
|
||||||
char enetvar[15];
|
char enetvar[15];
|
||||||
|
|
|
@ -10,6 +10,49 @@
|
||||||
#include <miiphy.h>
|
#include <miiphy.h>
|
||||||
#include "eth_internal.h"
|
#include "eth_internal.h"
|
||||||
|
|
||||||
|
void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
|
||||||
|
{
|
||||||
|
char *end;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 6; ++i) {
|
||||||
|
enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
|
||||||
|
if (addr)
|
||||||
|
addr = (*end) ? end + 1 : end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int eth_getenv_enetaddr(const char *name, uchar *enetaddr)
|
||||||
|
{
|
||||||
|
eth_parse_enetaddr(getenv(name), enetaddr);
|
||||||
|
return is_valid_ethaddr(enetaddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
int eth_setenv_enetaddr(const char *name, const uchar *enetaddr)
|
||||||
|
{
|
||||||
|
char buf[20];
|
||||||
|
|
||||||
|
sprintf(buf, "%pM", enetaddr);
|
||||||
|
|
||||||
|
return setenv(name, buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
int eth_getenv_enetaddr_by_index(const char *base_name, int index,
|
||||||
|
uchar *enetaddr)
|
||||||
|
{
|
||||||
|
char enetvar[32];
|
||||||
|
sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
|
||||||
|
return eth_getenv_enetaddr(enetvar, enetaddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
int eth_setenv_enetaddr_by_index(const char *base_name, int index,
|
||||||
|
uchar *enetaddr)
|
||||||
|
{
|
||||||
|
char enetvar[32];
|
||||||
|
sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
|
||||||
|
return eth_setenv_enetaddr(enetvar, enetaddr);
|
||||||
|
}
|
||||||
|
|
||||||
void eth_common_init(void)
|
void eth_common_init(void)
|
||||||
{
|
{
|
||||||
bootstage_mark(BOOTSTAGE_ID_NET_ETH_START);
|
bootstage_mark(BOOTSTAGE_ID_NET_ETH_START);
|
||||||
|
|
|
@ -12,4 +12,20 @@
|
||||||
/* Do init that is common to driver model and legacy networking */
|
/* Do init that is common to driver model and legacy networking */
|
||||||
void eth_common_init(void);
|
void eth_common_init(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* eth_setenv_enetaddr_by_index() - set the MAC address envrionment variable
|
||||||
|
*
|
||||||
|
* This sets up an environment variable with the given MAC address (@enetaddr).
|
||||||
|
* The environment variable to be set is defined by <@base_name><@index>addr.
|
||||||
|
* If @index is 0 it is omitted. For common Ethernet this means ethaddr,
|
||||||
|
* eth1addr, etc.
|
||||||
|
*
|
||||||
|
* @base_name: Base name for variable, typically "eth"
|
||||||
|
* @index: Index of interface being updated (>=0)
|
||||||
|
* @enetaddr: Pointer to MAC address to put into the variable
|
||||||
|
* @return 0 if OK, other value on error
|
||||||
|
*/
|
||||||
|
int eth_setenv_enetaddr_by_index(const char *base_name, int index,
|
||||||
|
uchar *enetaddr);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue