carl9170 firmware: Wake-up on rx'ed Probe Request
[carl9170fw.git] / carlfw / Kconfig
1 menu "General"
2
3 config CARL9170FW_MAKE_RELEASE
4         def_bool y
5         prompt "Update/Generate new release/revision files"
6
7 config CARL9170FW_RELEASE_VERSION
8         int
9         depends on CARL9170FW_MAKE_RELEASE
10         prompt "Major CARL9170 Firmware Revision"
11         default 1
12
13 menu "Selectable Hardware Options"
14
15 choice
16         prompt "Receiver Max. Frame Length"
17         default CARL9170FW_RX_FRAME_LEN_8192
18
19         config CARL9170FW_RX_FRAME_LEN_4096
20                 bool "4096"
21
22         config CARL9170FW_RX_FRAME_LEN_8192
23                 bool "8192"
24
25         config CARL9170FW_RX_FRAME_LEN_16384
26                 bool "16384"
27
28         config CARL9170FW_RX_FRAME_LEN_32768
29                 bool "32768"
30
31 endchoice
32
33 config CARL9170FW_RX_FRAME_LEN
34         int
35         default 4096 if CARL9170FW_RX_FRAME_LEN_4096
36         default 8192 if CARL9170FW_RX_FRAME_LEN_8192
37         default 16384 if CARL9170FW_RX_FRAME_LEN_16384
38         default 32768 if CARL9170FW_RX_FRAME_LEN_32768
39
40 config CARL9170FW_WATCHDOG
41         def_bool y
42         prompt "Activate HW Watchdog"
43         ---help---
44          The watchdog will notify the application as soon as the firmware
45          has stalled.
46
47          Say Y.
48
49 config CARL9170FW_GPIO_INTERRUPT
50         def_bool y
51         prompt "GPIO Software Interrupt"
52         ---help---
53          When this option is enabled, the firmware will poll the GPIO
54          registers and reports to the driver whenever the GPIO state
55          has changed from a previous state.
56
57          Note: This feature is necessary to monitor the WPS button,
58                if you have one on your device, then say Y.
59
60 config CARL9170FW_SECURITY_ENGINE
61         def_bool y
62         prompt "Support Hardware Crypto Engine"
63         ---help---
64          This options controls if the firmware will allow the driver
65          to program the security engine / CAM through a firmware
66          interface.
67
68          Say Y. Unless you want to do the en- and decryption for
69          CCMP(AES), TKIP/WEP(RC4) in the application anyway.
70
71 config CARL9170FW_RADIO_FUNCTIONS
72         def_bool y
73         prompt "Enable Firmware-supported Radio/RF functions"
74         ---help---
75          Some PHY/RF functions (e.g.: AGC and Noise calibration) need
76          to be done in the firmware.
77
78          Say Y, unless you really don't need the Radio/RF for
79          your project.
80
81 endmenu
82
83 menu "802.11 Firmware Features"
84
85 config CARL9170FW_HANDLE_BACK_REQ
86         def_bool y
87         prompt "Handle BlockACK Requests in Firmware"
88         ---help---
89          Enables a firmware mechanism to answer incoming BlockACK requests.
90          This feature is necessary to comply with 802.11n. So say Y,
91          if you have plans to support this operation mode.
92
93 config CARL9170FW_BACK_REQS_NUM
94         default 4
95         int
96         prompt "Number of max. active BlockACK Request"
97         depends on CARL9170FW_HANDLE_BACK_REQ
98
99 config CARL9170FW_CAB_QUEUE
100         def_bool y
101         prompt "Support software-based Content after Beacon Queue"
102         ---help---
103          This (software) queue is used to send any broad-/multi-cast buffered
104          frames after the next DTIM beacon.
105
106          This feature is required for Accesspoint mode operation.
107
108          Say Y.
109
110 endmenu
111
112 source "carlfw/usb/Kconfig"
113
114 menu "Experimental, Unstable & Testing Extensions"
115
116 config CARL9170FW_PRINTF
117         def_bool y
118         prompt "Advanced printf"
119         depends on CARL9170FW_DEBUG_UART || CARL9170FW_DEBUG_USB
120         ---help---
121          Advanced printf (very useful for debugging purposes)
122          The formats supported by this implementation are:
123                 'd' 'u' 'c' 's' 'x' 'X' 'p'.
124
125          Note: If this option is disabled, the firmware will be only
126                capable of reported _preformated_ string.
127
128 config CARL9170FW_EXPERIMENTAL
129         def_bool y
130         prompt "Experimental Features"
131
132 config CARL9170FW_PSM
133         def_bool y
134         prompt "Firmware Supported Power-saving Management"
135         depends on CARL9170FW_EXPERIMENTAL && CARL9170FW_RADIO_FUNCTIONS
136         ---help---
137          This options enables a interface for the application to
138          switch off the RF/PHY (in order to save power). And the
139          Firmware will automatically turn it on again, when the
140          PRETBTT event fires.
141
142 config CARL9170FW_DELAYED_TX
143         def_bool n
144         prompt "Delay and reorder TX"
145         depends on CARL9170FW_EXPERIMENTAL
146         ---help---
147          Delay incoming TX' from the application until wlan_complete
148          has finished.
149
150          This feature is necessary to keep A-MPDUs partially ordered.
151
152          Doesn't work 100% yet, but in most cases other HW designs can
153          deal with the fallout.
154
155 config CARL9170FW_TX_AMPDU
156         def_bool n
157         prompt "Firmware-supported ampdu scheduling"
158         depends on CARL9170FW_EXPERIMENTAL
159
160 config CARL9170FW_WOL_OPTION
161         def_bool n
162         prompt "Wakeup on WLAN"
163         depends on CARL9170FW_EXPERIMENTAL
164         ---help---
165          With this option enabled, the firmware can wake-up
166          suspended hosts... As long as they fully support
167          USB remote wakeup.
168
169 config CARL9170FW_WOL
170         def_bool n
171         depends on CARL9170FW_WOL_OPTION
172
173 config CARL9170FW_WOL_MAGIC_PACKET
174         def_bool n
175         prompt "Magic Packet(tm)"
176         depends on CARL9170FW_WOL_OPTION
177         select CARL9170FW_WOL
178         ---help---
179          Sniff all incoming data frames for the magic packet pattern.
180
181 config CARL9170FW_WOL_PROBE_REQUEST
182         def_bool n
183         prompt "Probe Request"
184         depends on CARL9170FW_WOL_OPTION
185         select CARL9170FW_WOL_CHECK
186         ---help---
187          Scan probe requests for a given SSID.
188
189 config CARL9170FW_WOL_PROBE_REQUEST_SSID
190         string
191         prompt "Wakeup on WLAN SSID"
192         default "CARL9170_WAKEUP"
193         depends on CARL9170FW_WOL_PROBE_REQUEST
194
195 config CARL9170FW_VIFS_NUM
196         default 1
197         int
198         prompt "Number of additional pseudo virtual interfaces"
199         depends on CARL9170FW_EXPERIMENTAL
200
201 config CARL9170FW_FW_MAC_RESET
202         def_bool y
203         prompt "Firmware MAC Chip recovery"
204         depends on CARL9170FW_EXPERIMENTAL
205
206 config CARL9170FW_BROKEN_FEATURES
207         def_bool n
208         prompt "Broken Featurs"
209
210 config CARL9170FW_DEBUG
211         def_bool n
212         depends on CARL9170FW_BROKEN_FEATURES && CARL9170FW_PRINTF
213         prompt "Enable verbose debugging messages"
214
215 config CARL9170FW_DEBUG_LED_HEARTBEAT
216         def_bool n
217         prompt "LED Heartbeat"
218         depends on CARL9170FW_BROKEN_FEATURES
219         ---help---
220          This option conflicts with the application's LED code.
221          Also, it assumes that you have two LEDs, which is not
222          necessarily true.
223
224 config CARL9170FW_DEBUG_UART
225         def_bool n
226         prompt "Pass debug messages through Highspeed UART"
227         depends on CARL9170FW_BROKEN_FEATURES
228         ---help---
229          This option allows the firmware to send BUG/ERR/INFO/DBG and
230          hexdumps through the UART _as well_. However, first: you must
231          connect a working logger.
232
233 config CARL9170FW_WATCHDOG_BUTTON
234         def_bool n
235         depends on CARL9170FW_BROKEN && CARL9170FW_WATCHDOG && CARL9170FW_GPIO_INTERRUPT
236         prompt "Trigger Watchdog by pressing the WPS button"
237
238 choice CARL9170FW_UART_CLOCK
239         prompt "UART Clock"
240         depends on CARL9170FW_DEBUG_UART
241         default CARL9170FW_UART_CLOCK_40M
242
243 config CARL9170FW_UART_CLOCK_25M
244         bool "25"
245
246 config CARL9170FW_UART_CLOCK_40M
247         bool "40"
248
249 endchoice
250
251
252 choice
253         prompt "TX / RX Path"
254
255         default CARL9170FW_NORMAL_TX_RX
256
257         config CARL9170FW_NORMAL_TX_RX
258                 bool
259                 prompt "Normal WLAN TX/RX routines"
260
261         config CARL9170FW_LOOPBACK
262                 bool
263                 depends on CARL9170FW_BROKEN_FEATURES
264                 prompt "TX->(tx feedback)->RX loopback"
265                 ---help---
266                  Useful carlu testcase.
267
268         config CARL9170FW_DISCARD
269                 bool
270                 depends on CARL9170FW_BROKEN_FEATURES
271                 prompt "TX->(tx feedback)"
272                 ---help---
273                  Useful carlu testcase
274
275 endchoice
276
277 config CARL9170FW_UNUSABLE
278         def_bool y
279         depends on CARL9170FW_BROKEN || CARL9170FW_LOOPBACK
280
281 config CARL9170FW_USB_MODESWITCH
282         def_bool n
283         prompt "USB 1.1 / 2.0 switching support"
284         depends on CARL9170FW_BROKEN_FEATURES
285         ---help---
286          Mostly implemented, but untested and some serious
287          doubts remain.
288
289 config CARL9170FW_DMA_QUEUE_BUMP
290         def_bool n
291         prompt "Bump a stuck TX queue before doing a MAC reset"
292         depends on CARL9170FW_BROKEN_FEATURES
293
294 menu "Build Options"
295 config CARL9170FW_AGGRESSIVE_CFLAGS
296         def_bool y
297         prompt "Enable aggressive size optimization"
298         ---help---
299          This option adds several more optimization compiler flags,
300          which can greatly reduce the firmware size... at the expense
301          of machine-code readability.
302
303           Say Y. Else the firmware might not fit onto the device!
304
305 endmenu
306
307 endmenu
308
309 endmenu