#define PKTALIGN ARCH_DMA_MINALIGN
+/* ARP hardware address length */
+#define ARP_HLEN 6
+
/* IPv4 addresses are always 32 bits in size */
struct in_addr {
__be32 s_addr;
*/
struct eth_pdata {
phys_addr_t iobase;
- unsigned char enetaddr[6];
+ unsigned char enetaddr[ARP_HLEN];
int phy_interface;
int max_speed;
};
#ifndef CONFIG_DM_ETH
struct eth_device {
char name[16];
- unsigned char enetaddr[6];
+ unsigned char enetaddr[ARP_HLEN];
phys_addr_t iobase;
int state;
*/
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 */
#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 */
* 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 */
# 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 */
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 */
*/
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
eth_write_hwaddr(dev);
break;
case env_op_delete:
- memset(pdata->enetaddr, 0, 6);
+ memset(pdata->enetaddr, 0, ARP_HLEN);
}
}
{
struct eth_device_priv *priv = dev->uclass_priv;
struct eth_pdata *pdata = dev->platdata;
- unsigned char env_enetaddr[6];
+ unsigned char env_enetaddr[ARP_HLEN];
#if defined(CONFIG_NEEDS_MANUAL_RELOC)
struct eth_ops *ops = eth_get_ops(dev);
eth_getenv_enetaddr_by_index("eth", dev->seq, env_enetaddr);
if (!is_zero_ethaddr(env_enetaddr)) {
if (!is_zero_ethaddr(pdata->enetaddr) &&
- memcmp(pdata->enetaddr, env_enetaddr, 6)) {
+ memcmp(pdata->enetaddr, env_enetaddr, ARP_HLEN)) {
printf("\nWarning: %s MAC addresses don't match:\n",
dev->name);
printf("Address in SROM is %pM\n",
}
/* Override the ROM MAC address */
- memcpy(pdata->enetaddr, env_enetaddr, 6);
+ memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN);
} else if (is_valid_ethaddr(pdata->enetaddr)) {
eth_setenv_enetaddr_by_index("eth", dev->seq, pdata->enetaddr);
printf("\nWarning: %s using MAC address from ROM\n",
eth_get_ops(dev)->stop(dev);
/* clear the MAC address */
- memset(pdata->enetaddr, 0, 6);
+ memset(pdata->enetaddr, 0, ARP_HLEN);
return 0;
}
eth_write_hwaddr(dev, "eth", dev->index);
break;
case env_op_delete:
- memset(dev->enetaddr, 0, 6);
+ memset(dev->enetaddr, 0, ARP_HLEN);
}
}
dev = dev->next;
int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
int eth_number)
{
- unsigned char env_enetaddr[6];
+ unsigned char env_enetaddr[ARP_HLEN];
int ret = 0;
eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr);
if (!is_zero_ethaddr(env_enetaddr)) {
if (!is_zero_ethaddr(dev->enetaddr) &&
- memcmp(dev->enetaddr, env_enetaddr, 6)) {
+ memcmp(dev->enetaddr, env_enetaddr, ARP_HLEN)) {
printf("\nWarning: %s MAC addresses don't match:\n",
dev->name);
printf("Address in SROM is %pM\n",
env_enetaddr);
}
- memcpy(dev->enetaddr, env_enetaddr, 6);
+ memcpy(dev->enetaddr, env_enetaddr, ARP_HLEN);
} else if (is_valid_ethaddr(dev->enetaddr)) {
eth_setenv_enetaddr_by_index(base_name, eth_number,
dev->enetaddr);
*/
int eth_mcast_join(struct in_addr mcast_ip, int join)
{
- u8 mcast_mac[6];
+ u8 mcast_mac[ARP_HLEN];
if (!eth_current || !eth_current->mcast)
return -1;
mcast_mac[5] = htonl(mcast_ip.s_addr) & 0xff;