From b3eabd82f21b4d9206622fc5aee16751d2f4be8f Mon Sep 17 00:00:00 2001 From: Pankaj Bansal Date: Fri, 16 Nov 2018 06:26:18 +0000 Subject: net: phy: Add clause 45 identifier to phy_device The phy devices can be accessed via clause 22 or via clause 45. This information can be deduced when we read phy id. if the phy id is read without giving any MDIO Manageable Device Address (MMD), then it conforms to clause 22. otherwise it conforms to clause 45. Signed-off-by: Pankaj Bansal Acked-by: Joe Hershberger --- include/phy.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/phy.h b/include/phy.h index b86fdfb2ce3..f23ca63f3b8 100644 --- a/include/phy.h +++ b/include/phy.h @@ -138,6 +138,7 @@ struct phy_device { int pause; int asym_pause; u32 phy_id; + bool is_c45; u32 flags; }; -- cgit v1.2.3 From 6880efdf5aa63ba3d598af68dbbbc2511a1a604f Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Thu, 22 Nov 2018 16:58:32 +0100 Subject: net: remove duplicate definition of ETHADDR_WILDCARD ETHADDR_WILDCARD is defined as the same value in both env_flags.h and env_callback.h As env_callback.h includes env_flags.h, remove the duplicate definition from env_callback.h Signed-off-by: Simon Goldschmidt Acked-by: Joe Hershberger --- include/env_callback.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include') diff --git a/include/env_callback.h b/include/env_callback.h index 3c44ff574b0..507a52e13c9 100644 --- a/include/env_callback.h +++ b/include/env_callback.h @@ -32,10 +32,8 @@ #ifdef CONFIG_REGEX #define ENV_DOT_ESCAPE "\\" -#define ETHADDR_WILDCARD "\\d?" #else #define ENV_DOT_ESCAPE -#define ETHADDR_WILDCARD #endif #ifdef CONFIG_CMD_DNS -- cgit v1.2.3 From be09f5bc7c0c3f0d0bc7b88d23dae883bfa4e014 Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Thu, 22 Nov 2018 17:06:39 +0100 Subject: net: fix env flags for eth10addr and above With CONFIG_REGEX enabled, ETHADDR_WILDCARD is set up for up to 10 interfaces (0..9) as the number can only have one digit. On boards with more than 10 interfaces, this leads to the protection and format checks being absent for eth10addr and above. Fix this by changing ETHADDR_WILDCARD from "\\d?" to "\\d*" to allow more than one digit. Signed-off-by: Simon Goldschmidt Acked-by: Joe Hershberger --- include/env_flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/env_flags.h b/include/env_flags.h index cc2c34f939f..23744e395c8 100644 --- a/include/env_flags.h +++ b/include/env_flags.h @@ -38,7 +38,7 @@ enum env_flags_varaccess { #ifdef CONFIG_CMD_NET #ifdef CONFIG_REGEX -#define ETHADDR_WILDCARD "\\d?" +#define ETHADDR_WILDCARD "\\d*" #else #define ETHADDR_WILDCARD #endif -- cgit v1.2.3 From 1a4af5c562fdb9f5a884a53f136f2b2075ffd1d8 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Mon, 26 Nov 2018 21:00:28 +1300 Subject: net: move ether_crc to tsec driver ether_crc was added to the core net code in commit 53a5c424bf86 ("multicast tftp: RFC2090") so that other drivers could use it. However the only current user of it is tsec.c so move it there. Signed-off-by: Chris Packham Acked-by: Joe Hershberger --- include/net.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/net.h b/include/net.h index 51c099dae2e..359bfb5ef69 100644 --- a/include/net.h +++ b/include/net.h @@ -289,7 +289,6 @@ const char *eth_get_name(void); /* get name of current device */ #ifdef CONFIG_MCAST_TFTP int eth_mcast_join(struct in_addr mcast_addr, int join); -u32 ether_crc(size_t len, unsigned char const *p); #endif -- cgit v1.2.3 From 67bb984249442378ebb6a0eb68b6b0dd67dfbe72 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Mon, 26 Nov 2018 21:00:29 +1300 Subject: net: remove CONFIG_MCAST_TFTP No mainline board enables CONFIG_MCAST_TFTP and there have been compilation issues with the code for some time. Additionally, it has a potential buffer underrun issue (reported as a side note in CVE-2018-18439). Remove the multicast TFTP code but keep the driver API for the future addition of IPv6. Cc: Simon Goldschmidt Signed-off-by: Chris Packham Acked-by: Joe Hershberger --- include/net.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'include') diff --git a/include/net.h b/include/net.h index 359bfb5ef69..dd52ed3f476 100644 --- a/include/net.h +++ b/include/net.h @@ -140,9 +140,7 @@ struct eth_ops { int (*recv)(struct udevice *dev, int flags, uchar **packetp); int (*free_pkt)(struct udevice *dev, uchar *packet, int length); void (*stop)(struct udevice *dev); -#ifdef CONFIG_MCAST_TFTP int (*mcast)(struct udevice *dev, const u8 *enetaddr, int join); -#endif int (*write_hwaddr)(struct udevice *dev); int (*read_rom_hwaddr)(struct udevice *dev); }; @@ -175,9 +173,7 @@ struct eth_device { int (*send)(struct eth_device *, void *packet, int length); int (*recv)(struct eth_device *); void (*halt)(struct eth_device *); -#ifdef CONFIG_MCAST_TFTP - int (*mcast)(struct eth_device *, const u8 *enetaddr, u8 set); -#endif + int (*mcast)(struct eth_device *, const u8 *enetaddr, int join); int (*write_hwaddr)(struct eth_device *); struct eth_device *next; int index; @@ -286,11 +282,7 @@ extern void (*push_packet)(void *packet, int length); int eth_rx(void); /* Check for received packets */ void eth_halt(void); /* stop SCC */ const char *eth_get_name(void); /* get name of current device */ - -#ifdef CONFIG_MCAST_TFTP int eth_mcast_join(struct in_addr mcast_addr, int join); -#endif - /**********************************************************************/ /* @@ -577,10 +569,6 @@ extern struct in_addr net_ntp_server; /* the ip address to NTP */ extern int net_ntp_time_offset; /* offset time from UTC */ #endif -#if defined(CONFIG_MCAST_TFTP) -extern struct in_addr net_mcast_addr; -#endif - /* Initialize the network adapter */ void net_init(void); int net_loop(enum proto_t); -- cgit v1.2.3