OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [before_ORP/] [uclinux/] [uClinux-2.0.x/] [drivers/] [net/] [sk_g16.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
/*-
2
 *
3
 * This software may be used and distributed according to the terms
4
 * of the GNU Public License, incorporated herein by reference.
5
 *
6
 * Module         : sk_g16.h
7
 * Version        : $Revision: 1.1.1.1 $
8
 *
9
 * Author         : M.Hipp (mhipp@student.uni-tuebingen.de)
10
 * changes by     : Patrick J.D. Weichmann
11
 *
12
 * Date Created   : 94/05/25
13
 *
14
 * Description    : In here are all necessary definitions of
15
 *                  the am7990 (LANCE) chip used for writing a
16
 *                  network device driver which uses this chip
17
 *
18
 * $Log: not supported by cvs2svn $
19
 * Revision 1.1.1.1  2001/07/02 17:58:22  simons
20
 * Initial revision
21
 *
22
-*/
23
 
24
#ifndef SK_G16_H
25
 
26
#define SK_G16_H
27
 
28
 
29
/*
30
 *      Control and Status Register 0 (CSR0) bit definitions
31
 *
32
 * (R=Readable) (W=Writeable) (S=Set on write) (C-Clear on write)
33
 *
34
 */
35
 
36
#define CSR0_ERR        0x8000  /* Error summary (R) */
37
#define CSR0_BABL       0x4000  /* Babble transmitter timeout error (RC) */
38
#define CSR0_CERR       0x2000  /* Collision Error (RC) */
39
#define CSR0_MISS       0x1000  /* Missed packet (RC) */
40
#define CSR0_MERR       0x0800  /* Memory Error  (RC) */ 
41
#define CSR0_RINT       0x0400  /* Receiver Interrupt (RC) */
42
#define CSR0_TINT       0x0200  /* Transmit Interrupt (RC) */ 
43
#define CSR0_IDON       0x0100  /* Initialization Done (RC) */
44
#define CSR0_INTR       0x0080  /* Interrupt Flag (R) */
45
#define CSR0_INEA       0x0040  /* Interrupt Enable (RW) */
46
#define CSR0_RXON       0x0020  /* Receiver on (R) */
47
#define CSR0_TXON       0x0010  /* Transmitter on (R) */
48
#define CSR0_TDMD       0x0008  /* Transmit Demand (RS) */
49
#define CSR0_STOP       0x0004  /* Stop (RS) */
50
#define CSR0_STRT       0x0002  /* Start (RS) */
51
#define CSR0_INIT       0x0001  /* Initialize (RS) */
52
 
53
#define CSR0_CLRALL     0x7f00  /* mask for all clearable bits */
54
 
55
/*
56
 *    Control and Status Register 3 (CSR3) bit definitions
57
 *
58
 */
59
 
60
#define CSR3_BSWAP      0x0004  /* Byte Swap (RW) */
61
#define CSR3_ACON       0x0002  /* ALE Control (RW) */
62
#define CSR3_BCON       0x0001  /* Byte Control (RW) */
63
 
64
/*
65
 *      Initialization Block Mode operation Bit Definitions.
66
 */
67
 
68
#define MODE_PROM       0x8000  /* Promiscuous Mode */
69
#define MODE_INTL       0x0040  /* Internal Loopback */
70
#define MODE_DRTY       0x0020  /* Disable Retry */ 
71
#define MODE_COLL       0x0010  /* Force Collision */
72
#define MODE_DTCR       0x0008  /* Disable Transmit CRC) */
73
#define MODE_LOOP       0x0004  /* Loopback */
74
#define MODE_DTX        0x0002  /* Disable the Transmitter */ 
75
#define MODE_DRX        0x0001  /* Disable the Receiver */
76
 
77
#define MODE_NORMAL     0x0000  /* Normal operation mode */
78
 
79
/*
80
 *      Receive message descriptor status bit definitions.
81
 */
82
 
83
#define RX_OWN          0x80    /* Owner bit 0 = host, 1 = lance */
84
#define RX_ERR          0x40    /* Error Summary */
85
#define RX_FRAM         0x20    /* Framing Error */
86
#define RX_OFLO         0x10    /* Overflow Error */
87
#define RX_CRC          0x08    /* CRC Error */ 
88
#define RX_BUFF         0x04    /* Buffer Error */
89
#define RX_STP          0x02    /* Start of Packet */
90
#define RX_ENP          0x01    /* End of Packet */
91
 
92
 
93
/*
94
 *      Transmit message descriptor status bit definitions.
95
 */
96
 
97
#define TX_OWN          0x80    /* Owner bit 0 = host, 1 = lance */
98
#define TX_ERR          0x40    /* Error Summary */
99
#define TX_MORE         0x10    /* More the 1 retry needed to Xmit */
100
#define TX_ONE          0x08    /* One retry needed to Xmit */
101
#define TX_DEF          0x04    /* Deferred */
102
#define TX_STP          0x02    /* Start of Packet */
103
#define TX_ENP          0x01    /* End of Packet */
104
 
105
/*
106
 *      Transmit status (2) (valid if TX_ERR == 1)
107
 */
108
 
109
#define TX_BUFF         0x8000  /* Buffering error (no ENP) */
110
#define TX_UFLO         0x4000  /* Underflow (late memory) */
111
#define TX_LCOL         0x1000  /* Late collision */
112
#define TX_LCAR         0x0400  /* Loss of Carrier */
113
#define TX_RTRY         0x0200  /* Failed after 16 retransmissions  */
114
#define TX_TDR          0x003f  /* Time-domain-reflectometer-value */
115
 
116
 
117
/*
118
 * Structures used for Communication with the LANCE
119
 */
120
 
121
/* LANCE Initialize Block */
122
 
123
struct init_block
124
{
125
  unsigned short mode;     /* Mode Register */
126
  unsigned char  paddr[6]; /* Physical Address (MAC) */
127
  unsigned char  laddr[8]; /* Logical Filter Address (not used) */
128
  unsigned int   rdrp;     /* Receive Descriptor Ring pointer */
129
  unsigned int   tdrp;     /* Transmit Descriptor Ring pointer */
130
};
131
 
132
 
133
/* Receive Message Descriptor Entry */
134
 
135
struct rmd
136
{
137
  union
138
  {
139
    unsigned long buffer;     /* Address of buffer */
140
    struct
141
    {
142
      unsigned char unused[3];
143
      unsigned volatile char status;   /* Status Bits */
144
    } s;
145
  } u;
146
  volatile short blen;        /* Buffer Length (two's complement) */
147
  unsigned short mlen;        /* Message Byte Count */
148
};
149
 
150
 
151
/* Transmit Message Descriptor Entry */
152
 
153
struct tmd
154
{
155
  union
156
  {
157
    unsigned long  buffer;    /* Address of buffer */
158
    struct
159
    {
160
      unsigned char unused[3];
161
      unsigned volatile char status;   /* Status Bits */
162
    } s;
163
  } u;
164
  unsigned short blen;             /* Buffer Length (two's complement) */
165
  unsigned volatile short status2; /* Error Status Bits */
166
};
167
 
168
#endif /* End of SK_G16_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.