2007-07-17 10:43:44 +04:00
/*
* File : drivers / net / bfin_mac . c
* Based on :
* Maintainer :
* Bryan Wu < bryan . wu @ analog . com >
*
* Original author :
* Luke Yang < luke . yang @ analog . com >
*
* Created :
* Description :
*
* Modified :
* Copyright 2004 - 2006 Analog Devices Inc .
*
* Bugs : Enter bugs at http : //blackfin.uclinux.org/
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 , or ( at your option )
* any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; see the file COPYING .
* If not , write to the Free Software Foundation ,
* 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
# 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
*/
2007-09-19 19:37:36 +04:00
struct net_device_stats stats ;
2007-07-17 10:43:44 +04:00
unsigned char Mac [ 6 ] ; /* MAC address of the board */
spinlock_t lock ;
2007-09-19 19:37:36 +04:00
/* 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 ;
2007-07-17 10:43:44 +04:00
} ;
2007-11-15 16:21:20 +03:00
extern void bfin_get_ether_addr ( char * addr ) ;