X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fnet.h;h=1bf9867f8cf8efaf70528d1e4e892034701e9857;hb=2493ce6258a59881b702cbe255db9e53f1e3fd13;hp=a54d5eeac5fc95232089ac2f577ec0ffec667e23;hpb=60f38d82c45fef55ac04ee52b234e6dd07e31935;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/net.h b/include/net.h index a54d5ee..1bf9867 100644 --- a/include/net.h +++ b/include/net.h @@ -12,10 +12,18 @@ #ifndef __NET_H__ #define __NET_H__ +#include #include #include /* for nton* / ntoh* stuff */ #include +#include +#include #include +#include + +struct bd_info; +struct cmd_tbl; +struct udevice; #define DEBUG_LL_STATE 0 /* Link local state machine changes */ #define DEBUG_DEV_PKT 0 /* Packets or info directed to the device */ @@ -50,6 +58,17 @@ struct in_addr { }; /** + * do_tftpb - Run the tftpboot command + * + * @cmdtp: Command information for tftpboot + * @flag: Command flags (CMD_FLAG_...) + * @argc: Number of arguments + * @argv: List of arguments + * @return result (see enum command_ret_t) + */ +int do_tftpb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]); + +/** * An incoming packet handler. * @param pkt pointer to the application packet * @param dport destination UDP port @@ -172,12 +191,12 @@ struct eth_device { phys_addr_t iobase; int state; - int (*init)(struct eth_device *, bd_t *); + int (*init)(struct eth_device *eth, struct bd_info *bd); int (*send)(struct eth_device *, void *packet, int length); int (*recv)(struct eth_device *); void (*halt)(struct eth_device *); int (*mcast)(struct eth_device *, const u8 *enetaddr, int join); - int (*write_hwaddr)(struct eth_device *); + int (*write_hwaddr)(struct eth_device *eth); struct eth_device *next; int index; void *priv; @@ -230,7 +249,7 @@ static __always_inline void eth_halt_state_only(void) int eth_write_hwaddr(struct eth_device *dev, const char *base_name, int eth_number); -int usb_eth_initialize(bd_t *bi); +int usb_eth_initialize(struct bd_info *bi); #endif int eth_initialize(void); /* Initialize network subsystem */ @@ -344,6 +363,7 @@ struct vlan_ethernet_hdr { #define PROT_VLAN 0x8100 /* IEEE 802.1q protocol */ #define PROT_IPV6 0x86dd /* IPv6 over bluebook */ #define PROT_PPP_SES 0x8864 /* PPPoE session messages */ +#define PROT_NCSI 0x88f8 /* NC-SI control packets */ #define IPPROTO_ICMP 1 /* Internet Control Message Protocol */ #define IPPROTO_UDP 17 /* User Datagram Protocol */ @@ -816,7 +836,7 @@ static inline int is_valid_ethaddr(const u8 *addr) static inline void net_random_ethaddr(uchar *addr) { int i; - unsigned int seed = get_timer(0); + unsigned int seed = get_ticks(); for (i = 0; i < 6; i++) addr[i] = rand_r(&seed); @@ -825,10 +845,30 @@ static inline void net_random_ethaddr(uchar *addr) addr[0] |= 0x02; /* set local assignment bit (IEEE802) */ } +/** + * string_to_enetaddr() - Parse a MAC address + * + * Convert a string MAC address + * + * Implemented in lib/net_utils.c (built unconditionally) + * + * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit + * hex value + * @enetaddr: Place to put MAC address (6 bytes) + */ +void string_to_enetaddr(const char *addr, uint8_t *enetaddr); + /* Convert an IP address to a string */ void ip_to_string(struct in_addr x, char *s); -/* Convert a string to ip address */ +/** + * string_to_ip() - Convert a string to ip address + * + * Implemented in lib/net_utils.c (built unconditionally) + * + * @s: Input string to parse + * @return: in_addr struct containing the parsed IP address + */ struct in_addr string_to_ip(const char *s); /* Convert a VLAN id to a string */ @@ -857,9 +897,6 @@ int is_serverip_in_cmd(void); */ int net_parse_bootfile(struct in_addr *ipaddr, char *filename, int max_len); -/* get a random source port */ -unsigned int random_port(void); - /** * update_tftp - Update firmware over TFTP (via DFU) * @@ -873,17 +910,24 @@ unsigned int random_port(void); */ int update_tftp(ulong addr, char *interface, char *devstring); -/**********************************************************************/ - /** - * eth_parse_enetaddr() - Parse a MAC address + * env_get_ip() - Convert an environment value to to an ip address * - * Convert a string MAC address + * @var: Environment variable to convert. The value of this variable must be + * in the format format a.b.c.d, where each value is a decimal number from + * 0 to 255 + * @return IP address, or 0 if invalid + */ +static inline struct in_addr env_get_ip(char *var) +{ + return string_to_ip(env_get(var)); +} + +/** + * reset_phy() - Reset the Ethernet PHY * - * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit - * hex value - * @enetaddr: Place to put MAC address (6 bytes) + * This should be implemented by boards if CONFIG_RESET_PHY_R is enabled */ -void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr); +void reset_phy(void); #endif /* __NET_H__ */