| /* |
| * Blackfin On-Chip MAC Driver |
| * |
| * Copyright 2004-2007 Analog Devices Inc. |
| * |
| * Enter bugs at http://blackfin.uclinux.org/ |
| * |
| * Licensed under the GPL-2 or later. |
| */ |
| |
| #define BFIN_MAC_CSUM_OFFLOAD |
| |
| struct dma_descriptor { |
| struct dma_descriptor *next_dma_desc; |
| unsigned long start_addr; |
| unsigned short config; |
| unsigned short x_count; |
| }; |
| |
| struct status_area_rx { |
| #if defined(BFIN_MAC_CSUM_OFFLOAD) |
| unsigned short ip_hdr_csum; /* ip header checksum */ |
| /* ip payload(udp or tcp or others) checksum */ |
| unsigned short ip_payload_csum; |
| #endif |
| unsigned long status_word; /* the frame status word */ |
| }; |
| |
| struct status_area_tx { |
| unsigned long status_word; /* the frame status word */ |
| }; |
| |
| /* use two descriptors for a packet */ |
| struct net_dma_desc_rx { |
| struct net_dma_desc_rx *next; |
| struct sk_buff *skb; |
| struct dma_descriptor desc_a; |
| struct dma_descriptor desc_b; |
| struct status_area_rx status; |
| }; |
| |
| /* use two descriptors for a packet */ |
| struct net_dma_desc_tx { |
| struct net_dma_desc_tx *next; |
| struct sk_buff *skb; |
| struct dma_descriptor desc_a; |
| struct dma_descriptor desc_b; |
| unsigned char packet[1560]; |
| struct status_area_tx status; |
| }; |
| |
| struct bf537mac_local { |
| /* |
| * these are things that the kernel wants me to keep, so users |
| * can find out semi-useless statistics of how well the card is |
| * performing |
| */ |
| struct net_device_stats stats; |
| |
| unsigned char Mac[6]; /* MAC address of the board */ |
| spinlock_t lock; |
| |
| /* MII and PHY stuffs */ |
| int old_link; /* used by bf537_adjust_link */ |
| int old_speed; |
| int old_duplex; |
| |
| struct phy_device *phydev; |
| struct mii_bus mii_bus; |
| }; |
| |
| extern void bfin_get_ether_addr(char *addr); |