Commit | Line | Data |
---|---|---|
c5c77ba1 JK |
1 | /* ////////////////////////////////////////////////////////////////////////// */ |
2 | /* */ | |
3 | /* Copyright (c) Atmel Corporation. All rights reserved. */ | |
4 | /* */ | |
5 | /* Module Name: wilc_wlan_if.h */ | |
6 | /* */ | |
7 | /* */ | |
8 | /* ///////////////////////////////////////////////////////////////////////// */ | |
9 | ||
10 | ||
11 | #ifndef WILC_WLAN_IF_H | |
12 | #define WILC_WLAN_IF_H | |
13 | ||
14 | /*bug 3887: [AP] Allow Management frames to be passed to the host*/ | |
15 | #define WILC_AP_EXTERNAL_MLME | |
16 | #define WILC_P2P | |
17 | #define TCP_ENHANCEMENTS | |
18 | /* #define MEMORY_STATIC */ | |
19 | /* #define WILC_FULLY_HOSTING_AP */ | |
20 | /* #define USE_OLD_SPI_SW */ | |
21 | ||
22 | ||
23 | #include "wilc_type.h" | |
24 | #include "linux_wlan_common.h" | |
25 | ||
26 | ||
27 | /******************************************** | |
28 | * | |
29 | * Debug Flags | |
30 | * | |
31 | ********************************************/ | |
32 | ||
33 | #define N_INIT 0x00000001 | |
34 | #define N_ERR 0x00000002 | |
35 | #define N_TXQ 0x00000004 | |
36 | #define N_INTR 0x00000008 | |
37 | #define N_RXQ 0x00000010 | |
38 | ||
39 | /******************************************** | |
40 | * | |
41 | * Host Interface Defines | |
42 | * | |
43 | ********************************************/ | |
44 | ||
45 | #define HIF_SDIO (0) | |
46 | #define HIF_SPI (1 << 0) | |
47 | #define HIF_SDIO_GPIO_IRQ (1 << 2) | |
48 | ||
49 | ||
50 | /******************************************** | |
51 | * | |
52 | * Tx/Rx Buffer Size Defines | |
53 | * | |
54 | ********************************************/ | |
55 | ||
56 | #define CE_TX_BUFFER_SIZE (64 * 1024) | |
57 | #define CE_RX_BUFFER_SIZE (384 * 1024) | |
58 | ||
59 | /******************************************** | |
60 | * | |
61 | * Wlan Interface Defines | |
62 | * | |
63 | ********************************************/ | |
64 | ||
65 | typedef struct { | |
66 | uint32_t read_write: 1; | |
67 | uint32_t function: 3; | |
68 | uint32_t raw: 1; | |
69 | uint32_t address: 17; | |
70 | uint32_t data: 8; | |
71 | } sdio_cmd52_t; | |
72 | ||
73 | typedef struct { | |
74 | /* struct { */ | |
75 | uint32_t read_write: 1; | |
76 | uint32_t function: 3; | |
77 | uint32_t block_mode: 1; | |
78 | uint32_t increment: 1; | |
79 | uint32_t address: 17; | |
80 | uint32_t count: 9; | |
81 | /* } bit; */ | |
82 | uint8_t *buffer; | |
83 | uint32_t block_size; | |
84 | } sdio_cmd53_t; | |
85 | ||
86 | typedef struct { | |
87 | void (*os_sleep)(uint32_t); | |
88 | void (*os_atomic_sleep)(uint32_t); | |
89 | void (*os_debug)(uint8_t *); | |
90 | void *(*os_malloc)(uint32_t); | |
91 | void *(*os_malloc_atomic)(uint32_t); | |
92 | void (*os_free)(void *); | |
93 | void (*os_lock)(void *); | |
94 | void (*os_unlock)(void *); | |
4e4467fd | 95 | int (*os_wait)(void *, u32); |
c5c77ba1 JK |
96 | void (*os_signal)(void *); |
97 | void (*os_enter_cs)(void *); | |
98 | void (*os_leave_cs)(void *); | |
99 | ||
100 | /*Added by Amr - BugID_4720*/ | |
101 | void (*os_spin_lock)(void *, unsigned long *); | |
102 | void (*os_spin_unlock)(void *, unsigned long *); | |
103 | ||
104 | } wilc_wlan_os_func_t; | |
105 | ||
106 | typedef struct { | |
107 | int io_type; | |
108 | int (*io_init)(void *); | |
109 | void (*io_deinit)(void *); | |
110 | union { | |
111 | struct { | |
112 | int (*sdio_cmd52)(sdio_cmd52_t *); | |
113 | int (*sdio_cmd53)(sdio_cmd53_t *); | |
114 | int (*sdio_set_max_speed)(void); | |
115 | int (*sdio_set_default_speed)(void); | |
116 | } sdio; | |
117 | struct { | |
118 | int (*spi_max_speed)(void); | |
119 | int (*spi_tx)(uint8_t *, uint32_t); | |
120 | int (*spi_rx)(uint8_t *, uint32_t); | |
121 | int (*spi_trx)(uint8_t *, uint8_t *, uint32_t); | |
122 | } spi; | |
123 | } u; | |
124 | } wilc_wlan_io_func_t; | |
125 | ||
126 | typedef struct { | |
127 | void (*rx_indicate)(uint8_t *, uint32_t, uint32_t); | |
128 | void (*rx_complete)(void); | |
129 | } wilc_wlan_net_func_t; | |
130 | ||
131 | typedef struct { | |
132 | void (*mac_indicate)(int); | |
133 | } wilc_wlan_indicate_func_t; | |
134 | #define WILC_MAC_INDICATE_STATUS 0x1 | |
135 | #define WILC_MAC_STATUS_INIT -1 | |
136 | #define WILC_MAC_STATUS_READY 0 | |
137 | #define WILC_MAC_STATUS_CONNECT 1 | |
138 | ||
139 | #define WILC_MAC_INDICATE_SCAN 0x2 | |
140 | ||
141 | typedef struct { | |
142 | void *os_private; | |
143 | ||
144 | void *hif_critical_section; | |
145 | ||
146 | uint32_t tx_buffer_size; | |
147 | void *txq_critical_section; | |
148 | ||
149 | /*Added by Amr - BugID_4720*/ | |
150 | void *txq_add_to_head_critical_section; | |
151 | void *txq_spin_lock; | |
152 | ||
153 | void *txq_wait_event; | |
154 | ||
155 | #if defined(MEMORY_STATIC) | |
156 | uint32_t rx_buffer_size; | |
157 | #endif | |
158 | void *rxq_critical_section; | |
159 | void *rxq_wait_event; | |
160 | ||
161 | void *cfg_wait_event; | |
162 | } wilc_wlan_os_context_t; | |
163 | ||
164 | typedef struct { | |
165 | wilc_wlan_os_context_t os_context; | |
166 | wilc_wlan_os_func_t os_func; | |
167 | wilc_wlan_io_func_t io_func; | |
168 | wilc_wlan_net_func_t net_func; | |
169 | wilc_wlan_indicate_func_t indicate_func; | |
170 | } wilc_wlan_inp_t; | |
171 | ||
172 | #if 0 | |
173 | typedef struct { | |
174 | int start; | |
175 | uint32_t id; | |
176 | void *buffer; | |
177 | uint32_t buffer_size; | |
178 | int commit; | |
179 | } wilc_wlan_cfg_set_t; | |
180 | ||
181 | typedef struct { | |
182 | int start; | |
183 | uint32_t id; | |
184 | int commit; | |
185 | } wilc_wlan_cfg_get_t; | |
186 | ||
187 | typedef struct { | |
188 | uint32_t id; | |
189 | void *buffer; | |
190 | uint32_t buffer_size; | |
191 | } wilc_wlan_cfg_val_t; | |
192 | #endif | |
193 | ||
194 | struct tx_complete_data { | |
195 | #ifdef WILC_FULLY_HOSTING_AP | |
196 | struct tx_complete_data *next; | |
197 | #endif | |
198 | int size; | |
199 | void *buff; | |
200 | uint8_t *pBssid; | |
201 | struct sk_buff *skb; | |
202 | }; | |
203 | ||
204 | ||
205 | typedef void (*wilc_tx_complete_func_t)(void *, int); | |
206 | ||
207 | #define WILC_TX_ERR_NO_BUF (-2) | |
208 | ||
209 | typedef struct { | |
210 | int (*wlan_firmware_download)(const uint8_t *, uint32_t); | |
211 | int (*wlan_start)(void); | |
212 | int (*wlan_stop)(void); | |
213 | int (*wlan_add_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); | |
214 | int (*wlan_handle_tx_que)(uint32_t *); | |
215 | void (*wlan_handle_rx_que)(void); | |
216 | void (*wlan_handle_rx_isr)(void); | |
217 | void (*wlan_cleanup)(void); | |
218 | int (*wlan_cfg_set)(int, uint32_t, uint8_t *, uint32_t, int, uint32_t); | |
219 | int (*wlan_cfg_get)(int, uint32_t, int, uint32_t); | |
220 | int (*wlan_cfg_get_value)(uint32_t, uint8_t *, uint32_t); | |
221 | /*Bug3959: transmitting mgmt frames received from host*/ | |
222 | #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) | |
223 | int (*wlan_add_mgmt_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); | |
224 | ||
225 | #ifdef WILC_FULLY_HOSTING_AP | |
226 | int (*wlan_add_data_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); | |
227 | #endif | |
228 | ||
229 | #endif | |
230 | } wilc_wlan_oup_t; | |
231 | ||
232 | /******************************************** | |
233 | * | |
234 | * Wlan Configuration ID | |
235 | * | |
236 | ********************************************/ | |
237 | ||
238 | #define MAX_SSID_LEN 33 | |
239 | #define MAX_RATES_SUPPORTED 12 | |
240 | ||
4e4467fd | 241 | #define INFINITE_SLEEP_TIME ((u32)0xFFFFFFFF) |
c5c77ba1 JK |
242 | |
243 | #ifdef WILC_PARSE_SCAN_IN_HOST | |
244 | typedef enum { | |
245 | SUPP_RATES_IE = 1, | |
246 | EXT_SUPP_RATES_IE = 50, | |
247 | HT_CAPABILITY_IE = 45, | |
248 | RSN_IE = 48, | |
249 | WPA_IE = 221, | |
250 | WMM_IE = 221, | |
251 | #ifdef WILC_P2P | |
252 | P2P_IE = 221, | |
253 | #endif | |
254 | } BEACON_IE; | |
255 | #endif | |
256 | typedef enum { | |
257 | INFRASTRUCTURE = 0, | |
258 | INDEPENDENT, | |
259 | AP, | |
260 | } BSSTYPE_T; | |
261 | ||
262 | typedef enum { | |
263 | RATE_AUTO = 0, | |
264 | RATE_1MB = 1, | |
265 | RATE_2MB = 2, | |
266 | RATE_5MB = 5, | |
267 | RATE_6MB = 6, | |
268 | RATE_9MB = 9, | |
269 | RATE_11MB = 11, | |
270 | RATE_12MB = 12, | |
271 | RATE_18MB = 18, | |
272 | RATE_24MB = 24, | |
273 | RATE_26MB = 36, | |
274 | RATE_48MB = 48, | |
275 | RATE_54MB = 54 | |
276 | } TX_RATE_T; | |
277 | ||
278 | typedef enum { | |
279 | B_ONLY_MODE = 0, /* basic rate: 1, 2 Mbps, otherwise: 5, 11 Mbps */ | |
280 | G_ONLY_MODE, /* basic rate: 6, 12, 24 Mbps, otherwise: 9, 18, 36, 48, 54 Mbps */ | |
281 | G_MIXED_11B_1_MODE, /* basic rate: 1, 2, 5.5, 11 Mbps, otherwise: all on */ | |
282 | G_MIXED_11B_2_MODE, /* basic rate: 1, 2, 5, 11, 6, 12, 24 Mbps, otherwise: all on */ | |
283 | } G_OPERATING_MODE_T; | |
284 | ||
285 | typedef enum { | |
286 | G_SHORT_PREAMBLE = 0, /* Short Preamble */ | |
287 | G_LONG_PREAMBLE = 1, /* Long Preamble */ | |
288 | G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */ | |
289 | } G_PREAMBLE_T; | |
290 | ||
291 | #define MAC_CONNECTED 1 | |
292 | #define MAC_DISCONNECTED 0 | |
293 | ||
294 | /*bug3819: */ | |
295 | #define SCAN_DONE TRUE | |
296 | typedef enum { | |
297 | PASSIVE_SCAN = 0, | |
298 | ACTIVE_SCAN = 1, | |
299 | } SCANTYPE_T; | |
300 | ||
301 | typedef enum { | |
302 | NO_POWERSAVE = 0, | |
303 | MIN_FAST_PS = 1, | |
304 | MAX_FAST_PS = 2, | |
305 | MIN_PSPOLL_PS = 3, | |
306 | MAX_PSPOLL_PS = 4 | |
307 | } USER_PS_MODE_T; | |
308 | ||
309 | typedef enum { | |
310 | CHIP_WAKEDUP = 0, | |
311 | CHIP_SLEEPING_AUTO = 1, | |
312 | CHIP_SLEEPING_MANUAL = 2 | |
313 | } CHIP_PS_STATE_T; | |
314 | ||
315 | typedef enum { | |
316 | ACQUIRE_ONLY = 0, | |
317 | ACQUIRE_AND_WAKEUP = 1, | |
318 | } BUS_ACQUIRE_T; | |
319 | ||
320 | typedef enum { | |
321 | RELEASE_ONLY = 0, | |
322 | RELEASE_ALLOW_SLEEP = 1, | |
323 | } BUS_RELEASE_T; | |
324 | ||
325 | typedef enum { | |
326 | NO_SECURITY = 0, | |
327 | WEP_40 = 0x3, | |
328 | WEP_104 = 0x7, | |
329 | WPA_AES = 0x29, | |
330 | WPA_TKIP = 0x49, | |
331 | WPA_AES_TKIP = 0x69, /* Aes or Tkip */ | |
332 | WPA2_AES = 0x31, | |
333 | WPA2_TKIP = 0x51, | |
334 | WPA2_AES_TKIP = 0x71, /* Aes or Tkip */ | |
335 | } SECURITY_T; | |
336 | ||
337 | typedef enum { | |
338 | OPEN_SYSTEM = 1, | |
339 | SHARED_KEY = 2, | |
340 | ANY = 3, | |
341 | IEEE8021 = 5 | |
342 | } AUTHTYPE_T; | |
343 | ||
344 | typedef enum { | |
345 | SITE_SURVEY_1CH = 0, | |
346 | SITE_SURVEY_ALL_CH = 1, | |
347 | SITE_SURVEY_OFF = 2 | |
348 | } SITE_SURVEY_T; | |
349 | ||
350 | typedef enum { | |
351 | NORMAL_ACK = 0, | |
352 | NO_ACK, | |
353 | } ACK_POLICY_T; | |
354 | ||
355 | typedef enum { | |
356 | DONT_RESET = 0, | |
357 | DO_RESET = 1, | |
358 | NO_REQUEST = 2, | |
359 | } RESET_REQ_T; | |
360 | ||
361 | typedef enum { | |
362 | REKEY_DISABLE = 1, | |
363 | REKEY_TIME_BASE, | |
364 | REKEY_PKT_BASE, | |
365 | REKEY_TIME_PKT_BASE | |
366 | } RSNA_REKEY_POLICY_T; | |
367 | ||
368 | typedef enum { | |
369 | FILTER_NO = 0x00, | |
370 | FILTER_AP_ONLY = 0x01, | |
371 | FILTER_STA_ONLY = 0x02 | |
372 | } SCAN_CLASS_FITLER_T; | |
373 | ||
374 | typedef enum { | |
375 | PRI_HIGH_RSSI = 0x00, | |
376 | PRI_LOW_RSSI = 0x04, | |
377 | PRI_DETECT = 0x08 | |
378 | } SCAN_PRI_T; | |
379 | ||
380 | typedef enum { | |
381 | CH_FILTER_OFF = 0x00, | |
382 | CH_FILTER_ON = 0x10 | |
383 | } CH_FILTER_T; | |
384 | ||
385 | typedef enum { | |
386 | AUTO_PROT = 0, /* Auto */ | |
387 | NO_PROT, /* Do not use any protection */ | |
388 | ERP_PROT, /* Protect all ERP frame exchanges */ | |
389 | HT_PROT, /* Protect all HT frame exchanges */ | |
390 | GF_PROT, /* Protect all GF frame exchanges */ | |
391 | } N_PROTECTION_MODE_T; | |
392 | ||
393 | typedef enum { | |
394 | G_SELF_CTS_PROT, | |
395 | G_RTS_CTS_PROT, | |
396 | } G_PROTECTION_MODE_T; | |
397 | ||
398 | typedef enum { | |
399 | HT_MIXED_MODE = 1, | |
400 | HT_ONLY_20MHZ_MODE, | |
401 | HT_ONLY_20_40MHZ_MODE, | |
402 | } N_OPERATING_MODE_T; | |
403 | ||
404 | typedef enum { | |
405 | NO_DETECT = 0, | |
406 | DETECT_ONLY = 1, | |
407 | DETECT_PROTECT = 2, | |
408 | DETECT_PROTECT_REPORT = 3, | |
409 | } N_OBSS_DETECTION_T; | |
410 | ||
411 | typedef enum { | |
412 | RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */ | |
413 | FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */ | |
414 | LSIG_TXOP_PROT, /* LSIG TXOP Protection */ | |
415 | FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */ | |
416 | } N_PROTECTION_TYPE_T; | |
417 | ||
418 | typedef enum { | |
419 | STATIC_MODE = 1, | |
420 | DYNAMIC_MODE = 2, | |
421 | MIMO_MODE = 3, /* power save disable */ | |
422 | } N_SMPS_MODE_T; | |
423 | ||
424 | typedef enum { | |
425 | DISABLE_SELF_CTS, | |
426 | ENABLE_SELF_CTS, | |
427 | DISABLE_TX_ABORT, | |
428 | ENABLE_TX_ABORT, | |
429 | HW_TRIGGER_ABORT, | |
430 | SW_TRIGGER_ABORT, | |
431 | } TX_ABORT_OPTION_T; | |
432 | ||
433 | typedef enum { | |
434 | WID_CHAR = 0, | |
435 | WID_SHORT = 1, | |
436 | WID_INT = 2, | |
437 | WID_STR = 3, | |
438 | WID_BIN_DATA = 4, | |
439 | WID_BIN = 5, | |
440 | WID_IP = 6, | |
441 | WID_ADR = 7, | |
442 | WID_UNDEF = 8, | |
443 | WID_TYPE_FORCE_32BIT = 0xFFFFFFFF | |
444 | ||
445 | } WID_TYPE_T, tenuWIDtype; | |
446 | ||
447 | typedef enum { | |
448 | WID_NIL = 0xffff, | |
449 | ||
450 | ||
451 | /* BSS Type */ | |
452 | /* -------------------------------------------------------------- */ | |
453 | /* Configuration : Infrastructure Independent Access Point */ | |
454 | /* Values to set : 0 1 2 */ | |
455 | /* -------------------------------------------------------------- */ | |
456 | WID_BSS_TYPE = 0x0000, | |
457 | ||
458 | /* Transmit Rate */ | |
459 | /* -------------------------------------------------------------- */ | |
460 | /* Configuration : 1 2 5.5 11 6 9 12 18 24 36 48 54 */ | |
461 | /* Values to set : 1 2 5 11 6 9 12 18 24 36 48 54 */ | |
462 | /* -------------------------------------------------------------- */ | |
463 | WID_CURRENT_TX_RATE = 0x0001, | |
464 | ||
465 | /* Channel */ | |
466 | /* ------------------------------------------------------------------- */ | |
467 | /* Configuration(g) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ | |
468 | /* Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ | |
469 | /* -------------------------------------------------------------------- */ | |
470 | WID_CURRENT_CHANNEL = 0x0002, | |
471 | ||
472 | /* Preamble */ | |
473 | /* -------------------------------------------------------------- */ | |
474 | /* Configuration : short long Auto */ | |
475 | /* Values to set : 0 1 2 */ | |
476 | /* -------------------------------------------------------------- */ | |
477 | WID_PREAMBLE = 0x0003, | |
478 | ||
479 | /* 11g operating mode (ignored if 11g not present) */ | |
480 | /* -------------------------------------------------------------- */ | |
481 | /* Configuration : HighPerf Compat(RSet #1) Compat(RSet #2) */ | |
482 | /* Values to set : 1 2 3 */ | |
483 | /* -------------------------------------------------------------- */ | |
484 | WID_11G_OPERATING_MODE = 0x0004, | |
485 | ||
486 | /* Mac status (response only) */ | |
487 | /* -------------------------------------------------------------- */ | |
488 | /* Configuration : disconnect connect */ | |
489 | /* Values to get : 0 1 */ | |
490 | /* -------------------------------------------------------------- */ | |
491 | WID_STATUS = 0x0005, | |
492 | ||
493 | /* Scan type */ | |
494 | /* -------------------------------------------------------------- */ | |
495 | /* Configuration : Passive Scanning Active Scanning */ | |
496 | /* Values to set : 0 1 */ | |
497 | /* -------------------------------------------------------------- */ | |
498 | WID_SCAN_TYPE = 0x0007, | |
499 | ||
500 | /* Key Id (WEP default key Id) */ | |
501 | /* -------------------------------------------------------------- */ | |
502 | /* Configuration : Any value between 0 to 3 */ | |
503 | /* Values to set : Same value. Default is 0 */ | |
504 | /* -------------------------------------------------------------- */ | |
505 | WID_KEY_ID = 0x0009, | |
506 | ||
507 | /* QoS Enable */ | |
508 | /* -------------------------------------------------------------- */ | |
509 | /* Configuration : QoS Disable WMM Enable */ | |
510 | /* Values to set : 0 1 */ | |
511 | /* -------------------------------------------------------------- */ | |
512 | WID_QOS_ENABLE = 0x000A, | |
513 | ||
514 | /* Power Management */ | |
515 | /* ------------------------------------------------------------------ */ | |
516 | /* Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE */ | |
517 | /* Values to set : 0 1 2 */ | |
518 | /* ------------------------------------------------------------------ */ | |
519 | WID_POWER_MANAGEMENT = 0x000B, | |
520 | ||
521 | /* WEP/802 11I Configuration */ | |
522 | /* ------------------------------------------------------------------ */ | |
523 | /* Configuration : Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP */ | |
524 | /* Values (0x) : 00 03 07 29 49 31 51 */ | |
525 | /* */ | |
526 | /* Configuration : WPA-AES+TKIP RSN-AES+TKIP */ | |
527 | /* Values (0x) : 69 71 */ | |
528 | /* ------------------------------------------------------------------ */ | |
529 | WID_11I_MODE = 0x000C, | |
530 | ||
531 | /* WEP Configuration: Used in BSS STA mode only when WEP is enabled */ | |
532 | /* ------------------------------------------------------------------ */ | |
533 | /* Configuration : Open System Shared Key Any Type | 802.1x Auth */ | |
534 | /* Values (0x) : 01 02 03 | BIT2 */ | |
535 | /* ------------------------------------------------------------------ */ | |
536 | WID_AUTH_TYPE = 0x000D, | |
537 | ||
538 | /* Site Survey Type */ | |
539 | /* -------------------------------------------------------------- */ | |
540 | /* Configuration : Values to set */ | |
541 | /* Survey 1 Channel : 0 */ | |
542 | /* survey all Channels : 1 */ | |
543 | /* Disable Site Survey : 2 */ | |
544 | /* -------------------------------------------------------------- */ | |
545 | WID_SITE_SURVEY = 0x000E, | |
546 | ||
547 | /* Listen Interval */ | |
548 | /* -------------------------------------------------------------- */ | |
549 | /* Configuration : Any value between 1 to 255 */ | |
550 | /* Values to set : Same value. Default is 3 */ | |
551 | /* -------------------------------------------------------------- */ | |
552 | WID_LISTEN_INTERVAL = 0x000F, | |
553 | ||
554 | /* DTIM Period */ | |
555 | /* -------------------------------------------------------------- */ | |
556 | /* Configuration : Any value between 1 to 255 */ | |
557 | /* Values to set : Same value. Default is 3 */ | |
558 | /* -------------------------------------------------------------- */ | |
559 | WID_DTIM_PERIOD = 0x0010, | |
560 | ||
561 | /* ACK Policy */ | |
562 | /* -------------------------------------------------------------- */ | |
563 | /* Configuration : Normal Ack No Ack */ | |
564 | /* Values to set : 0 1 */ | |
565 | /* -------------------------------------------------------------- */ | |
566 | WID_ACK_POLICY = 0x0011, | |
567 | ||
568 | /* Reset MAC (Set only) */ | |
569 | /* -------------------------------------------------------------- */ | |
570 | /* Configuration : Don't Reset Reset No Request */ | |
571 | /* Values to set : 0 1 2 */ | |
572 | /* -------------------------------------------------------------- */ | |
573 | WID_RESET = 0x0012, | |
574 | ||
575 | /* Broadcast SSID Option: Setting this will adhere to "" SSID element */ | |
576 | /* ------------------------------------------------------------------ */ | |
577 | /* Configuration : Enable Disable */ | |
578 | /* Values to set : 1 0 */ | |
579 | /* ------------------------------------------------------------------ */ | |
580 | WID_BCAST_SSID = 0x0015, | |
581 | ||
582 | /* Disconnect (Station) */ | |
583 | /* ------------------------------------------------------------------ */ | |
584 | /* Configuration : Association ID */ | |
585 | /* Values to set : Association ID */ | |
586 | /* ------------------------------------------------------------------ */ | |
587 | WID_DISCONNECT = 0x0016, | |
588 | ||
589 | /* 11a Tx Power Level */ | |
590 | /* -------------------------------------------------------------------- */ | |
591 | /* Configuration : Sets TX Power (Higher the value greater the power) */ | |
592 | /* Values to set : Any value between 0 and 63 (inclusive; Default is 48)*/ | |
593 | /* -------------------------------------------------------------------- */ | |
594 | WID_TX_POWER_LEVEL_11A = 0x0018, | |
595 | ||
596 | /* Group Key Update Policy Selection */ | |
597 | /* -------------------------------------------------------------------- */ | |
598 | /* Configuration : Disabled timeBased packetBased timePacketBased */ | |
599 | /* Values to set : 1 2 3 4 */ | |
600 | /* -------------------------------------------------------------------- */ | |
601 | WID_REKEY_POLICY = 0x0019, | |
602 | ||
603 | /* Allow Short Slot */ | |
604 | /* -------------------------------------------------------------- */ | |
605 | /* Configuration : Disallow Short Slot Allow Short Slot */ | |
606 | /* (Enable Only Long Slot) (Enable Short Slot if applicable)*/ | |
607 | /* Values to set : 0 1 */ | |
608 | /* -------------------------------------------------------------- */ | |
609 | WID_SHORT_SLOT_ALLOWED = 0x001A, | |
610 | ||
611 | WID_PHY_ACTIVE_REG = 0x001B, | |
612 | ||
613 | /* 11b Tx Power Level */ | |
614 | /* -------------------------------------------------------------------- */ | |
615 | /* Configuration : Sets TX Power (Higher the value greater the power) */ | |
616 | /* Values to set : Any value between 0 and 63 (inclusive; Default is 48)*/ | |
617 | /* -------------------------------------------------------------------- */ | |
618 | WID_TX_POWER_LEVEL_11B = 0x001D, | |
619 | ||
620 | /* Scan Request */ | |
621 | /* -------------------------------------------------------------------- */ | |
622 | /* Configuration : Request default scan */ | |
623 | /* Values to set : 0 */ | |
624 | /* -------------------------------------------------------------------- */ | |
625 | WID_START_SCAN_REQ = 0x001E, | |
626 | ||
627 | /* Rssi (get only) */ | |
628 | /* -------------------------------------------------------------------- */ | |
629 | /* Configuration : */ | |
630 | /* Values to get : Rssi value */ | |
631 | /* -------------------------------------------------------------------- */ | |
632 | WID_RSSI = 0x001F, | |
633 | ||
634 | /* Join Request */ | |
635 | /* -------------------------------------------------------------------- */ | |
636 | /* Configuration : Request to join */ | |
637 | /* Values to set : index of scan result */ | |
638 | /* -------------------------------------------------------------------- */ | |
639 | WID_JOIN_REQ = 0x0020, | |
640 | ||
641 | WID_LINKSPEED = 0x0026, | |
642 | ||
643 | /* Enable User Control of TX Power */ | |
644 | /* -------------------------------------------------------------------- */ | |
645 | /* Configuration : Disable Enable */ | |
646 | /* Values to set : 0 1 */ | |
647 | /* -------------------------------------------------------------------- */ | |
648 | WID_USER_CONTROL_ON_TX_POWER = 0x0027, | |
649 | ||
650 | WID_MEMORY_ACCESS_8BIT = 0x0029, | |
651 | ||
652 | /* Enable Auto RX Sensitivity feature */ | |
653 | /* -------------------------------------------------------------------- */ | |
654 | /* Configuration : Disable Enable */ | |
655 | /* Values to set : 0 1 */ | |
656 | /* -------------------------------------------------------------------- */ | |
657 | WID_AUTO_RX_SENSITIVITY = 0x0032, | |
658 | ||
659 | /* Receive Buffer Based Ack */ | |
660 | /* -------------------------------------------------------------------- */ | |
661 | /* Configuration : Disable Enable */ | |
662 | /* Values to set : 0 1 */ | |
663 | /* -------------------------------------------------------------------- */ | |
664 | WID_DATAFLOW_CONTROL = 0x0033, | |
665 | ||
666 | /* Scan Filter */ | |
667 | /* -------------------------------------------------------------------- */ | |
668 | /* Configuration : Class No filter AP only Station Only */ | |
669 | /* Values to set : 0 1 2 */ | |
670 | /* Configuration : Priority High Rssi Low Rssi Detect */ | |
671 | /* Values to set : 0 0x4 0x08 */ | |
672 | /* Configuration : Channel filter off filter on */ | |
673 | /* Values to set : 0 0x10 */ | |
674 | /* -------------------------------------------------------------------- */ | |
675 | WID_SCAN_FILTER = 0x0036, | |
676 | ||
677 | /* Link Loss Threshold (measure in the beacon period) */ | |
678 | /* -------------------------------------------------------------------- */ | |
679 | /* Configuration : Any value between 10 and 254 (Set to 255 to disable it) */ | |
680 | /* Values to set : Same value. Default is 10 */ | |
681 | /* -------------------------------------------------------------------- */ | |
682 | WID_LINK_LOSS_THRESHOLD = 0x0037, | |
683 | ||
684 | /*BugID_4978*/ | |
685 | WID_ABORT_RUNNING_SCAN = 0x003E, | |
686 | ||
687 | /* NMAC Character WID list */ | |
688 | WID_WPS_START = 0x0043, | |
689 | ||
690 | /* Protection mode for MAC */ | |
691 | /* -------------------------------------------------------------- */ | |
692 | /* Configuration : Auto No protection ERP HT GF */ | |
693 | /* Values to set : 0 1 2 3 4 */ | |
694 | /* -------------------------------------------------------------- */ | |
695 | WID_11N_PROT_MECH = 0x0080, | |
696 | ||
697 | /* ERP Protection type for MAC */ | |
698 | /* -------------------------------------------------------------- */ | |
699 | /* Configuration : Self-CTS RTS-CTS */ | |
700 | /* Values to set : 0 1 */ | |
701 | /* -------------------------------------------------------------- */ | |
702 | WID_11N_ERP_PROT_TYPE = 0x0081, | |
703 | ||
704 | /* HT Option Enable */ | |
705 | /* -------------------------------------------------------------- */ | |
706 | /* Configuration : HT Enable HT Disable */ | |
707 | /* Values to set : 1 0 */ | |
708 | /* -------------------------------------------------------------- */ | |
709 | WID_11N_ENABLE = 0x0082, | |
710 | ||
711 | /* 11n Operating mode (Note that 11g operating mode will also be */ | |
712 | /* used in addition to this, if this is set to HT Mixed mode) */ | |
713 | /* -------------------------------------------------------------- */ | |
714 | /* Configuration : HT Mixed HT Only-20MHz HT Only-20/40MHz */ | |
715 | /* Values to set : 1 2 3 */ | |
716 | /* -------------------------------------------------------------- */ | |
717 | WID_11N_OPERATING_MODE = 0x0083, | |
718 | ||
719 | /* 11n OBSS non-HT STA Detection flag */ | |
720 | /* -------------------------------------------------------------- */ | |
721 | /* Configuration : Do not detect */ | |
722 | /* Values to set : 0 */ | |
723 | /* Configuration : Detect, do not protect or report */ | |
724 | /* Values to set : 1 */ | |
725 | /* Configuration : Detect, protect and do not report */ | |
726 | /* Values to set : 2 */ | |
727 | /* Configuration : Detect, protect and report to other BSS */ | |
728 | /* Values to set : 3 */ | |
729 | /* -------------------------------------------------------------- */ | |
730 | WID_11N_OBSS_NONHT_DETECTION = 0x0084, | |
731 | ||
732 | /* 11n HT Protection Type */ | |
733 | /* -------------------------------------------------------------- */ | |
734 | /* Configuration : RTS-CTS First Frame Exchange at non-HT-rate */ | |
735 | /* Values to set : 0 1 */ | |
736 | /* Configuration : LSIG TXOP First Frame Exchange in Mixed Fmt */ | |
737 | /* Values to set : 2 3 */ | |
738 | /* -------------------------------------------------------------- */ | |
739 | WID_11N_HT_PROT_TYPE = 0x0085, | |
740 | ||
741 | /* 11n RIFS Protection Enable Flag */ | |
742 | /* -------------------------------------------------------------- */ | |
743 | /* Configuration : Disable Enable */ | |
744 | /* Values to set : 0 1 */ | |
745 | /* -------------------------------------------------------------- */ | |
746 | WID_11N_RIFS_PROT_ENABLE = 0x0086, | |
747 | ||
748 | /* SMPS Mode */ | |
749 | /* -------------------------------------------------------------- */ | |
750 | /* Configuration : Static Dynamic MIMO (Power Save Disabled) */ | |
751 | /* Values to set : 1 2 3 */ | |
752 | /* -------------------------------------------------------------- */ | |
753 | WID_11N_SMPS_MODE = 0x0087, | |
754 | ||
755 | /* Current transmit MCS */ | |
756 | /* -------------------------------------------------------------- */ | |
757 | /* Configuration : MCS Index for data rate */ | |
758 | /* Values to set : 0 to 7 */ | |
759 | /* -------------------------------------------------------------- */ | |
760 | WID_11N_CURRENT_TX_MCS = 0x0088, | |
761 | ||
762 | WID_11N_PRINT_STATS = 0x0089, | |
763 | ||
764 | /* 11n Short GI Enable Flag */ | |
765 | /* -------------------------------------------------------------- */ | |
766 | /* Configuration : Disable Enable */ | |
767 | /* Values to set : 0 1 */ | |
768 | /* -------------------------------------------------------------- */ | |
769 | WID_11N_SHORT_GI_ENABLE = 0x008D, | |
770 | ||
771 | /* 11n RIFS Enable Flag */ | |
772 | /* -------------------------------------------------------------- */ | |
773 | /* Configuration : Disable Enable */ | |
774 | /* Values to set : 0 1 */ | |
775 | /* -------------------------------------------------------------- */ | |
776 | WID_RIFS_MODE = 0x0094, | |
777 | ||
778 | /* TX Abort Feature */ | |
779 | /* -------------------------------------------------------------- */ | |
780 | /* Configuration : Disable Self CTS Enable Self CTS */ | |
781 | /* Values to set : 0 1 */ | |
782 | /* Configuration : Disable TX Abort Enable TX Abort */ | |
783 | /* Values to set : 2 3 */ | |
784 | /* Configuration : Enable HW TX Abort Enable SW TX Abort */ | |
785 | /* Values to set : 4 5 */ | |
786 | /* -------------------------------------------------------------- */ | |
787 | WID_TX_ABORT_CONFIG = 0x00A1, | |
788 | ||
789 | WID_REG_TSSI_11B_VALUE = 0x00A6, | |
790 | WID_REG_TSSI_11G_VALUE = 0x00A7, | |
791 | WID_REG_TSSI_11N_VALUE = 0x00A8, | |
792 | WID_TX_CALIBRATION = 0x00A9, | |
793 | WID_DSCR_TSSI_11B_VALUE = 0x00AA, | |
794 | WID_DSCR_TSSI_11G_VALUE = 0x00AB, | |
795 | WID_DSCR_TSSI_11N_VALUE = 0x00AC, | |
796 | ||
797 | /* Immediate Block-Ack Support */ | |
798 | /* -------------------------------------------------------------- */ | |
799 | /* Configuration : Disable Enable */ | |
800 | /* Values to set : 0 1 */ | |
801 | /* -------------------------------------------------------------- */ | |
802 | WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF, | |
803 | ||
804 | /* TXOP Disable Flag */ | |
805 | /* -------------------------------------------------------------- */ | |
806 | /* Configuration : Disable Enable */ | |
807 | /* Values to set : 1 0 */ | |
808 | /* -------------------------------------------------------------- */ | |
809 | WID_11N_TXOP_PROT_DISABLE = 0x00B0, | |
810 | ||
811 | ||
812 | WID_TX_POWER_LEVEL_11N = 0x00B1, | |
813 | ||
814 | /* Custom Character WID list */ | |
815 | WID_PC_TEST_MODE = 0x00C8, | |
816 | /*bug3819: */ | |
817 | /* SCAN Complete notification WID*/ | |
818 | WID_SCAN_COMPLETE = 0x00C9, | |
819 | ||
820 | #ifdef WILC_AP_EXTERNAL_MLME | |
821 | WID_DEL_BEACON = 0x00CA, | |
822 | #endif | |
823 | ||
824 | WID_LOGTerminal_Switch = 0x00CD, | |
825 | /* EMAC Short WID list */ | |
826 | /* RTS Threshold */ | |
827 | /* -------------------------------------------------------------- */ | |
828 | /* Configuration : Any value between 256 to 2347 */ | |
829 | /* Values to set : Same value. Default is 2347 */ | |
830 | /* -------------------------------------------------------------- */ | |
831 | WID_RTS_THRESHOLD = 0x1000, | |
832 | ||
833 | /* Fragmentation Threshold */ | |
834 | /* -------------------------------------------------------------- */ | |
835 | /* Configuration : Any value between 256 to 2346 */ | |
836 | /* Values to set : Same value. Default is 2346 */ | |
837 | /* -------------------------------------------------------------- */ | |
838 | WID_FRAG_THRESHOLD = 0x1001, | |
839 | ||
840 | WID_SHORT_RETRY_LIMIT = 0x1002, | |
841 | WID_LONG_RETRY_LIMIT = 0x1003, | |
842 | WID_BEACON_INTERVAL = 0x1006, | |
843 | WID_MEMORY_ACCESS_16BIT = 0x1008, | |
844 | WID_RX_SENSE = 0x100B, | |
845 | WID_ACTIVE_SCAN_TIME = 0x100C, | |
846 | WID_PASSIVE_SCAN_TIME = 0x100D, | |
847 | ||
848 | WID_SITE_SURVEY_SCAN_TIME = 0x100E, | |
849 | WID_JOIN_START_TIMEOUT = 0x100F, | |
850 | WID_AUTH_TIMEOUT = 0x1010, | |
851 | WID_ASOC_TIMEOUT = 0x1011, | |
852 | WID_11I_PROTOCOL_TIMEOUT = 0x1012, | |
853 | WID_EAPOL_RESPONSE_TIMEOUT = 0x1013, | |
854 | ||
855 | /* NMAC Short WID list */ | |
856 | WID_11N_SIG_QUAL_VAL = 0x1085, | |
857 | WID_CCA_THRESHOLD = 0x1087, | |
858 | ||
859 | /* Custom Short WID list */ | |
860 | ||
861 | /* EMAC Integer WID list */ | |
862 | WID_FAILED_COUNT = 0x2000, | |
863 | WID_RETRY_COUNT = 0x2001, | |
864 | WID_MULTIPLE_RETRY_COUNT = 0x2002, | |
865 | WID_FRAME_DUPLICATE_COUNT = 0x2003, | |
866 | WID_ACK_FAILURE_COUNT = 0x2004, | |
867 | WID_RECEIVED_FRAGMENT_COUNT = 0x2005, | |
868 | WID_MCAST_RECEIVED_FRAME_COUNT = 0x2006, | |
869 | WID_FCS_ERROR_COUNT = 0x2007, | |
870 | WID_SUCCESS_FRAME_COUNT = 0x2008, | |
871 | WID_HUT_TX_COUNT = 0x200A, | |
872 | WID_TX_FRAGMENT_COUNT = 0x200B, | |
873 | WID_TX_MULTICAST_FRAME_COUNT = 0x200C, | |
874 | WID_RTS_SUCCESS_COUNT = 0x200D, | |
875 | WID_RTS_FAILURE_COUNT = 0x200E, | |
876 | WID_WEP_UNDECRYPTABLE_COUNT = 0x200F, | |
877 | WID_REKEY_PERIOD = 0x2010, | |
878 | WID_REKEY_PACKET_COUNT = 0x2011, | |
879 | WID_1X_SERV_ADDR = 0x2012, | |
880 | WID_STACK_IP_ADDR = 0x2013, | |
881 | WID_STACK_NETMASK_ADDR = 0x2014, | |
882 | WID_HW_RX_COUNT = 0x2015, | |
883 | WID_MEMORY_ADDRESS = 0x201E, | |
884 | WID_MEMORY_ACCESS_32BIT = 0x201F, | |
885 | WID_RF_REG_VAL = 0x2021, | |
886 | ||
887 | ||
888 | /* NMAC Integer WID list */ | |
889 | WID_11N_PHY_ACTIVE_REG_VAL = 0x2080, | |
890 | ||
891 | /* Custom Integer WID list */ | |
892 | WID_GET_INACTIVE_TIME = 0x2084, | |
893 | WID_SET_DRV_HANDLER = 0X2085, | |
894 | WID_SET_OPERATION_MODE = 0X2086, | |
895 | /* EMAC String WID list */ | |
896 | WID_SSID = 0x3000, | |
897 | WID_FIRMWARE_VERSION = 0x3001, | |
898 | WID_OPERATIONAL_RATE_SET = 0x3002, | |
899 | WID_BSSID = 0x3003, | |
900 | WID_WEP_KEY_VALUE = 0x3004, | |
901 | WID_11I_PSK = 0x3008, | |
902 | WID_11E_P_ACTION_REQ = 0x3009, | |
903 | WID_1X_KEY = 0x300A, | |
904 | WID_HARDWARE_VERSION = 0x300B, | |
905 | WID_MAC_ADDR = 0x300C, | |
906 | WID_HUT_DEST_ADDR = 0x300D, | |
907 | WID_PHY_VERSION = 0x300F, | |
908 | WID_SUPP_USERNAME = 0x3010, | |
909 | WID_SUPP_PASSWORD = 0x3011, | |
910 | WID_SITE_SURVEY_RESULTS = 0x3012, | |
911 | WID_RX_POWER_LEVEL = 0x3013, | |
912 | WID_DEL_ALL_RX_BA = 0x3014, | |
913 | WID_SET_STA_MAC_INACTIVE_TIME = 0x3017, | |
914 | WID_ADD_WEP_KEY = 0x3019, | |
915 | WID_REMOVE_WEP_KEY = 0x301A, | |
916 | WID_ADD_PTK = 0x301B, | |
917 | WID_ADD_RX_GTK = 0x301C, | |
918 | WID_ADD_TX_GTK = 0x301D, | |
919 | WID_REMOVE_KEY = 0x301E, | |
920 | WID_ASSOC_REQ_INFO = 0x301F, | |
921 | WID_ASSOC_RES_INFO = 0x3020, | |
922 | WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */ | |
923 | WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */ | |
924 | WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */ | |
925 | WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */ | |
926 | ||
927 | /* NMAC String WID list */ | |
928 | WID_11N_P_ACTION_REQ = 0x3080, | |
929 | WID_HUT_TEST_ID = 0x3081, | |
930 | WID_PMKID_INFO = 0x3082, | |
931 | WID_FIRMWARE_INFO = 0x3083, | |
932 | #ifdef WILC_P2P | |
933 | WID_REGISTER_FRAME = 0x3084, | |
934 | #endif | |
935 | WID_DEL_ALL_STA = 0x3085, | |
936 | #ifdef WILC_P2P | |
937 | WID_REMAIN_ON_CHAN = 0x3996, | |
938 | #endif | |
939 | /*BugID_4156*/ | |
940 | WID_SSID_PROBE_REQ = 0x3997, | |
941 | /*BugID_4124 WID to trigger modified Join Request using SSID and BSSID instead of bssListIdx (used by WID_JOIN_REQ)*/ | |
942 | WID_JOIN_REQ_EXTENDED = 0x3998, | |
943 | ||
944 | /* BugID 4951: WID toset IP address in firmware */ | |
945 | WID_IP_ADDRESS = 0x3999, | |
946 | ||
947 | ||
948 | ||
949 | /* Custom String WID list */ | |
950 | ||
951 | /* EMAC Binary WID list */ | |
952 | WID_UAPSD_CONFIG = 0x4001, | |
953 | WID_UAPSD_STATUS = 0x4002, | |
954 | WID_WMM_AP_AC_PARAMS = 0x4003, | |
955 | WID_WMM_STA_AC_PARAMS = 0x4004, | |
956 | WID_NETWORK_INFO = 0x4005, | |
957 | WID_STA_JOIN_INFO = 0x4006, | |
958 | WID_CONNECTED_STA_LIST = 0x4007, | |
959 | ||
960 | /* NMAC Binary WID list */ | |
961 | WID_11N_AUTORATE_TABLE = 0x4080, | |
962 | ||
963 | ||
964 | /*Added here by Amr - BugID 4134*/ | |
965 | WID_SCAN_CHANNEL_LIST = 0x4084, | |
966 | ||
967 | /*BugID_3746 WID to add IE to be added in next probe request*/ | |
968 | WID_INFO_ELEMENT_PROBE = 0x4085, | |
969 | /*BugID_3746 WID to add IE to be added in next associate request*/ | |
970 | WID_INFO_ELEMENT_ASSOCIATE = 0x4086, | |
971 | WID_ADD_STA = 0X4087, | |
972 | WID_REMOVE_STA = 0X4088, | |
973 | WID_EDIT_STA = 0X4089, | |
974 | WID_ADD_BEACON = 0x408a, | |
975 | ||
976 | /* BugID 5108 */ | |
977 | WID_SETUP_MULTICAST_FILTER = 0x408b, | |
978 | ||
979 | /* Miscellaneous WIDs */ | |
980 | WID_ALL = 0x7FFE, | |
981 | WID_MAX = 0xFFFF | |
982 | } WID_T; | |
983 | ||
984 | int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); | |
985 | ||
986 | void wilc_bus_set_max_speed(void); | |
987 | void wilc_bus_set_default_speed(void); | |
988 | uint32_t wilc_get_chipid(uint8_t update); | |
989 | ||
990 | ||
991 | #endif |