Root/drivers/net/bfin_mac.h

1/*
2 * Blackfin On-Chip MAC Driver
3 *
4 * Copyright 2004-2007 Analog Devices Inc.
5 *
6 * Enter bugs at http://blackfin.uclinux.org/
7 *
8 * Licensed under the GPL-2 or later.
9 */
10
11#define BFIN_MAC_CSUM_OFFLOAD
12
13struct dma_descriptor {
14    struct dma_descriptor *next_dma_desc;
15    unsigned long start_addr;
16    unsigned short config;
17    unsigned short x_count;
18};
19
20struct status_area_rx {
21#if defined(BFIN_MAC_CSUM_OFFLOAD)
22    unsigned short ip_hdr_csum; /* ip header checksum */
23    /* ip payload(udp or tcp or others) checksum */
24    unsigned short ip_payload_csum;
25#endif
26    unsigned long status_word; /* the frame status word */
27};
28
29struct status_area_tx {
30    unsigned long status_word; /* the frame status word */
31};
32
33/* use two descriptors for a packet */
34struct net_dma_desc_rx {
35    struct net_dma_desc_rx *next;
36    struct sk_buff *skb;
37    struct dma_descriptor desc_a;
38    struct dma_descriptor desc_b;
39    struct status_area_rx status;
40};
41
42/* use two descriptors for a packet */
43struct net_dma_desc_tx {
44    struct net_dma_desc_tx *next;
45    struct sk_buff *skb;
46    struct dma_descriptor desc_a;
47    struct dma_descriptor desc_b;
48    unsigned char packet[1560];
49    struct status_area_tx status;
50};
51
52struct bfin_mac_local {
53    /*
54     * these are things that the kernel wants me to keep, so users
55     * can find out semi-useless statistics of how well the card is
56     * performing
57     */
58    struct net_device_stats stats;
59
60    unsigned char Mac[6]; /* MAC address of the board */
61    spinlock_t lock;
62
63    /* MII and PHY stuffs */
64    int old_link; /* used by bf537_adjust_link */
65    int old_speed;
66    int old_duplex;
67
68    struct phy_device *phydev;
69    struct mii_bus *mii_bus;
70};
71
72extern void bfin_get_ether_addr(char *addr);
73

Archive Download this file



interactive