1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
/* $OpenBSD: wlreg.h,v 1.2 1997/02/22 12:09:19 deraadt Exp $ */
/*
* Copyright (c) 1995 Dale Rahn. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Dale Rahn.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
struct clreg {
volatile u_char anon1[0x7];
volatile u_char cl_cor7; /* 0x07 */
volatile u_char anon2[0x1];
volatile u_char cl_livr; /* 0x09 */
volatile u_char anon3[0x6];
volatile u_char cl_cor1; /* 0x10 */
volatile u_char cl_ier; /* 0x11 */
volatile u_char cl_stcr; /* 0x12 */
volatile u_char cl_ccr; /* 0x13 */
volatile u_char cl_cor5; /* 0x14 */
volatile u_char cl_cor4; /* 0x15 */
volatile u_char cl_cor3; /* 0x16 */
volatile u_char cl_cor2; /* 0x17 */
volatile u_char cl_cor6; /* 0x18 */
volatile u_char cl_dmabsts; /* 0x19 */
volatile u_char cl_csr; /* 0x1a */
volatile u_char cl_cmr; /* 0x1b */
volatile u_char cl_schr4; /* 0x1c */
volatile u_char cl_schr3; /* 0x1d */
volatile u_char cl_schr2; /* 0x1e */
volatile u_char cl_schr1; /* 0x1f */
volatile u_char anon5[0x2];
volatile u_char cl_scrh; /* 0x22 */
volatile u_char cl_scrl; /* 0x23 */
#define cl_rtpr rtpr.rtpr_rtpr
#define cl_rtprh rtpr.hl.rtpr_rtprh
#define cl_rtprl rtpr.hl.rtpr_rtprl
union {
volatile u_short rtpr_rtpr; /* 0x24 */
struct {
volatile u_char rtpr_rtprh; /* 0x24 */
volatile u_char rtpr_rtprl; /* 0x25 */
} hl;
} rtpr;
volatile u_char cl_licr; /* 0x26 */
volatile u_char anon6[0x7];
volatile u_char cl_lnxt; /* 0x2e */
volatile u_char anon7[0x1];
volatile u_char cl_rfoc; /* 0x30 */
volatile u_char anon8[0x7];
volatile u_short cl_tcbadru; /* 0x38 */
volatile u_short cl_tcbadrl; /* 0x3a */
volatile u_short cl_rcbadru; /* 0x3c */
volatile u_short cl_rcbadrl; /* 0x3e */
volatile u_short cl_arbadru; /* 0x40 */
volatile u_short cl_arbadrl; /* 0x42 */
volatile u_short cl_brbadru; /* 0x44 */
volatile u_short cl_brbadrl; /* 0x46 */
volatile u_short cl_brbcnt; /* 0x48 */
volatile u_short cl_arbcnt; /* 0x4a */
volatile u_char anoni[0x2];
volatile u_char cl_brbsts; /* 0x4e */
volatile u_char cl_arbsts; /* 0x4f */
#define cl_atbadr atbadr.atbadr
#define cl_atbadru atbadr.hl.atbadru
#define cl_atbadrl atbadr.hl.atbadrl
union {
struct {
volatile u_short atbadru; /* 0x50 */
volatile u_short atbadrl; /* 0x52 */
} hl;
volatile u_long atbadr; /* 0x50 */
} atbadr;
#define cl_btbadr btbadr.btbadr
#define cl_btbadru btbadr.hl.btbadru
#define cl_btbadrl btbadr.hl.btbadrl
union {
struct {
volatile u_short btbadru; /* 0x54 */
volatile u_short btbadrl; /* 0x56 */
} hl;
volatile u_long btbadr; /* 0x54 */
} btbadr;
volatile u_short cl_btbcnt; /* 0x58 */
volatile u_short cl_atbcnt; /* 0x5a */
volatile u_char anono[0x2];
volatile u_char cl_btbsts; /* 0x5e */
volatile u_char cl_atbsts; /* 0x5f */
volatile u_char anonp[0x20];
volatile u_char cl_tftc; /* 0x80 */
volatile u_char cl_gfrcr; /* 0x81 */
volatile u_char anonq[0x2];
volatile u_char cl_reoir; /* 0x84 */
volatile u_char cl_teoir; /* 0x85 */
volatile u_char cl_meoir; /* 0x86 */
volatile u_char anonr[0x1];
#define cl_risr risr.risr_risr
#define cl_risrl risr.hl.risr_risrl
#define cl_risrh risr.hl.risr_risrh
union {
volatile u_short risr_risr; /* 0x88 */
struct {
volatile u_char risr_risrh; /* 0x88 */
volatile u_char risr_risrl; /* 0x89 */
} hl;
} risr;
volatile u_char cl_tisr; /* 0x8a */
volatile u_char cl_misr; /* 0x8b */
volatile u_char anons[0x2];
volatile u_char cl_bercnt; /* 0x8e */
volatile u_char anont[0x31];
volatile u_char cl_tcor; /* 0xc0 */
volatile u_char anonu[0x2];
volatile u_char cl_tbpr; /* 0xc3 */
volatile u_char anonv[0x4];
volatile u_char cl_rcor; /* 0xc8 */
volatile u_char anonw[0x2];
volatile u_char cl_rbpr; /* 0xcb */
volatile u_char anonx[0xa];
volatile u_char cl_cpsr; /* 0xd6 */
volatile u_char anony[0x3];
volatile u_char cl_tpr; /* 0xda */
volatile u_char anonz[0x3];
volatile u_char cl_msvr_rts; /* 0xde */
volatile u_char cl_msvr_dtr; /* 0xdf */
volatile u_char cl_tpilr; /* 0xe0 */
volatile u_char cl_rpilr; /* 0xe1 */
volatile u_char cl_stk; /* 0xe2 */
volatile u_char cl_mpilr; /* 0xe3 */
volatile u_char anonA[0x8];
volatile u_char cl_tir; /* 0xec */
volatile u_char cl_rir; /* 0xed */
volatile u_char cl_car; /* 0xee */
volatile u_char cl_mir; /* 0xef */
volatile u_char anonB[0x6];
volatile u_char cl_dmr; /* 0xf6 */
volatile u_char anonC[0x1];
#define cl_rdr cl_tdr
volatile u_char cl_tdr; /* 0xf8 */
volatile u_char anonD[7];
};
#define TIR_TEN 0x80 /* irq enable */
#define TIR_TACT 0x40 /* irq active */
#define TIR_TEOI 0x20
#define TIR_TVCT_M 0x0c /* vector (mask) */
#define TIR_TCN_M 0x03 /* channel number (mask) */
#define TEOIR_TERMBUF 0x80
#define TEOIR_EOF 0x40
#define TEOIR_SETTM2 0x20
#define TEOIR_SETTM1 0x10
#define TEOIR_NOTRANSF 0x08
#define REOIR_TERMBUFF 0x80
#define REOIR_DISCEXC 0x40
#define REOIR_SETTM2 0x20
#define REOIR_SETTM1 0x10
#define REOIR_NOTRANSF 0x08
#define REOIR_GAP_M 0x07
#define RISRH_BERR 0x80
#define RISRH_EOF 0x40
#define RISRH_EOB 0x20
#define RISRH_BA_BB 0x08
#define RISRL_TIMEOUT 0x80
#define RISRL_SCDET_M 0x70
#define RISRL_OE 0x08
#define RISRL_PE 0x04
#define RISRL_FE 0x02
#define RISRL_BREAK 0x01
#define RIR_REN 0x80
#define RIR_RACT 0x40
#define RIR_REOI 0x20
#define RIR_RCVT_M 0x0c
#define RIR_RCN_M 0x03
#define IER_MDM 0x80
#define IER_RET 0x20
#define IER_RXD 0x08
#define IER_TIMER 0x04
#define IER_TXMPTY 0x02
#define IER_TXD 0x01
#define MIR_MER 0x80
#define MIR_MACT 0x40
#define MIR_MEO 0x20
#define MIR_MVCT_M 0x0c
#define MIR_MCM_M 0x03
#define MISR_DSRCHG 0x80
#define MISR_CDCHG 0x40
#define MISR_CTSCHG 0x20
#define MISR_TIMER2 0x02
#define MISR_TIMER1 0x01
#define TISR_BERR 0x80
#define TISR_EOF 0x40
#define TISR_EOB 0x20
#define TISR_UE 0x10
#define TISR_BABB 0x08
#define TISR_TXEMPTY 0x02
#define TISR_TXDAT 0x01
|