~ubuntu-branches/ubuntu/vivid/u-boot/vivid

« back to all changes in this revision

Viewing changes to drivers/net/bcm570x_mm.h

  • Committer: Package Import Robot
  • Author(s): Clint Adams
  • Date: 2012-01-02 17:49:39 UTC
  • mfrom: (1.2.7)
  • Revision ID: package-import@ubuntu.com-20120102174939-iddq37p3372x10yp
Tags: 2011.12-1
* New upstream version.
  - Drop build-timestamp_autogenerated.h-without-config.patch (merged).
  - Drop ublimage-NAND-block-size-isn-t-set-at-build-time.patch (merged).
  - Update kerma-sheevaplug-mvsdio.diff
  - Update mipsel-native-endianness.diff
  - Drop dreamplug-v8.patch (merged).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
/******************************************************************************/
3
 
/*                                                                            */
4
 
/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 Broadcom         */
5
 
/* Corporation.                                                               */
6
 
/* All rights reserved.                                                       */
7
 
/*                                                                            */
8
 
/* This program is free software; you can redistribute it and/or modify       */
9
 
/* it under the terms of the GNU General Public License as published by       */
10
 
/* the Free Software Foundation, located in the file LICENSE.                 */
11
 
/*                                                                            */
12
 
/******************************************************************************/
13
 
 
14
 
#ifndef MM_H
15
 
#define MM_H
16
 
 
17
 
#define __raw_readl readl
18
 
#define __raw_writel writel
19
 
 
20
 
#define BIG_ENDIAN_HOST 1
21
 
#define readl(addr) (*(volatile unsigned int*)(addr))
22
 
#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))
23
 
 
24
 
/* Define memory barrier function here if needed */
25
 
#define wmb()
26
 
#define membar()
27
 
#include <common.h>
28
 
#include <asm/types.h>
29
 
#include "bcm570x_lm.h"
30
 
#include "bcm570x_queue.h"
31
 
#include "tigon3.h"
32
 
#include <pci.h>
33
 
 
34
 
#define FALSE 0
35
 
#define TRUE  1
36
 
#define ERROR -1
37
 
 
38
 
#if DBG
39
 
#define STATIC
40
 
#else
41
 
#define STATIC static
42
 
#endif
43
 
 
44
 
extern int MM_Packet_Desc_Size;
45
 
 
46
 
#define MM_PACKET_DESC_SIZE MM_Packet_Desc_Size
47
 
 
48
 
DECLARE_QUEUE_TYPE (UM_RX_PACKET_Q, MAX_RX_PACKET_DESC_COUNT + 1);
49
 
 
50
 
#define MAX_MEM 16
51
 
 
52
 
/* Synch */
53
 
typedef int mutex_t;
54
 
typedef int spinlock_t;
55
 
 
56
 
/* Embedded device control */
57
 
typedef struct _UM_DEVICE_BLOCK {
58
 
        LM_DEVICE_BLOCK lm_dev;
59
 
        pci_dev_t pdev;
60
 
        char *name;
61
 
        void *mem_list[MAX_MEM];
62
 
        dma_addr_t dma_list[MAX_MEM];
63
 
        int mem_size_list[MAX_MEM];
64
 
        int mem_list_num;
65
 
        int mtu;
66
 
        int index;
67
 
        int opened;
68
 
        int delayed_link_ind;   /* Delay link status during initial load */
69
 
        int adapter_just_inited;        /* the first few seconds after init. */
70
 
        int spurious_int;       /* new -- unsupported */
71
 
        int timer_interval;
72
 
        int adaptive_expiry;
73
 
        int crc_counter_expiry; /* new -- unsupported */
74
 
        int poll_tib_expiry;    /* new -- unsupported */
75
 
        int tx_full;
76
 
        int tx_queued;
77
 
        int line_speed;         /* in Mbps, 0 if link is down */
78
 
        UM_RX_PACKET_Q rx_out_of_buf_q;
79
 
        int rx_out_of_buf;
80
 
        int rx_low_buf_thresh;  /* changed to rx_buf_repl_thresh */
81
 
        int rx_buf_repl_panic_thresh;
82
 
        int rx_buf_align;       /* new -- unsupported */
83
 
        int do_global_lock;
84
 
        mutex_t global_lock;
85
 
        mutex_t undi_lock;
86
 
        long undi_flags;
87
 
        volatile int interrupt;
88
 
        int tasklet_pending;
89
 
        int tasklet_busy;       /* new -- unsupported */
90
 
        int rx_pkt;
91
 
        int tx_pkt;
92
 
#ifdef NICE_SUPPORT             /* unsupported, this is a linux ioctl */
93
 
        void (*nice_rx) (void *, void *);
94
 
        void *nice_ctx;
95
 
#endif                          /* NICE_SUPPORT */
96
 
        int rx_adaptive_coalesce;
97
 
        unsigned int rx_last_cnt;
98
 
        unsigned int tx_last_cnt;
99
 
        unsigned int rx_curr_coalesce_frames;
100
 
        unsigned int rx_curr_coalesce_ticks;
101
 
        unsigned int tx_curr_coalesce_frames;   /* new -- unsupported */
102
 
#if TIGON3_DEBUG                /* new -- unsupported */
103
 
        uint tx_zc_count;
104
 
        uint tx_chksum_count;
105
 
        uint tx_himem_count;
106
 
        uint rx_good_chksum_count;
107
 
#endif
108
 
        unsigned int rx_bad_chksum_count;       /* new -- unsupported */
109
 
        unsigned int rx_misc_errors;    /* new -- unsupported */
110
 
} UM_DEVICE_BLOCK, *PUM_DEVICE_BLOCK;
111
 
 
112
 
/* Physical/PCI DMA address */
113
 
typedef union {
114
 
        dma_addr_t dma_map;
115
 
} dma_map_t;
116
 
 
117
 
/* Packet */
118
 
typedef struct
119
 
    _UM_PACKET {
120
 
        LM_PACKET lm_packet;
121
 
        void *skbuff;           /* Address of packet buffer */
122
 
} UM_PACKET, *PUM_PACKET;
123
 
 
124
 
#define MM_ACQUIRE_UNDI_LOCK(_pDevice)
125
 
#define MM_RELEASE_UNDI_LOCK(_pDevice)
126
 
#define MM_ACQUIRE_INT_LOCK(_pDevice)
127
 
#define MM_RELEASE_INT_LOCK(_pDevice)
128
 
#define MM_UINT_PTR(_ptr)   ((unsigned long) (_ptr))
129
 
 
130
 
/* Macro for setting 64bit address struct */
131
 
#define set_64bit_addr(paddr, low, high) \
132
 
        (paddr)->Low = low;             \
133
 
        (paddr)->High = high;
134
 
 
135
 
/* Assume that PCI controller's view of host memory is same as host */
136
 
 
137
 
#define MEM_TO_PCI_PHYS(addr) (addr)
138
 
 
139
 
extern void MM_SetAddr (LM_PHYSICAL_ADDRESS * paddr, dma_addr_t addr);
140
 
extern void MM_SetT3Addr (T3_64BIT_HOST_ADDR * paddr, dma_addr_t addr);
141
 
extern void MM_MapTxDma (PLM_DEVICE_BLOCK pDevice,
142
 
                         struct _LM_PACKET *pPacket, T3_64BIT_HOST_ADDR * paddr,
143
 
                         LM_UINT32 * len, int frag);
144
 
extern void MM_MapRxDma (PLM_DEVICE_BLOCK pDevice,
145
 
                         struct _LM_PACKET *pPacket,
146
 
                         T3_64BIT_HOST_ADDR * paddr);
147
 
 
148
 
/* BSP needs to provide sysUsecDelay and sysSerialPrintString */
149
 
extern void sysSerialPrintString (char *s);
150
 
#define MM_Wait(usec) udelay(usec)
151
 
 
152
 
/* Define memory barrier function here if needed */
153
 
#define wmb()
154
 
 
155
 
#if 0
156
 
#define cpu_to_le32(val) LONGSWAP(val)
157
 
#endif
158
 
#endif                          /* MM_H */