]> git.sur5r.net Git - u-boot/blobdiff - include/net.h
Add configuration for wtk board
[u-boot] / include / net.h
index e4f7cbdd2245b03d2722079ae6a48ad49d14ed67..2d4aa94d0d4f66af02a95a78952aef41d607c53c 100644 (file)
 #ifndef __NET_H__
 #define __NET_H__
 
-#if !defined(CONFIG_NET_MULTI) && defined(CONFIG_8xx)
+#if defined(CONFIG_8xx)
 #include <commproc.h>
-#if defined(FEC_ENET) || defined(SCC_ENET)
-#define CONFIG_NET_MULTI
-#endif
-#endif
+# if !defined(CONFIG_NET_MULTI)
+#  if defined(FEC_ENET) || defined(SCC_ENET)
+#   define CONFIG_NET_MULTI
+#  endif
+# endif
+#endif /* CONFIG_8xx */
+
+#if defined(CONFIG_MPC5XXX)
+# if !defined(CONFIG_NET_MULTI)
+#  if defined(CONFIG_MPC5XXX_FEC)
+#   define CONFIG_NET_MULTI
+#  endif
+# endif
+#endif /* CONFIG_MPC5XXX */
 
 #if !defined(CONFIG_NET_MULTI) && defined(CONFIG_8260)
 #include <config.h>
@@ -62,7 +72,6 @@
 typedef ulong          IPaddr_t;
 
 
-
 /*
  * The current receive packet handler.  Called with a pointer to the
  * application packet, and a protocol type (PORT_BOOTPC or PORT_TFTP).
@@ -182,9 +191,9 @@ typedef struct
 #   define RARPOP_REPLY            4           /* Response to previous request */
 
        /*
-         * The remaining fields are variable in size, according to
-         * the sizes above, and are defined as appropriate for
-         * specific hardware/protocol combinations.
+        * The remaining fields are variable in size, according to
+        * the sizes above, and are defined as appropriate for
+        * specific hardware/protocol combinations.
         */
        uchar           ar_data[0];
 #if 0
@@ -200,7 +209,9 @@ typedef struct
 /*
  * ICMP stuff (just enough to handle (host) redirect messages)
  */
+#define ICMP_ECHO_REPLY                0       /* Echo reply                   */
 #define ICMP_REDIRECT          5       /* Redirect (change route)      */
+#define ICMP_ECHO_REQUEST      8       /* Echo request                 */
 
 /* Codes for REDIRECT. */
 #define ICMP_REDIR_NET         0       /* Redirect Net                 */
@@ -224,7 +235,6 @@ typedef struct icmphdr {
 } ICMP_t;
 
 
-
 /*
  * Maximum packet size; used to allocate packet storage.
  * TFTP packets can be 524 bytes + IP header + ethernet header.
@@ -265,6 +275,9 @@ typedef struct icmphdr {
 extern IPaddr_t                NetOurGatewayIP;        /* Our gateway IP addresse      */
 extern IPaddr_t                NetOurSubnetMask;       /* Our subnet mask (0 = unknown)*/
 extern IPaddr_t                NetOurDNSIP;     /* Our Domain Name Server (0 = unknown)*/
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+extern IPaddr_t                NetOurDNS2IP;    /* Our 2nd Domain Name Server (0 = unknown)*/
+#endif
 extern char            NetOurNISDomain[32];    /* Our NIS domain               */
 extern char            NetOurHostName[32];     /* Our hostname                 */
 extern char            NetOurRootPath[64];     /* Our root path                */
@@ -292,11 +305,15 @@ extern int                NetState;               /* Network loop state           */
 extern int             NetRestartWrap;         /* Tried all network devices    */
 #endif
 
-typedef enum { BOOTP, RARP, ARP, TFTP, DHCP } proto_t;
+typedef enum { BOOTP, RARP, ARP, TFTP, DHCP, PING, DNS } proto_t;
 
 /* from net/net.c */
 extern char    BootFile[128];                  /* Boot File name               */
 
+#if (CONFIG_COMMANDS & CFG_CMD_PING)
+extern IPaddr_t        NetPingIP;                      /* the ip address to ping               */
+#endif
+
 /* Initialize the network adapter */
 extern int     NetLoop(proto_t);
 
@@ -323,6 +340,9 @@ extern void NetSetTimeout(int, thand_f *);  /* Set timeout handler          */
 /* Transmit "NetTxPacket" */
 extern void    NetSendPacket(volatile uchar *, int);
 
+/* Transmit UDP packet, performing ARP request if needed */
+extern int     NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len);
+
 /* Processes a received packet */
 extern void    NetReceive(volatile uchar *, int);
 
@@ -373,6 +393,9 @@ static inline void NetCopyLong(ulong *to, ulong *from)
 /* Convert an IP address to a string */
 extern void    ip_to_string (IPaddr_t x, char *s);
 
+/* Convert a string to ip address */
+extern IPaddr_t string_to_ip(char *s);
+
 /* read an IP address from a environment variable */
 extern IPaddr_t getenv_IPaddr (char *);