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