[U-Boot] [PATCH v1 5/5] net: Avoid build fail on am335x when NET is disabled
Alex Kiernan
alex.kiernan at gmail.com
Thu Mar 29 15:17:40 UTC 2018
Commit f411b5cca48f ("board: am335x: Always set eth/eth1addr environment
variable") adds support for Ethernet in Linux, but not U-Boot.
Ensure that we can do this even when U-Boot is compiled without
network support.
Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
---
cmd/nvedit.c | 30 ++++++++++++++++++++++++++++++
include/common.h | 4 ++++
include/net.h | 3 ---
net/eth_common.c | 30 ------------------------------
4 files changed, 34 insertions(+), 33 deletions(-)
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 4cb25b8..4008de1 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -341,6 +341,36 @@ ulong env_get_hex(const char *varname, ulong default_val)
return value;
}
+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_env_get_enetaddr(const char *name, uchar *enetaddr)
+{
+ eth_parse_enetaddr(env_get(name), enetaddr);
+ return is_valid_ethaddr(enetaddr);
+}
+
+int eth_env_set_enetaddr(const char *name, const uchar *enetaddr)
+{
+ char buf[ARP_HLEN_ASCII + 1];
+
+ if (eth_env_get_enetaddr(name, (uchar *)buf))
+ return -EEXIST;
+
+ sprintf(buf, "%pM", enetaddr);
+
+ return env_set(name, buf);
+}
+
#ifndef CONFIG_SPL_BUILD
static int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
diff --git a/include/common.h b/include/common.h
index 3087505..b7280eb 100644
--- a/include/common.h
+++ b/include/common.h
@@ -243,6 +243,10 @@ static inline int env_set_addr(const char *varname, const void *addr)
return env_set_hex(varname, (ulong)addr);
}
+void eth_parse_enetaddr(const char *addr, uchar *enetaddr);
+int eth_env_get_enetaddr(const char *name, uchar *enetaddr);
+int eth_env_set_enetaddr(const char *name, const uchar *enetaddr);
+
#ifdef CONFIG_AUTO_COMPLETE
int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf);
#endif
diff --git a/include/net.h b/include/net.h
index 455b48f..c339b9d 100644
--- a/include/net.h
+++ b/include/net.h
@@ -238,9 +238,6 @@ void eth_try_another(int first_restart); /* Change the device */
void eth_set_current(void); /* set nterface to ethcur var */
int eth_get_dev_index(void); /* get the device index */
-void eth_parse_enetaddr(const char *addr, uchar *enetaddr);
-int eth_env_get_enetaddr(const char *name, uchar *enetaddr);
-int eth_env_set_enetaddr(const char *name, const uchar *enetaddr);
/**
* eth_env_set_enetaddr_by_index() - set the MAC address environment variable
diff --git a/net/eth_common.c b/net/eth_common.c
index 66d0d22..cb7f029 100644
--- a/net/eth_common.c
+++ b/net/eth_common.c
@@ -12,36 +12,6 @@
#include <net.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_env_get_enetaddr(const char *name, uchar *enetaddr)
-{
- eth_parse_enetaddr(env_get(name), enetaddr);
- return is_valid_ethaddr(enetaddr);
-}
-
-int eth_env_set_enetaddr(const char *name, const uchar *enetaddr)
-{
- char buf[ARP_HLEN_ASCII + 1];
-
- if (eth_env_get_enetaddr(name, (uchar *)buf))
- return -EEXIST;
-
- sprintf(buf, "%pM", enetaddr);
-
- return env_set(name, buf);
-}
-
int eth_env_get_enetaddr_by_index(const char *base_name, int index,
uchar *enetaddr)
{
--
2.7.4
More information about the U-Boot
mailing list