1 /*
2 * Copyright (c) 2008 The DragonFly Project. All rights reserved.
3 *
4 * This code is derived from software contributed to The DragonFly Project
5 * by Sepherosa Ziehau <sepherosa@gmail.com>
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 * 3. Neither the name of The DragonFly Project nor the names of its
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific, prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $DragonFly: src/sys/dev/netif/iwl/iwl2100reg.h,v 1.1 2008/03/05 14:10:39 sephe Exp $
35 */
36
37 #ifndef _IWL2100REG_H
38 #define _IWL2100REG_H
39
40 #include "if_iwlreg.h"
41
42 #define IWL2100_NOISE_FLOOR -98
43
44 #define IWL2100_RTS_MAX 2304
45
46 /*
47 * PCI configuration registers
48 */
49 #define IWL2100_PCIR_RETRY_TIMEOUT 0x41
50
51 /*
52 * EEPROM offsets
53 */
54 #define IWL2100_EEPROM_MAC 0x21
55 #define IWL2100_EEPROM_IBSS_CHANS 0x25
56 #define IWL2100_EEPROM_CHANS 0x37
57
58 /*
59 * Registers and values
60 */
61 #define IWL2100_INTR_STATUS 0x08
62 #define IWL2100_INTR_MASK 0x0c
63 #define IWL2100_INTR_TX 0x00000001
64 #define IWL2100_INTR_RX 0x00000002
65 #define IWL2100_INTR_STATE_CHG 0x00000010
66 #define IWL2100_INTR_CMD_DONE 0x00010000
67 #define IWL2100_INTR_FW_INITED 0x01000000
68 #define IWL2100_INTR_EFATAL 0x40000000
69 #define IWL2100_INTR_EPARITY 0x80000000
70 #define IWL2100_INTRS \
71 (IWL2100_INTR_TX | \
72 IWL2100_INTR_RX | \
73 IWL2100_INTR_STATE_CHG | \
74 IWL2100_INTR_CMD_DONE | \
75 IWL2100_INTR_FW_INITED | \
76 IWL2100_INTR_EFATAL | \
77 IWL2100_INTR_EPARITY)
78
79 #define IWL2100_IND_ADDR IWL_IND_ADDR
80 #define IWL2100_IND_DATA IWL_IND_DATA
81
82 #define IWL2100_AUTOINC_ADDR 0x18
83 #define IWL2100_AUTOINC_DATA 0x1c
84
85 #define IWL2100_RESET 0x20
86 #define IWL2100_RESET_DONE 0x001
87 #define IWL2100_RESET_SW 0x080
88 #define IWL2100_RESET_MASTER_STOPPED 0x100
89 #define IWL2100_RESET_STOP_MASTER 0x200
90
91 #define IWL2100_CTRL 0x24
92 #define IWL2100_CTRL_INITDONE 0x04
93 #define IWL2100_CTRL_STANDBY 0x02
94 #define IWL2100_CTRL_CLKREADY 0x01
95
96 #define IWL2100_GPIO 0x30
97 #define IWL2100_GPIO_1_FWWR 0x00004
98 #define IWL2100_GPIO_1_EN 0x00008
99 #define IWL2100_GPIO_3_FWWR 0x00040
100 #define IWL2100_GPIO_3_EN 0x00080
101 #define IWL2100_GPIO_LEDOFF 0x02000
102 #define IWL2100_GPIO_RFKILLED 0x10000
103
104 #define IWL2100_TXQ_ADDR 0x200
105 #define IWL2100_TXQ_SIZE 0x204
106 #define IWL2100_TXQ_READ_IDX 0x280
107 #define IWL2100_TXQ_WRITE_IDX 0xf80
108
109 #define IWL2100_RXQ_ADDR 0x240
110 #define IWL2100_RX_STATUS_ADDR 0x244
111 #define IWL2100_RXQ_SIZE 0x248
112 #define IWL2100_RXQ_READ_IDX 0x2a0
113 #define IWL2100_RXQ_WRITE_IDX 0xfa0
114
115 #define IWL2100_ORD1_ADDR 0x380
116 #define IWL2100_ORD2_ADDR 0x384
117
118 /*
119 * Indirect registers and values
120 */
121 #define IWL2100_IND_CTRL 0x220000
122
123 #define IWL2100_IND_ERROR_INFO 0x2a7f0
124 #define IWL2100_IND_ERRORADDR_MASK 0x3ffff
125
126 #define IWL2100_IND_HALT 0x3000e0
127 #define IWL2100_IND_HALT_HOLD 0x80000000
128
129 /*
130 * Shared memory
131 */
132 #define IWL2100_SHMEM0 0x2f200
133 #define IWL2100_SHMEM0_SIZE 0x310
134
135 #define IWL2100_SHMEM1 0x2f610
136 #define IWL2100_SHMEM1_SIZE 0x20
137
138 #define IWL2100_SHMEM2 0x2fa00
139 #define IWL2100_SHMEM2_SIZE 0x20
140
141 #define IWL2100_SHMEM3 0x2fc00
142 #define IWL2100_SHMEM3_SIZE 0x10
143
144 #define IWL2100_SHMEM_INTR 0x2ff80
145 #define IWL2100_SHMEM_INTR_SIZE 0x80
146
147 /*
148 * Offsets within ORDINAL1
149 */
150 #define IWL2100_ORD1_FWLOCK 120
151 #define IWL2100_ORD1_CONF_START 157
152 #define IWL2100_ORD1_TXRATE 192
153 #define IWL2100_ORD1_DBADDR 204
154
155 /*
156 * Offsets within ORDINAL2
157 */
158 #define IWL2100_ORD2_BSSID 14
159
160 /*
161 * Firmware commands
162 */
163 #define IWL2100_CMD_CONF_DONE 2
164 #define IWL2100_CMD_SET_80211 6
165 #define IWL2100_CFG_MONITOR 0x00004
166 #define IWL2100_CFG_AUTO_PREAMBLE 0x00010
167 #define IWL2100_CFG_IBSS_AUTO_START 0x00020
168 #define IWL2100_CFG_ANS_BCAST_PROBE 0x00800
169 #define IWL2100_CFG_8021X 0x04000
170 #define IWL2100_CFG_STA 0x08000
171 #define IWL2100_CFG_IBSS 0x10000
172 #define IWL2100_CFG_CHANMASK 0x3fff
173 #define IWL2100_CMD_SET_ESSID 8
174 #define IWL2100_CMD_SET_BSSID 9
175 #define IWL2100_CMD_SET_ADDR 11
176 #define IWL2100_CMD_SET_OPMODE 12
177 #define IWL2100_OPMODE_STA 1
178 #define IWL2100_OPMODE_MONITOR 2
179 #define IWL2100_OPMODE_IBSS 3
180 #define IWL2100_CMD_SET_CHAN 14
181 #define IWL2100_CMD_SET_RTSTHRESHOLD 15
182 #define IWL2100_CMD_SET_POWERSAVE 17
183 #define IWL2100_CMD_SET_TXRATES 18
184 #define IWL2100_CMD_SET_BASICRATES 19
185 #define IWL2100_CMD_SET_WEPKEY 20
186 #define IWL2100_CMD_SET_WEPTXKEY 25
187 #define IWL2100_CMD_SET_PRIVACY 26
188 #define IWL2100_PRIVACY_ENABLE 0x8
189 #define IWL2100_CMD_SET_BINTVAL 29
190 #define IWL2100_CMD_TX_DATA 33
191 #define IWL2100_CMD_SET_TXPOWER 36
192 #define IWL2100_CMD_SCAN 43
193 #define IWL2100_CMD_CONF_START 44
194 #define IWL2100_CMD_SET_SCANOPT 46
195 #define IWL2100_SCANOPT_NOASSOC (1 << 0)
196 #define IWL2100_SCANOPT_MIXED (1 << 1)
197 #define IWL2100_SCANOPT_PASSIVE (1 << 3)
198 #define IWL2100_CMD_SET_MSDU_TXRATES 62
199 #define IWL2100_CMD_SET_SECURITY 67
200 #define IWL2100_CMD_SET_IE 69
201
202 #endif /* !_IWL2100REG_H */
Cache object: 201ed7270ea08bc672c69e4ec61a4af3
|