Merge branch 'master' of http://xazz.no-ip.info/projects/acx-mac80211
[acx-mac80211.git] / acx_commands.h
blob3c7804063b928504a8e67910bf9b8fc0bed268bb
1 #ifndef _ACX_COMMANDS_H_
2 #define _ACX_COMMANDS_H_
4 /*
5 * acx_commands.h: querying/configuration commands. Differ depending on the
6 * chipset and bus type (PCI or USB - it appears that VLYNQ behaves like PCI
7 * most of the time - most).
9 * Copyright (c) 2003, 2008 ACX100 driver project.
11 * This file is licensed under the GPLv2. See the README file for more
12 * information.
14 * Part of the original comments can be seen between the dash lines below. I
15 * just cannot make sense of the first part right now.
17 * See also the file README.unknowncommands: it contains other commands gathered
18 * from snooping/anyothermeans of unhandled TI chipsets.
20 * ----------------------------------------------------------------------------
21 * NB: length includes JUST the data part of the IE
22 * (does not include size of the (type,len) pair)
24 * TODO: seems that acx100, acx100usb, acx111 have some differences,
25 * fix code with regard to this!
26 * ----------------------------------------------------------------------------
30 /* Information Elements: Network Parameters, Static Configuration Entities */
31 /* these are handled by real_cfgtable in firmware "Rev 1.5.0" (FW150) */
32 //DEF_IE(1xx_IE_UNKNOWN_00 ,0x0000, -1); /* mapped to cfgInvalid in FW150 */
33 #define ACX100_IE_ACX_TIMER (0x0001)
34 #define ACX100_IE_ACX_TIMER_LEN (0x10)
35 /* TNETW1450: length 0x18!! */
36 #define ACX1xx_IE_POWER_MGMT (0x0002)
37 #define ACX1xx_IE_POWER_MGMT_LEN (0x06)
38 #define ACX1xx_IE_QUEUE_CONFIG (0x0003)
39 #define ACX1xx_IE_QUEUE_CONFIG_LEN (0x1c)
40 #define ACX100_IE_BLOCK_SIZE (0x0004)
41 #define ACX100_IE_BLOCK_SIZE_LEN (0x02)
42 /* later firmware versions only? */
43 #define ACX1FF_IE_SLOT_TIME (0x0004)
44 #define ACX1FF_IE_SLOT_TIME_LEN (0x08)
45 #define ACX1xx_IE_MEMORY_CONFIG_OPTIONS (0x0005)
46 #define ACX1xx_IE_MEMORY_CONFIG_OPTIONS_LEN (0x14)
47 #define ACX1FF_IE_QUEUE_HEAD (0x0005)
48 #define ACX1FF_IE_QUEUE_HEAD_LEN (0x14 /* FIXME: length? */)
49 /* TNETW1450: length 2 */
50 #define ACX1xx_IE_RATE_FALLBACK (0x0006)
51 #define ACX1xx_IE_RATE_FALLBACK_LEN (0x01)
52 #define ACX100_IE_WEP_OPTIONS (0x0007)
53 #define ACX100_IE_WEP_OPTIONS_LEN (0x03)
54 #define ACX111_IE_RADIO_BAND (0x0007)
55 #define ACX111_IE_RADIO_BAND_LEN (-1)
56 /* later firmware versions; TNETW1450 only? */
57 #define ACX1FF_IE_TIMING_CFG (0x0007)
58 #define ACX1FF_IE_TIMING_CFG_LEN (-1)
59 /* huh? */
60 #define ACX100_IE_SSID (0x0008)
61 #define ACX100_IE_SSID_LEN (0x20)
62 /* huh? TNETW1450 has length 0x40!! */
63 #define ACX1xx_IE_MEMORY_MAP (0x0008)
64 #define ACX1xx_IE_MEMORY_MAP_LEN (0x28)
65 /* mapped to cfgInvalid in FW150 */
66 #define ACX1xx_IE_SCAN_STATUS (0x0009)
67 #define ACX1xx_IE_SCAN_STATUS_LEN (0x04)
68 #define ACX1xx_IE_ASSOC_ID (0x000a)
69 #define ACX1xx_IE_ASSOC_ID_LEN (0x02)
70 /* mapped to cfgInvalid in FW150 */
71 #define ACX1xx_IE_UNKNOWN_0B (0x000b)
72 #define ACX1xx_IE_UNKNOWN_0B_LEN (-1)
73 /* later firmware versions; TNETW1450 only? */
74 #define ACX1FF_IE_TX_POWER_LEVEL_TABLE (0x000b)
75 #define ACX1FF_IE_TX_POWER_LEVEL_TABLE_LEN (0x18)
76 /* very small implementation in FW150! */
77 #define ACX100_IE_UNKNOWN_0C (0x000c)
78 #define ACX100_IE_UNKNOWN_0C_LEN (-1)
80 * ACX100 has an equivalent struct in the cmd mailbox directly after reset.
81 * 0x14c seems extremely large, will trash stack on failure (memset!)
82 * in case of small input struct --> OOPS!
84 #define ACX111_IE_CONFIG_OPTIONS (0x000c)
85 #define ACX111_IE_CONFIG_OPTIONS_LEN (0x14c)
86 #define ACX1xx_IE_FWREV (0x000d)
87 #define ACX1xx_IE_FWREV_LEN (0x18)
88 #define ACX1xx_IE_FCS_ERROR_COUNT (0x000e)
89 #define ACX1xx_IE_FCS_ERROR_COUNT_LEN (0x04)
90 #define ACX1xx_IE_MEDIUM_USAGE (0x000f)
91 #define ACX1xx_IE_MEDIUM_USAGE_LEN (0x08)
92 #define ACX1xx_IE_RXCONFIG (0x0010)
93 #define ACX1xx_IE_RXCONFIG_LEN (0x04)
94 /* NONBINARY: large implementation in FW150! link quality readings or so? */
95 #define ACX100_IE_UNKNOWN_11 (0x0011)
96 #define ACX100_IE_UNKNOWN_11_LEN (-1)
97 #define ACX111_IE_QUEUE_THRESH (0x0011)
98 #define ACX111_IE_QUEUE_THRESH_LEN (-1)
99 /* NONBINARY: VERY large implementation in FW150!! */
100 #define ACX100_IE_UNKNOWN_12 (0x0012)
101 #define ACX100_IE_UNKNOWN_12_LEN (-1)
102 #define ACX111_IE_BSS_POWER_SAVE (0x0012)
103 #define ACX111_IE_BSS_POWER_SAVE_LEN (/* -1 */ 2)
104 /* TNETW1450: length 0x134!! */
105 #define ACX1xx_IE_FIRMWARE_STATISTICS (0x0013)
106 #define ACX1xx_IE_FIRMWARE_STATISTICS_LEN (0x9c)
107 /* later firmware versions, TNETW1450 only? */
108 #define ACX1FF_IE_RX_INTR_CONFIG (0x0014)
109 #define ACX1FF_IE_RX_INTR_CONFIG_LEN (0x14)
110 #define ACX1xx_IE_FEATURE_CONFIG (0x0015)
111 #define ACX1xx_IE_FEATURE_CONFIG_LEN (0x08)
112 /* for rekeying. really len=4?? */
113 #define ACX111_IE_KEY_CHOOSE (0x0016)
114 #define ACX111_IE_KEY_CHOOSE_LEN (0x04)
115 /* later firmware versions, TNETW1450 only? */
116 #define ACX1FF_IE_MISC_CONFIG_TABLE (0x0017)
117 #define ACX1FF_IE_MISC_CONFIG_TABLE_LEN (0x04)
118 /* later firmware versions, TNETW1450 only? */
119 #define ACX1FF_IE_WONE_CONFIG (0x0018)
120 #define ACX1FF_IE_WONE_CONFIG_LEN (-1)
121 /* later firmware versions, TNETW1450 only? */
122 #define ACX1FF_IE_TID_CONFIG (0x001a)
123 #define ACX1FF_IE_TID_CONFIG_LEN (0x2c)
124 /* later firmware versions, TNETW1450 only? */
125 #define ACX1FF_IE_CALIB_ASSESSMENT (0x001e)
126 #define ACX1FF_IE_CALIB_ASSESSMENT_LEN (0x04)
127 /* later firmware versions, TNETW1450 only? */
128 #define ACX1FF_IE_BEACON_FILTER_OPTIONS (0x001f)
129 #define ACX1FF_IE_BEACON_FILTER_OPTIONS_LEN (0x02)
130 /* later firmware versions, TNETW1450 only? */
131 #define ACX1FF_IE_LOW_RSSI_THRESH_OPT (0x0020)
132 #define ACX1FF_IE_LOW_RSSI_THRESH_OPT_LEN (0x04)
133 /* later firmware versions, TNETW1450 only? */
134 #define ACX1FF_IE_NOISE_HISTOGRAM_RESULTS (0x0021)
135 #define ACX1FF_IE_NOISE_HISTOGRAM_RESULTS_LEN (0x30)
136 /* later firmware versions, TNETW1450 only? */
137 #define ACX1FF_IE_PACKET_DETECT_THRESH (0x0023)
138 #define ACX1FF_IE_PACKET_DETECT_THRESH_LEN (0x04)
139 /* later firmware versions, TNETW1450 only? */
140 #define ACX1FF_IE_TX_CONFIG_OPTIONS (0x0024)
141 #define ACX1FF_IE_TX_CONFIG_OPTIONS_LEN (0x04)
142 /* later firmware versions, TNETW1450 only? */
143 #define ACX1FF_IE_CCA_THRESHOLD (0x0025)
144 #define ACX1FF_IE_CCA_THRESHOLD_LEN (0x02)
145 /* later firmware versions, TNETW1450 only? */
146 #define ACX1FF_IE_EVENT_MASK (0x0026)
147 #define ACX1FF_IE_EVENT_MASK_LEN (0x08)
148 /* later firmware versions, TNETW1450 only? */
149 #define ACX1FF_IE_DTIM_PERIOD (0x0027)
150 #define ACX1FF_IE_DTIM_PERIOD_LEN (0x02)
151 /* later firmware versions; maybe TNETW1450 only? */
152 #define ACX1FF_IE_ACI_CONFIG_SET (0x0029)
153 #define ACX1FF_IE_ACI_CONFIG_SET_LEN (0x06)
154 /* later firmware versions; maybe TNETW1450 only? */
155 #define ACX1FF_IE_EEPROM_VER (0x0030)
156 #define ACX1FF_IE_EEPROM_VER_LEN (0x04)
157 #define ACX1xx_IE_DOT11_STATION_ID (0x1001)
158 #define ACX1xx_IE_DOT11_STATION_ID_LEN (0x06)
159 /* mapped to cfgInvalid in FW150 */
160 #define ACX100_IE_DOT11_UNKNOWN_1002 (0x1002)
161 #define ACX100_IE_DOT11_UNKNOWN_1002_LEN (-1)
162 /* mapped to cfgInvalid in FW150; TNETW1450 has length 2!! */
163 #define ACX111_IE_DOT11_FRAG_THRESH (0x1002)
164 #define ACX111_IE_DOT11_FRAG_THRESH_LEN (-1)
165 /* mapped to cfgInvalid in FW150 */
166 #define ACX100_IE_DOT11_BEACON_PERIOD (0x1003)
167 #define ACX100_IE_DOT11_BEACON_PERIOD_LEN (0x02)
168 /* mapped to cfgInvalid in FW150 */
169 #define ACX1xx_IE_DOT11_DTIM_PERIOD (0x1004)
170 #define ACX1xx_IE_DOT11_DTIM_PERIOD_LEN (-1)
171 /* later firmware versions; maybe TNETW1450 only? */
172 #define ACX1FF_IE_DOT11_MAX_RX_LIFETIME (0x1004)
173 #define ACX1FF_IE_DOT11_MAX_RX_LIFETIME_LEN (-1)
174 /* TNETW1450: length 2 */
175 #define ACX1xx_IE_DOT11_SHORT_RETRY_LIMIT (0x1005)
176 #define ACX1xx_IE_DOT11_SHORT_RETRY_LIMIT_LEN (0x01)
177 /* TNETW1450: length 2 */
178 #define ACX1xx_IE_DOT11_LONG_RETRY_LIMIT (0x1006)
179 #define ACX1xx_IE_DOT11_LONG_RETRY_LIMIT_LEN (0x01)
180 /* configure default keys; TNETW1450 has length 0x24!! */
181 #define ACX100_IE_DOT11_WEP_DEFAULT_KEY_WRITE (0x1007)
182 #define ACX100_IE_DOT11_WEP_DEFAULT_KEY_WRITE_LEN (0x20)
183 #define ACX1xx_IE_DOT11_MAX_XMIT_MSDU_LIFETIME (0x1008)
184 #define ACX1xx_IE_DOT11_MAX_XMIT_MSDU_LIFETIME_LEN (0x04)
185 #define ACX1xx_IE_DOT11_GROUP_ADDR (0x1009)
186 #define ACX1xx_IE_DOT11_GROUP_ADDR_LEN (-1)
187 #define ACX1xx_IE_DOT11_CURRENT_REG_DOMAIN (0x100a)
188 #define ACX1xx_IE_DOT11_CURRENT_REG_DOMAIN_LEN (0x02)
189 /* It's harmless to have larger struct. Use USB case always. */
190 /* in fact len=1 for PCI */
191 #define ACX1xx_IE_DOT11_CURRENT_ANTENNA (0x100b)
192 #define ACX1xx_IE_DOT11_CURRENT_ANTENNA_LEN (0x02)
193 /* mapped to cfgInvalid in FW150 */
194 #define ACX1xx_IE_DOT11_UNKNOWN_100C (0x100c)
195 #define ACX1xx_IE_DOT11_UNKNOWN_100C_LEN (-1)
196 /* TNETW1450 has length 2!! */
197 #define ACX1xx_IE_DOT11_TX_POWER_LEVEL (0x100d)
198 #define ACX1xx_IE_DOT11_TX_POWER_LEVEL_LEN (0x01)
199 /* in fact len=1 for PCI */
200 #define ACX1xx_IE_DOT11_CURRENT_CCA_MODE (0x100e)
201 #define ACX1xx_IE_DOT11_CURRENT_CCA_MODE_LEN (0x02)
202 /* USB doesn't return anything - len==0?! */
203 #define ACX100_IE_DOT11_ED_THRESHOLD (0x100f)
204 #define ACX100_IE_DOT11_ED_THRESHOLD_LEN (0x04)
205 /* set default key ID; TNETW1450: length 2 */
206 #define ACX1xx_IE_DOT11_WEP_DEFAULT_KEY_SET (0x1010)
207 #define ACX1xx_IE_DOT11_WEP_DEFAULT_KEY_SET_LEN (0x01)
208 /* mapped to cfgInvalid in FW150 */
209 #define ACX100_IE_DOT11_UNKNOWN_1011 (0x1011)
210 #define ACX100_IE_DOT11_UNKNOWN_1011_LEN (-1)
211 /* later firmware versions; maybe TNETW1450 only? */
212 #define ACX1FF_IE_DOT11_CURR_5GHZ_REGDOM (0x1011)
213 #define ACX1FF_IE_DOT11_CURR_5GHZ_REGDOM_LEN (-1)
214 /* mapped to cfgInvalid in FW150 */
215 #define ACX100_IE_DOT11_UNKNOWN_1012 (0x1012)
216 #define ACX100_IE_DOT11_UNKNOWN_1012_LEN (-1)
217 /* mapped to cfgInvalid in FW150 */
218 #define ACX100_IE_DOT11_UNKNOWN_1013 (0x1013)
219 #define ACX100_IE_DOT11_UNKNOWN_1013_LEN (-1)
222 * COMMANDS
226 * Original comment:
228 * ----------------------------------------------------------------------------
229 * can be found in table cmdTable in firmware "Rev. 1.5.0" (FW150)
230 * ----------------------------------------------------------------------------
233 <<<<<<< HEAD:acx_mmio.h
234 #define ACX1xx_CMD_RESET 0x00
235 #define ACX1xx_CMD_INTERROGATE 0x01
236 #define ACX1xx_CMD_CONFIGURE 0x02
237 #define ACX1xx_CMD_ENABLE_RX 0x03
238 #define ACX1xx_CMD_ENABLE_TX 0x04
239 #define ACX1xx_CMD_DISABLE_RX 0x05
240 #define ACX1xx_CMD_DISABLE_TX 0x06
241 #define ACX1xx_CMD_FLUSH_QUEUE 0x07
242 #define ACX1xx_CMD_SCAN 0x08
243 #define ACX1xx_CMD_STOP_SCAN 0x09
244 #define ACX1xx_CMD_CONFIG_TIM 0x0a
245 #define ACX1xx_CMD_JOIN 0x0b
246 #define ACX1xx_CMD_WEP_MGMT 0x0c
247 =======
248 #define ACX1xx_CMD_RESET 0x0000
249 #define ACX1xx_CMD_QUERY 0x0001
250 #define ACX1xx_CMD_CONFIGURE 0x0002
251 #define ACX1xx_CMD_ENABLE_RX 0x0003
252 #define ACX1xx_CMD_ENABLE_TX 0x0004
253 #define ACX1xx_CMD_DISABLE_RX 0x0005
254 #define ACX1xx_CMD_DISABLE_TX 0x0006
255 #define ACX1xx_CMD_FLUSH_QUEUE 0x0007
256 #define ACX1xx_CMD_SCAN 0x0008
257 #define ACX1xx_CMD_STOP_SCAN 0x0009
258 #define ACX1xx_CMD_CONFIG_TIM 0x000a
259 #define ACX1xx_CMD_JOIN 0x000b
260 #define ACX1xx_CMD_WEP_MGMT 0x000c
261 >>>>>>> 5f5b59dcf7bc128b9f4ec10a9e958cf8bb9c9a5a:acx_commands.h
264 * FIXME: get rid of this? We don't have any old firmware lying around, do we?
266 #ifdef OLD_FIRMWARE_VERSIONS
267 /* mapped to unknownCMD in FW150 */
268 #define ACX100_CMD_HALT 0x0e
269 #else
270 #define ACX1xx_CMD_MEM_READ 0x000d
271 #define ACX1xx_CMD_MEM_WRITE 0x000e
272 #endif /* OLD_FIRMWARE_VERSIONS */
273 #define ACX1xx_CMD_SLEEP 0x000f
274 #define ACX1xx_CMD_WAKE 0x0010
275 /* mapped to unknownCMD in FW150 */
276 /* #define ACX1xx_CMD_UNKNOWN_11 0x0011 */ // not used by BSD driver too
277 #define ACX100_CMD_INIT_MEMORY 0x0012
278 #define ACX1FF_CMD_DISABLE_RADIO 0x0012 /* new firmware? TNETW1450? + NOT in BSD driver */
279 #define ACX1xx_CMD_CONFIG_BEACON 0x0013
280 #define ACX1xx_CMD_CONFIG_PROBE_RESPONSE 0x0014
281 #define ACX1xx_CMD_CONFIG_NULL_DATA 0x0015
282 #define ACX1xx_CMD_CONFIG_PROBE_REQUEST 0x0016
283 #define ACX1xx_CMD_FCC_TEST 0x0017 /* known as ACX_CMD_TEST in BSD driver */
284 #define ACX1xx_CMD_RADIOINIT 0x0018
285 #define ACX111_CMD_RADIOCALIB 0x0019
286 #define ACX1FF_CMD_NOISE_HISTOGRAM 0x001c /* new firmware? TNETW1450? */
287 #define ACX1FF_CMD_RX_RESET 0x001d /* new firmware? TNETW1450? */
288 #define ACX1FF_CMD_LNA_CONTROL 0x0020 /* new firmware? TNETW1450? */
289 #define ACX1FF_CMD_CONTROL_DBG_TRACE 0x0021 /* new firmware? TNETW1450? */
292 <<<<<<< HEAD:acx_mmio.h
293 #endif /* _ACX_MMIO_H_ */
294 =======
295 /* 'After Interrupt' Commands */
296 #define ACX_AFTER_IRQ_CMD_STOP_SCAN 0x01
297 #define ACX_AFTER_IRQ_CMD_ASSOCIATE 0x02
298 #define ACX_AFTER_IRQ_CMD_RADIO_RECALIB 0x04
299 #define ACX_AFTER_IRQ_UPDATE_CARD_CFG 0x08
300 #define ACX_AFTER_IRQ_TX_CLEANUP 0x10
301 #define ACX_AFTER_IRQ_COMPLETE_SCAN 0x20
302 #define ACX_AFTER_IRQ_RESTART_SCAN 0x40
305 * REGISTERS
307 * Note that some of them are read/write, and others are read-only.
309 * Original comment, whatever it means:
311 * ----------------------------------------------------------------------------
312 * these are handled by real_cfgtable in firmware "Rev 1.5.0" (FW150)
313 * ----------------------------------------------------------------------------
315 //DEF_IE(1xx_IE_UNKNOWN_00 ,0x0000, -1); /* mapped to cfgInvalid in FW150 */
316 #define ACX100_REG_ACX_TIMER (0x0001) /* ??? unknown in BSD driver ??? */
317 #define ACX100_REG_ACX_TIMER_LEN (0x10) /* ??? unknown in BSD driver ??? */
318 /* TNETW1450: length 0x18!! */
319 #define ACX1xx_REG_POWER_MGMT (0x0002)
320 #define ACX1xx_REG_POWER_MGMT_LEN (0x06)
321 #define ACX1xx_REG_QUEUE_CONFIG (0x0003) /* ??? known as ACX_CMD_IE_MEMORYCONFIG in BSD driver ??? */
322 #define ACX1xx_REG_QUEUE_CONFIG_LEN (0x1c)
323 #define ACX100_REG_BLOCK_SIZE (0x0004)
324 #define ACX100_REG_BLOCK_SIZE_LEN (0x02)
325 /* later firmware versions only? */
326 #define ACX1FF_REG_SLOT_TIME (0x0004)
327 #define ACX1FF_REG_SLOT_TIME_LEN (0x08)
328 #define ACX1xx_REG_MEMORY_CONFIG_OPTIONS (0x0005)
329 #define ACX1xx_REG_MEMORY_CONFIG_OPTIONS_LEN (0x14)
330 #define ACX1FF_REG_QUEUE_HEAD (0x0005) /* sure it's not ACX_CMD_IE_QUEUECONFIG ??? */
331 /* FIXME: length? */
332 #define ACX1FF_REG_QUEUE_HEAD_LEN (0x14)
333 /* TNETW1450: length 2 */
334 #define ACX1xx_REG_RATE_FALLBACK (0x0006)
335 #define ACX1xx_REG_RATE_FALLBACK_LEN (0x01)
336 #define ACX100_REG_WEP_OPTIONS (0x0007)
337 #define ACX100_REG_WEP_OPTIONS_LEN (0x03)
338 #define ACX111_REG_RADIO_BAND (0x0007)
339 #define ACX111_REG_RADIO_BAND_LEN (-1)
340 /* later firmware versions; TNETW1450 only? */
341 #define ACX1FF_REG_TIMING_CFG (0x0007)
342 #define ACX1FF_REG_TIMING_CFG_LEN (-1)
343 /* huh? */
344 #define ACX100_REG_SSID (0x0008)
345 #define ACX100_REG_SSID_LEN (0x20)
346 /* huh? TNETW1450 has length 0x40!! */
347 #define ACX1xx_REG_MEMORY_MAP (0x0008)
348 #define ACX1xx_REG_MEMORY_MAP_LEN (0x28)
349 /* mapped to cfgInvalid in FW150 */
350 #define ACX1xx_REG_SCAN_STATUS (0x0009)
351 #define ACX1xx_REG_SCAN_STATUS_LEN (0x04)
352 #define ACX1xx_REG_ASSOC_ID (0x000a)
353 #define ACX1xx_REG_ASSOC_ID_LEN (0x02)
354 /* mapped to cfgInvalid in FW150 */
355 #define ACX1xx_REG_UNKNOWN_0B (0x000b) /* unknown in BSD driver */
356 #define ACX1xx_REG_UNKNOWN_0B_LEN (-1)
357 /* later firmware versions; TNETW1450 only? */
358 #define ACX1FF_REG_TX_POWER_LEVEL_TABLE (0x000b) /* unknown in BSD driver */
359 #define ACX1FF_REG_TX_POWER_LEVEL_TABLE_LEN (0x18)
360 /* very small implementation in FW150! */
361 #define ACX100_REG_UNKNOWN_0C (0x000c) /* unknown in BSD driver */
362 #define ACX100_REG_UNKNOWN_0C_LEN (-1)
364 * ACX100 has an equivalent struct in the cmd mailbox directly after reset.
365 * 0x14c seems extremely large, will trash stack on failure (memset!)
366 * in case of small input struct --> OOPS!
368 #define ACX111_REG_CONFIG_OPTIONS (0x000c)
369 #define ACX111_REG_CONFIG_OPTIONS_LEN (0x14c)
370 #define ACX1xx_REG_FWREV (0x000d)
371 #define ACX1xx_REG_FWREV_LEN (0x18)
372 #define ACX1xx_REG_FCS_ERROR_COUNT (0x000e)
373 #define ACX1xx_REG_FCS_ERROR_COUNT_LEN (0x04)
374 #define ACX1xx_REG_MEDIUM_USAGE (0x000f)
375 #define ACX1xx_REG_MEDIUM_USAGE_LEN (0x08)
376 #define ACX1xx_REG_RXCONFIG (0x0010)
377 #define ACX1xx_REG_RXCONFIG_LEN (0x04)
378 /* NONBINARY: large implementation in FW150! link quality readings or so? */
379 #define ACX100_REG_UNKNOWN_11 (0x0011)
380 #define ACX100_REG_UNKNOWN_11_LEN (-1)
381 #define ACX111_REG_QUEUE_THRESH (0x0011)
382 #define ACX111_REG_QUEUE_THRESH_LEN (-1)
383 /* NONBINARY: VERY large implementation in FW150!! */
384 #define ACX100_REG_UNKNOWN_12 (0x0012)
385 #define ACX100_REG_UNKNOWN_12_LEN (-1)
386 #define ACX111_REG_BSS_POWER_SAVE (0x0012)
387 #define ACX111_REG_BSS_POWER_SAVE_LEN (/* -1 */ 2)
388 /* TNETW1450: length 0x134!! */
389 #define ACX1xx_REG_FIRMWARE_STATISTICS (0x0013)
390 #define ACX1xx_REG_FIRMWARE_STATISTICS_LEN (0x9c)
391 /* later firmware versions, TNETW1450 only? */
392 #define ACX1FF_REG_RX_INTR_CONFIG (0x0014)
393 #define ACX1FF_REG_RX_INTR_CONFIG_LEN (0x14)
394 #define ACX1xx_REG_FEATURE_CONFIG (0x0015)
395 #define ACX1xx_REG_FEATURE_CONFIG_LEN (0x08)
396 /* for rekeying. really len=4?? */
397 #define ACX111_REG_KEY_CHOOSE (0x0016)
398 #define ACX111_REG_KEY_CHOOSE_LEN (0x04)
399 /* later firmware versions, TNETW1450 only? */
400 #define ACX1FF_REG_MISC_CONFIG_TABLE (0x0017)
401 #define ACX1FF_REG_MISC_CONFIG_TABLE_LEN (0x04)
402 /* later firmware versions, TNETW1450 only? */
403 #define ACX1FF_REG_WONE_CONFIG (0x0018)
404 #define ACX1FF_REG_WONE_CONFIG_LEN (-1)
405 /* later firmware versions, TNETW1450 only? */
406 #define ACX1FF_REG_TID_CONFIG (0x001a)
407 #define ACX1FF_REG_TID_CONFIG_LEN (0x2c)
408 /* later firmware versions, TNETW1450 only? */
409 #define ACX1FF_REG_CALIB_ASSESSMENT (0x001e)
410 #define ACX1FF_REG_CALIB_ASSESSMENT_LEN (0x04)
411 /* later firmware versions, TNETW1450 only? */
412 #define ACX1FF_REG_BEACON_FILTER_OPTIONS (0x001f)
413 #define ACX1FF_REG_BEACON_FILTER_OPTIONS_LEN (0x02)
414 /* later firmware versions, TNETW1450 only? */
415 #define ACX1FF_REG_LOW_RSSI_THRESH_OPT (0x0020)
416 #define ACX1FF_REG_LOW_RSSI_THRESH_OPT_LEN (0x04)
417 /* later firmware versions, TNETW1450 only? */
418 #define ACX1FF_REG_NOISE_HISTOGRAM_RESULTS (0x0021)
419 #define ACX1FF_REG_NOISE_HISTOGRAM_RESULTS_LEN (0x30)
420 /* later firmware versions, TNETW1450 only? */
421 #define ACX1FF_REG_PACKET_DETECT_THRESH (0x0023)
422 #define ACX1FF_REG_PACKET_DETECT_THRESH_LEN (0x04)
423 /* later firmware versions, TNETW1450 only? */
424 #define ACX1FF_REG_TX_CONFIG_OPTIONS (0x0024)
425 #define ACX1FF_REG_TX_CONFIG_OPTIONS_LEN (0x04)
426 /* later firmware versions, TNETW1450 only? */
427 #define ACX1FF_REG_CCA_THRESHOLD (0x0025)
428 #define ACX1FF_REG_CCA_THRESHOLD_LEN (0x02)
429 /* later firmware versions, TNETW1450 only? */
430 #define ACX1FF_REG_EVENT_MASK (0x0026)
431 #define ACX1FF_REG_EVENT_MASK_LEN (0x08)
432 /* later firmware versions, TNETW1450 only? */
433 #define ACX1FF_REG_DTIM_PERIOD (0x0027)
434 #define ACX1FF_REG_DTIM_PERIOD_LEN (0x02)
435 /* later firmware versions; maybe TNETW1450 only? */
436 #define ACX1FF_REG_ACI_CONFIG_SET (0x0029)
437 #define ACX1FF_REG_ACI_CONFIG_SET_LEN (0x06)
438 /* later firmware versions; maybe TNETW1450 only? */
439 #define ACX1FF_REG_EEPROM_VER (0x0030)
440 #define ACX1FF_REG_EEPROM_VER_LEN (0x04)
441 #define ACX1xx_REG_DOT11_STATION_ID (0x1001)
442 #define ACX1xx_REG_DOT11_STATION_ID_LEN (0x06)
443 /* mapped to cfgInvalid in FW150 */
444 #define ACX100_REG_DOT11_UNKNOWN_1002 (0x1002)
445 #define ACX100_REG_DOT11_UNKNOWN_1002_LEN (-1)
446 /* mapped to cfgInvalid in FW150; TNETW1450 has length 2!! */
447 #define ACX111_REG_DOT11_FRAG_THRESH (0x1002)
448 #define ACX111_REG_DOT11_FRAG_THRESH_LEN (-1)
449 /* mapped to cfgInvalid in FW150 */
450 #define ACX100_REG_DOT11_BEACON_PERIOD (0x1003)
451 #define ACX100_REG_DOT11_BEACON_PERIOD_LEN (0x02)
452 /* mapped to cfgInvalid in FW150 */
453 #define ACX1xx_REG_DOT11_DTIM_PERIOD (0x1004)
454 #define ACX1xx_REG_DOT11_DTIM_PERIOD_LEN (-1)
455 /* later firmware versions; maybe TNETW1450 only? */
456 #define ACX1FF_REG_DOT11_MAX_RX_LIFETIME (0x1004)
457 #define ACX1FF_REG_DOT11_MAX_RX_LIFETIME_LEN (-1)
458 /* TNETW1450: length 2 */
459 #define ACX1xx_REG_DOT11_SHORT_RETRY_LIMIT (0x1005)
460 #define ACX1xx_REG_DOT11_SHORT_RETRY_LIMIT_LEN (0x01)
461 /* TNETW1450: length 2 */
462 #define ACX1xx_REG_DOT11_LONG_RETRY_LIMIT (0x1006)
463 #define ACX1xx_REG_DOT11_LONG_RETRY_LIMIT_LEN (0x01)
464 /* configure default keys; TNETW1450 has length 0x24!! */
465 #define ACX100_REG_DOT11_WEP_DEFAULT_KEY_WRITE (0x1007)
466 #define ACX100_REG_DOT11_WEP_DEFAULT_KEY_WRITE_LEN (0x20)
467 #define ACX1xx_REG_DOT11_MAX_XMIT_MSDU_LIFETIME (0x1008)
468 #define ACX1xx_REG_DOT11_MAX_XMIT_MSDU_LIFETIME_LEN (0x04)
469 #define ACX1xx_REG_DOT11_GROUP_ADDR (0x1009)
470 #define ACX1xx_REG_DOT11_GROUP_ADDR_LEN (-1)
471 #define ACX1xx_REG_DOT11_CURRENT_REG_DOMAIN (0x100a)
472 #define ACX1xx_REG_DOT11_CURRENT_REG_DOMAIN_LEN (0x02)
473 /* It's harmless to have larger struct. Use USB case always. */
474 /* in fact len=1 for PCI */
475 #define ACX1xx_REG_DOT11_CURRENT_ANTENNA (0x100b)
476 #define ACX1xx_REG_DOT11_CURRENT_ANTENNA_LEN (0x02)
477 /* mapped to cfgInvalid in FW150 */
478 #define ACX1xx_REG_DOT11_UNKNOWN_100C (0x100c)
479 #define ACX1xx_REG_DOT11_UNKNOWN_100C_LEN (-1)
480 /* TNETW1450 has length 2!! */
481 #define ACX1xx_REG_DOT11_TX_POWER_LEVEL (0x100d)
482 #define ACX1xx_REG_DOT11_TX_POWER_LEVEL_LEN (0x01)
483 /* in fact len=1 for PCI */
484 #define ACX1xx_REG_DOT11_CURRENT_CCA_MODE (0x100e)
485 #define ACX1xx_REG_DOT11_CURRENT_CCA_MODE_LEN (0x02)
486 /* USB doesn't return anything - len==0?! */
487 #define ACX100_REG_DOT11_ED_THRESHOLD (0x100f)
488 #define ACX100_REG_DOT11_ED_THRESHOLD_LEN (0x04)
489 /* set default key ID; TNETW1450: length 2 */
490 #define ACX1xx_REG_DOT11_WEP_DEFAULT_KEY_SET (0x1010)
491 #define ACX1xx_REG_DOT11_WEP_DEFAULT_KEY_SET_LEN (0x01)
492 /* mapped to cfgInvalid in FW150 */
493 #define ACX100_REG_DOT11_UNKNOWN_1011 (0x1011)
494 #define ACX100_REG_DOT11_UNKNOWN_1011_LEN (-1)
495 /* later firmware versions; maybe TNETW1450 only? */
496 #define ACX1FF_REG_DOT11_CURR_5GHZ_REGDOM (0x1011)
497 #define ACX1FF_REG_DOT11_CURR_5GHZ_REGDOM_LEN (-1)
498 /* mapped to cfgInvalid in FW150 */
499 #define ACX100_REG_DOT11_UNKNOWN_1012 (0x1012)
500 #define ACX100_REG_DOT11_UNKNOWN_1012_LEN (-1)
501 /* mapped to cfgInvalid in FW150 */
502 #define ACX100_REG_DOT11_UNKNOWN_1013 (0x1013)
503 #define ACX100_REG_DOT11_UNKNOWN_1013_LEN (-1)
506 #endif /* _ACX_COMMANDS_H_ */
507 >>>>>>> 5f5b59dcf7bc128b9f4ec10a9e958cf8bb9c9a5a:acx_commands.h