]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - include/net.h
powerpc, 8260: remove support for mpc8260
[people/ms/u-boot.git] / include / net.h
index 03ae232f5c47f58a60be063e09348d95a6915297..2eaa88224c9050755330e67a57ae7b541cfaa3fa 100644 (file)
 #ifndef __NET_H__
 #define __NET_H__
 
-#if defined(CONFIG_8xx)
-#include <commproc.h>
-#endif /* CONFIG_8xx */
-
 #include <asm/cache.h>
 #include <asm/byteorder.h>     /* for nton* / ntoh* stuff */
 
 
 #define PKTALIGN       ARCH_DMA_MINALIGN
 
+/* ARP hardware address length */
+#define ARP_HLEN 6
+/*
+ * The size of a MAC address in string form, each digit requires two chars
+ * and five separator characters to form '00:00:00:00:00:00'.
+ */
+#define ARP_HLEN_ASCII (ARP_HLEN * 2) + (ARP_HLEN - 1)
+
 /* IPv4 addresses are always 32 bits in size */
 struct in_addr {
        __be32 s_addr;
@@ -90,7 +94,7 @@ enum eth_state_t {
  */
 struct eth_pdata {
        phys_addr_t iobase;
-       unsigned char enetaddr[6];
+       unsigned char enetaddr[ARP_HLEN];
        int phy_interface;
        int max_speed;
 };
@@ -160,8 +164,9 @@ void eth_halt_state_only(void); /* Set passive state */
 
 #ifndef CONFIG_DM_ETH
 struct eth_device {
-       char name[16];
-       unsigned char enetaddr[6];
+#define ETH_NAME_LEN 16
+       char name[ETH_NAME_LEN];
+       unsigned char enetaddr[ARP_HLEN];
        phys_addr_t iobase;
        int state;
 
@@ -238,7 +243,7 @@ int eth_getenv_enetaddr(const char *name, uchar *enetaddr);
 int eth_setenv_enetaddr(const char *name, const uchar *enetaddr);
 
 /**
- * eth_setenv_enetaddr_by_index() - set the MAC address envrionment variable
+ * eth_setenv_enetaddr_by_index() - set the MAC address environment 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.
@@ -254,6 +259,13 @@ int eth_setenv_enetaddr_by_index(const char *base_name, int index,
                                 uchar *enetaddr);
 
 
+/*
+ * Initialize USB ethernet device with CONFIG_DM_ETH
+ * Returns:
+ *     0 is success, non-zero is error status.
+ */
+int usb_ether_init(void);
+
 /*
  * Get the hardware address for an ethernet interface .
  * Args:
@@ -269,7 +281,7 @@ int eth_getenv_enetaddr_by_index(const char *base_name, int index,
 int eth_init(void);                    /* Initialize the device */
 int eth_send(void *packet, int length);           /* Send a packet */
 
-#ifdef CONFIG_API
+#if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER)
 int eth_receive(void *packet, int length); /* Receive a packet*/
 extern void (*push_packet)(void *packet, int length);
 #endif
@@ -293,9 +305,9 @@ u32 ether_crc(size_t len, unsigned char const *p);
  */
 
 struct ethernet_hdr {
-       u8              et_dest[6];     /* Destination node             */
-       u8              et_src[6];      /* Source node                  */
-       u16             et_protlen;     /* Protocol or length           */
+       u8              et_dest[ARP_HLEN];      /* Destination node     */
+       u8              et_src[ARP_HLEN];       /* Source node          */
+       u16             et_protlen;             /* Protocol or length   */
 };
 
 /* Ethernet header size */
@@ -304,16 +316,16 @@ struct ethernet_hdr {
 #define ETH_FCS_LEN    4               /* Octets in the FCS            */
 
 struct e802_hdr {
-       u8              et_dest[6];     /* Destination node             */
-       u8              et_src[6];      /* Source node                  */
-       u16             et_protlen;     /* Protocol or length           */
-       u8              et_dsap;        /* 802 DSAP                     */
-       u8              et_ssap;        /* 802 SSAP                     */
-       u8              et_ctl;         /* 802 control                  */
-       u8              et_snap1;       /* SNAP                         */
+       u8              et_dest[ARP_HLEN];      /* Destination node     */
+       u8              et_src[ARP_HLEN];       /* Source node          */
+       u16             et_protlen;             /* Protocol or length   */
+       u8              et_dsap;                /* 802 DSAP             */
+       u8              et_ssap;                /* 802 SSAP             */
+       u8              et_ctl;                 /* 802 control          */
+       u8              et_snap1;               /* SNAP                 */
        u8              et_snap2;
        u8              et_snap3;
-       u16             et_prot;        /* 802 protocol                 */
+       u16             et_prot;                /* 802 protocol         */
 };
 
 /* 802 + SNAP + ethernet header size */
@@ -323,11 +335,11 @@ struct e802_hdr {
  *     Virtual LAN Ethernet header
  */
 struct vlan_ethernet_hdr {
-       u8              vet_dest[6];    /* Destination node             */
-       u8              vet_src[6];     /* Source node                  */
-       u16             vet_vlan_type;  /* PROT_VLAN                    */
-       u16             vet_tag;        /* TAG of VLAN                  */
-       u16             vet_type;       /* protocol type                */
+       u8              vet_dest[ARP_HLEN];     /* Destination node     */
+       u8              vet_src[ARP_HLEN];      /* Source node          */
+       u16             vet_vlan_type;          /* PROT_VLAN            */
+       u16             vet_tag;                /* TAG of VLAN          */
+       u16             vet_type;               /* protocol type        */
 };
 
 /* VLAN Ethernet header size */
@@ -337,6 +349,8 @@ struct vlan_ethernet_hdr {
 #define PROT_ARP       0x0806          /* IP ARP protocol              */
 #define PROT_RARP      0x8035          /* IP ARP protocol              */
 #define PROT_VLAN      0x8100          /* IEEE 802.1q protocol         */
+#define PROT_IPV6      0x86dd          /* IPv6 over bluebook           */
+#define PROT_PPP_SES   0x8864          /* PPPoE session messages       */
 
 #define IPPROTO_ICMP    1      /* Internet Control Message Protocol    */
 #define IPPROTO_UDP    17      /* User Datagram Protocol               */
@@ -396,7 +410,6 @@ struct arp_hdr {
 #   define ARP_ETHER       1           /* Ethernet  hardware address   */
        u16             ar_pro;         /* Format of protocol address   */
        u8              ar_hln;         /* Length of hardware address   */
-#   define ARP_HLEN    6
        u8              ar_pln;         /* Length of protocol address   */
 #   define ARP_PLEN    4
        u16             ar_op;          /* Operation                    */
@@ -463,20 +476,14 @@ struct icmp_hdr {
 #define IP_ICMP_HDR_SIZE       (IP_HDR_SIZE + ICMP_HDR_SIZE)
 
 /*
- * Maximum packet size; used to allocate packet storage.
- * TFTP packets can be 524 bytes + IP header + ethernet header.
- * Lets be conservative, and go for 38 * 16.  (Must also be
- * a multiple of 32 bytes).
- */
-/*
- * AS.HARNOIS : Better to set PKTSIZE to maximum size because
- * traffic type is not always controlled
- * maximum packet size =  1518
+ * Maximum packet size; used to allocate packet storage. Use
+ * the maxium Ethernet frame size as specified by the Ethernet
+ * standard including the 802.1Q tag (VLAN tagging).
+ * maximum packet size =  1522
  * maximum packet size and multiple of 32 bytes =  1536
  */
-#define PKTSIZE                        1518
+#define PKTSIZE                        1522
 #define PKTSIZE_ALIGN          1536
-/*#define PKTSIZE              608*/
 
 /*
  * Maximum receive ring size; that is, the number of packets
@@ -511,16 +518,16 @@ extern char       net_nis_domain[32];     /* Our IS domain */
 extern char    net_hostname[32];       /* Our hostname */
 extern char    net_root_path[64];      /* Our root path */
 /** END OF BOOTP EXTENTIONS **/
-extern u8              net_ethaddr[6];         /* Our ethernet address */
-extern u8              net_server_ethaddr[6];  /* Boot server enet address */
+extern u8              net_ethaddr[ARP_HLEN];          /* Our ethernet address */
+extern u8              net_server_ethaddr[ARP_HLEN];   /* Boot server enet address */
 extern struct in_addr  net_ip;         /* Our    IP addr (0 = unknown) */
 extern struct in_addr  net_server_ip;  /* Server IP addr (0 = unknown) */
 extern uchar           *net_tx_packet;         /* THE transmit packet */
 extern uchar           *net_rx_packets[PKTBUFSRX]; /* Receive packets */
 extern uchar           *net_rx_packet;         /* Current receive packet */
 extern int             net_rx_packet_len;      /* Current rx packet length */
-extern const u8                net_bcast_ethaddr[6];   /* Ethernet broadcast address */
-extern const u8                net_null_ethaddr[6];
+extern const u8                net_bcast_ethaddr[ARP_HLEN];    /* Ethernet broadcast address */
+extern const u8                net_null_ethaddr[ARP_HLEN];
 
 #define VLAN_NONE      4095                    /* untagged */
 #define VLAN_IDMASK    0x0fff                  /* mask of valid vlan id */
@@ -559,9 +566,9 @@ extern ushort cdp_appliance_vlan;   /* CDP returned appliance VLAN */
  */
 static inline int is_cdp_packet(const uchar *ethaddr)
 {
-       extern const u8 net_cdp_ethaddr[6];
+       extern const u8 net_cdp_ethaddr[ARP_HLEN];
 
-       return memcmp(ethaddr, net_cdp_ethaddr, 6) == 0;
+       return memcmp(ethaddr, net_cdp_ethaddr, ARP_HLEN) == 0;
 }
 #endif