seeq8005reg.h revision 1.1 1 1.1 bjh21 /* $NetBSD: seeq8005reg.h,v 1.1 2000/09/18 20:51:15 bjh21 Exp $ */
2 1.1 bjh21
3 1.1 bjh21 /*
4 1.1 bjh21 * Copyright (c) 1995 Mark Brinicombe
5 1.1 bjh21 * All rights reserved.
6 1.1 bjh21 *
7 1.1 bjh21 * Redistribution and use in source and binary forms, with or without
8 1.1 bjh21 * modification, are permitted provided that the following conditions
9 1.1 bjh21 * are met:
10 1.1 bjh21 * 1. Redistributions of source code must retain the above copyright
11 1.1 bjh21 * notice, this list of conditions and the following disclaimer.
12 1.1 bjh21 * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 bjh21 * notice, this list of conditions and the following disclaimer in the
14 1.1 bjh21 * documentation and/or other materials provided with the distribution.
15 1.1 bjh21 * 3. All advertising materials mentioning features or use of this software
16 1.1 bjh21 * must display the following acknowledgement:
17 1.1 bjh21 * This product includes software developed by Mark Brinicombe.
18 1.1 bjh21 * 4. The name of the company nor the name of the author may be used to
19 1.1 bjh21 * endorse or promote products derived from this software without specific
20 1.1 bjh21 * prior written permission.
21 1.1 bjh21 *
22 1.1 bjh21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
23 1.1 bjh21 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 1.1 bjh21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 1.1 bjh21 * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
26 1.1 bjh21 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27 1.1 bjh21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 1.1 bjh21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 1.1 bjh21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 1.1 bjh21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 1.1 bjh21 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 1.1 bjh21 * SUCH DAMAGE.
33 1.1 bjh21 */
34 1.1 bjh21 /*
35 1.1 bjh21 * SEEQ 8005 registers
36 1.1 bjh21 *
37 1.1 bjh21 * Note that A0 is only used to distinguish halves of 16-bit registers in
38 1.1 bjh21 * 8-bit mode.
39 1.1 bjh21 */
40 1.1 bjh21
41 1.1 bjh21 #define EA_8005_COMMAND 0x0
42 1.1 bjh21 #define EA_8005_STATUS 0x0
43 1.1 bjh21 #define EA_8005_CONFIG1 0x2
44 1.1 bjh21 #define EA_8005_CONFIG2 0x4
45 1.1 bjh21 #define EA_8005_RX_END 0x6
46 1.1 bjh21 #define EA_8005_BUFWIN 0x8
47 1.1 bjh21 #define EA_8005_RX_PTR 0xa
48 1.1 bjh21 #define EA_8005_TX_PTR 0xc
49 1.1 bjh21 #define EA_8005_DMA_ADDR 0xe
50 1.1 bjh21
51 1.1 bjh21 #define EA_CMD_DMA_INTEN (1 << 0)
52 1.1 bjh21 #define EA_CMD_RX_INTEN (1 << 1)
53 1.1 bjh21 #define EA_CMD_TX_INTEN (1 << 2)
54 1.1 bjh21 #define EA_CMD_BW_INTEN (1 << 3)
55 1.1 bjh21 #define EA_CMD_DMA_INTACK (1 << 4)
56 1.1 bjh21 #define EA_CMD_RX_INTACK (1 << 5)
57 1.1 bjh21 #define EA_CMD_TX_INTACK (1 << 6)
58 1.1 bjh21 #define EA_CMD_BW_INTACK (1 << 7)
59 1.1 bjh21 #define EA_CMD_DMA_ON (1 << 8)
60 1.1 bjh21 #define EA_CMD_RX_ON (1 << 9)
61 1.1 bjh21 #define EA_CMD_TX_ON (1 << 10)
62 1.1 bjh21 #define EA_CMD_DMA_OFF (1 << 11)
63 1.1 bjh21 #define EA_CMD_RX_OFF (1 << 12)
64 1.1 bjh21 #define EA_CMD_TX_OFF (1 << 13)
65 1.1 bjh21 #define EA_CMD_FIFO_READ (1 << 14)
66 1.1 bjh21 #define EA_CMD_FIFO_WRITE (1 << 15)
67 1.1 bjh21
68 1.1 bjh21 #define EA_STATUS_DMA_INT (1 << 4)
69 1.1 bjh21 #define EA_STATUS_RX_INT (1 << 5)
70 1.1 bjh21 #define EA_STATUS_TX_INT (1 << 6)
71 1.1 bjh21 #define EA_STATUS_RX_ON (1 << 9)
72 1.1 bjh21 #define EA_STATUS_TX_ON (1 << 10)
73 1.1 bjh21 #define EA_STATUS_FIFO_FULL (1 << 13)
74 1.1 bjh21 #define EA_STATUS_FIFO_EMPTY (1 << 14)
75 1.1 bjh21 #define EA_STATUS_FIFO_DIR (1 << 15)
76 1.1 bjh21 #define EA_STATUS_FIFO_READ (1 << 15)
77 1.1 bjh21
78 1.1 bjh21 #define EA_CFG1_DMA_BURST_CONT 0x00
79 1.1 bjh21 #define EA_CFG1_DMA_BURST_800 0x10
80 1.1 bjh21 #define EA_CFG1_DMA_BURST_1600 0x20
81 1.1 bjh21 #define EA_CFG1_DMA_BURST_3200 0x30
82 1.1 bjh21 #define EA_CFG1_DMA_BSIZE_1 0x00
83 1.1 bjh21 #define EA_CFG1_DMA_BSIZE_4 0x40
84 1.1 bjh21 #define EA_CFG1_DMA_BSIZE_8 0x80
85 1.1 bjh21 #define EA_CFG1_DMA_BSIZE_16 0xc0
86 1.1 bjh21
87 1.1 bjh21 #define EA_CFG1_STATION_ADDR0 (1 << 8)
88 1.1 bjh21 #define EA_CFG1_STATION_ADDR1 (1 << 9)
89 1.1 bjh21 #define EA_CFG1_STATION_ADDR2 (1 << 10)
90 1.1 bjh21 #define EA_CFG1_STATION_ADDR3 (1 << 11)
91 1.1 bjh21 #define EA_CFG1_STATION_ADDR4 (1 << 12)
92 1.1 bjh21 #define EA_CFG1_STATION_ADDR5 (1 << 13)
93 1.1 bjh21 #define EA_CFG1_SPECIFIC ((0 << 15) | (0 << 14))
94 1.1 bjh21 #define EA_CFG1_BROADCAST ((0 << 15) | (1 << 14))
95 1.1 bjh21 #define EA_CFG1_MULTICAST ((1 << 15) | (0 << 14))
96 1.1 bjh21 #define EA_CFG1_PROMISCUOUS ((1 << 15) | (1 << 14))
97 1.1 bjh21
98 1.1 bjh21 #define EA_CFG2_BYTESWAP (1 << 0)
99 1.1 bjh21 #define EA_CFG2_CRC_ERR_ENABLE (1 << 3)
100 1.1 bjh21 #define EA_CFG2_DRIB_ERR_ENABLE (1 << 4)
101 1.1 bjh21 #define EA_CFG2_PASS_SHORT (1 << 5)
102 1.1 bjh21 #define EA_CFG2_SLOT_SELECT (1 << 6)
103 1.1 bjh21 #define EA_CFG2_PREAM_SELECT (1 << 7)
104 1.1 bjh21 #define EA_CFG2_ADDR_LENGTH (1 << 8)
105 1.1 bjh21 #define EA_CFG2_RX_CRC (1 << 9)
106 1.1 bjh21 #define EA_CFG2_NO_TX_CRC (1 << 10)
107 1.1 bjh21 #define EA_CFG2_LOOPBACK (1 << 11)
108 1.1 bjh21 #define EA_CFG2_OUTPUT (1 << 12)
109 1.1 bjh21 #define EA_CFG2_RESET (1 << 15)
110 1.1 bjh21
111 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR0 0x00
112 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR1 0x01
113 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR2 0x02
114 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR3 0x03
115 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR4 0x04
116 1.1 bjh21 #define EA_BUFCODE_STATION_ADDR5 0x05
117 1.1 bjh21 #define EA_BUFCODE_ADDRESS_PROM 0x06
118 1.1 bjh21 #define EA_BUFCODE_TX_EAP 0x07
119 1.1 bjh21 #define EA_BUFCODE_LOCAL_MEM 0x08
120 1.1 bjh21 #define EA_BUFCODE_INT_VECTOR 0x09
121 1.1 bjh21 /*#define EA_BUFCODE_MULTICAST 0x0f*/
122 1.1 bjh21
123 1.1 bjh21 #define EA_PKTHDR_TX (1 << 7)
124 1.1 bjh21 #define EA_PKTHDR_RX (0 << 7)
125 1.1 bjh21 #define EA_PKTHDR_CHAIN_CONT (1 << 6)
126 1.1 bjh21 #define EA_PKTHDR_DATA_FOLLOWS (1 << 5)
127 1.1 bjh21
128 1.1 bjh21 #define EA_PKTHDR_DONE (1 << 7)
129 1.1 bjh21
130 1.1 bjh21 #define EA_TXHDR_BABBLE (1 << 0)
131 1.1 bjh21 #define EA_TXHDR_COLLISION (1 << 1)
132 1.1 bjh21 #define EA_TXHDR_COLLISION16 (1 << 2)
133 1.1 bjh21
134 1.1 bjh21 #define EA_TXHDR_BABBLE_INT (1 << 0)
135 1.1 bjh21 #define EA_TXHDR_COLLISION_INT (1 << 1)
136 1.1 bjh21 #define EA_TXHDR_COLLISION16_INT (1 << 2)
137 1.1 bjh21 #define EA_TXHDR_XMIT_SUCCESS_INT (1 << 3)
138 1.1 bjh21 #define EA_TXHDR_ERROR_MASK (0x07)
139 1.1 bjh21
140 1.1 bjh21 #define EA_RXHDR_OVERSIZE (1 << 0)
141 1.1 bjh21 #define EA_RXHDR_CRC_ERROR (1 << 1)
142 1.1 bjh21 #define EA_RXHDR_DRIBBLE_ERROR (1 << 2)
143 1.1 bjh21 #define EA_RXHDR_SHORT_FRAME (1 << 3)
144 1.1 bjh21
145 1.1 bjh21 #define EA_BUFFER_SIZE 0x10000
146