carl9170 firmware: improve tx ampdu ba_end handling
[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_VIFS_NUM
161         default 1
162         int
163         prompt "Number of additional pseudo virtual interfaces"
164         depends on CARL9170FW_EXPERIMENTAL
165
166 config CARL9170FW_FW_MAC_RESET
167         def_bool y
168         prompt "Firmware MAC Chip recovery"
169         depends on CARL9170FW_EXPERIMENTAL
170
171 config CARL9170FW_BROKEN_FEATURES
172         def_bool n
173         prompt "Broken Featurs"
174
175 config CARL9170FW_DEBUG
176         def_bool n
177         depends on CARL9170FW_BROKEN_FEATURES && CARL9170FW_PRINTF
178         prompt "Enable verbose debugging messages"
179
180 config CARL9170FW_DEBUG_LED_HEARTBEAT
181         def_bool n
182         prompt "LED Heartbeat"
183         depends on CARL9170FW_BROKEN_FEATURES
184         ---help---
185          This option conflicts with the application's LED code.
186          Also, it assumes that you have two LEDs, which is not
187          necessarily true.
188
189 config CARL9170FW_DEBUG_UART
190         def_bool n
191         prompt "Pass debug messages through Highspeed UART"
192         depends on CARL9170FW_BROKEN_FEATURES
193         ---help---
194          This option allows the firmware to send BUG/ERR/INFO/DBG and
195          hexdumps through the UART _as well_. However, first: you must
196          connect a working logger.
197
198 config CARL9170FW_WATCHDOG_BUTTON
199         def_bool n
200         depends on CARL9170FW_BROKEN && CARL9170FW_WATCHDOG && CARL9170FW_GPIO_INTERRUPT
201         prompt "Trigger Watchdog by pressing the WPS button"
202
203 choice CARL9170FW_UART_CLOCK
204         prompt "UART Clock"
205         depends on CARL9170FW_DEBUG_UART
206         default CARL9170FW_UART_CLOCK_40M
207
208 config CARL9170FW_UART_CLOCK_25M
209         bool "25"
210
211 config CARL9170FW_UART_CLOCK_40M
212         bool "40"
213
214 endchoice
215
216
217 choice
218         prompt "TX / RX Path"
219
220         default CARL9170FW_NORMAL_TX_RX
221
222         config CARL9170FW_NORMAL_TX_RX
223                 bool
224                 prompt "Normal WLAN TX/RX routines"
225
226         config CARL9170FW_LOOPBACK
227                 bool
228                 depends on CARL9170FW_BROKEN_FEATURES
229                 prompt "TX->(tx feedback)->RX loopback"
230                 ---help---
231                  Useful carlu testcase.
232
233         config CARL9170FW_DISCARD
234                 bool
235                 depends on CARL9170FW_BROKEN_FEATURES
236                 prompt "TX->(tx feedback)"
237                 ---help---
238                  Useful carlu testcase
239
240 endchoice
241
242 config CARL9170FW_UNUSABLE
243         def_bool y
244         depends on CARL9170FW_BROKEN || CARL9170FW_LOOPBACK
245
246 config CARL9170FW_USB_MODESWITCH
247         def_bool n
248         prompt "USB 1.1 / 2.0 switching support"
249         depends on CARL9170FW_BROKEN_FEATURES
250         ---help---
251          Mostly implemented, but untested and some serious
252          doubts remain.
253
254 config CARL9170FW_DMA_QUEUE_BUMP
255         def_bool n
256         prompt "Bump a stuck TX queue before doing a MAC reset"
257         depends on CARL9170FW_BROKEN_FEATURES
258
259 menu "Build Options"
260 config CARL9170FW_AGGRESSIVE_CFLAGS
261         def_bool y
262         prompt "Enable aggressive size optimization"
263         ---help---
264          This option adds several more optimization compiler flags,
265          which can greatly reduce the firmware size... at the expense
266          of machine-code readability.
267
268           Say Y. Else the firmware might not fit onto the device!
269
270 endmenu
271
272 endmenu
273
274 endmenu