162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Intel Centrino wireless drivers
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig IPW2100
762306a36Sopenharmony_ci	tristate "Intel PRO/Wireless 2100 Network Connection"
862306a36Sopenharmony_ci	depends on PCI && CFG80211
962306a36Sopenharmony_ci	select WIRELESS_EXT
1062306a36Sopenharmony_ci	select WEXT_SPY
1162306a36Sopenharmony_ci	select WEXT_PRIV
1262306a36Sopenharmony_ci	select FW_LOADER
1362306a36Sopenharmony_ci	select LIB80211
1462306a36Sopenharmony_ci	select LIBIPW
1562306a36Sopenharmony_ci	help
1662306a36Sopenharmony_ci	  A driver for the Intel PRO/Wireless 2100 Network
1762306a36Sopenharmony_ci	  Connection 802.11b wireless network adapter.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	  See <file:Documentation/networking/device_drivers/wifi/intel/ipw2100.rst>
2062306a36Sopenharmony_ci	  for information on the capabilities currently enabled in this driver
2162306a36Sopenharmony_ci	  and for tips for debugging issues and problems.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  In order to use this driver, you will need a firmware image for it.
2462306a36Sopenharmony_ci	  You can obtain the firmware from
2562306a36Sopenharmony_ci	  <http://ipw2100.sf.net/>.  Once you have the firmware image, you
2662306a36Sopenharmony_ci	  will need to place it in /lib/firmware.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	  You will also very likely need the Wireless Tools in order to
2962306a36Sopenharmony_ci	  configure your card:
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	  <https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html>.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	  It is recommended that you compile this driver as a module (M)
3462306a36Sopenharmony_ci	  rather than built-in (Y). This driver requires firmware at device
3562306a36Sopenharmony_ci	  initialization time, and when built-in this typically happens
3662306a36Sopenharmony_ci	  before the filesystem is accessible (hence firmware will be
3762306a36Sopenharmony_ci	  unavailable and initialization will fail). If you do choose to build
3862306a36Sopenharmony_ci	  this driver into your kernel image, you can avoid this problem by
3962306a36Sopenharmony_ci	  including the firmware and a firmware loader in an initramfs.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig IPW2100_MONITOR
4262306a36Sopenharmony_ci	bool "Enable promiscuous mode"
4362306a36Sopenharmony_ci	depends on IPW2100
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Enables promiscuous/monitor mode support for the ipw2100 driver.
4662306a36Sopenharmony_ci	  With this feature compiled into the driver, you can switch to
4762306a36Sopenharmony_ci	  promiscuous mode via the Wireless Tool's Monitor mode.  While in this
4862306a36Sopenharmony_ci	  mode, no packets can be sent.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig IPW2100_DEBUG
5162306a36Sopenharmony_ci	bool "Enable full debugging output in IPW2100 module."
5262306a36Sopenharmony_ci	depends on IPW2100
5362306a36Sopenharmony_ci	help
5462306a36Sopenharmony_ci	  This option will enable debug tracing output for the IPW2100.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	  This will result in the kernel module being ~60k larger.  You can
5762306a36Sopenharmony_ci	  control which debug output is sent to the kernel log by setting the
5862306a36Sopenharmony_ci	  value in
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  /sys/bus/pci/drivers/ipw2100/debug_level
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	  This entry will only exist if this option is enabled.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  If you are not trying to debug or develop the IPW2100 driver, you
6562306a36Sopenharmony_ci	  most likely want to say N here.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig IPW2200
6862306a36Sopenharmony_ci	tristate "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
6962306a36Sopenharmony_ci	depends on PCI && CFG80211
7062306a36Sopenharmony_ci	select CFG80211_WEXT_EXPORT
7162306a36Sopenharmony_ci	select WIRELESS_EXT
7262306a36Sopenharmony_ci	select WEXT_SPY
7362306a36Sopenharmony_ci	select WEXT_PRIV
7462306a36Sopenharmony_ci	select FW_LOADER
7562306a36Sopenharmony_ci	select LIB80211
7662306a36Sopenharmony_ci	select LIBIPW
7762306a36Sopenharmony_ci	help
7862306a36Sopenharmony_ci	  A driver for the Intel PRO/Wireless 2200BG and 2915ABG Network
7962306a36Sopenharmony_ci	  Connection adapters.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	  See <file:Documentation/networking/device_drivers/wifi/intel/ipw2200.rst>
8262306a36Sopenharmony_ci	  for information on the capabilities currently enabled in this
8362306a36Sopenharmony_ci	  driver and for tips for debugging issues and problems.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  In order to use this driver, you will need a firmware image for it.
8662306a36Sopenharmony_ci	  You can obtain the firmware from
8762306a36Sopenharmony_ci	  <http://ipw2200.sf.net/>.  See the above referenced README.ipw2200
8862306a36Sopenharmony_ci	  for information on where to install the firmware images.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	  You will also very likely need the Wireless Tools in order to
9162306a36Sopenharmony_ci	  configure your card:
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	  <https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html>.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	  It is recommended that you compile this driver as a module (M)
9662306a36Sopenharmony_ci	  rather than built-in (Y). This driver requires firmware at device
9762306a36Sopenharmony_ci	  initialization time, and when built-in this typically happens
9862306a36Sopenharmony_ci	  before the filesystem is accessible (hence firmware will be
9962306a36Sopenharmony_ci	  unavailable and initialization will fail). If you do choose to build
10062306a36Sopenharmony_ci	  this driver into your kernel image, you can avoid this problem by
10162306a36Sopenharmony_ci	  including the firmware and a firmware loader in an initramfs.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciconfig IPW2200_MONITOR
10462306a36Sopenharmony_ci	bool "Enable promiscuous mode"
10562306a36Sopenharmony_ci	depends on IPW2200
10662306a36Sopenharmony_ci	help
10762306a36Sopenharmony_ci	  Enables promiscuous/monitor mode support for the ipw2200 driver.
10862306a36Sopenharmony_ci	  With this feature compiled into the driver, you can switch to
10962306a36Sopenharmony_ci	  promiscuous mode via the Wireless Tool's Monitor mode.  While in this
11062306a36Sopenharmony_ci	  mode, no packets can be sent.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciconfig IPW2200_RADIOTAP
11362306a36Sopenharmony_ci	bool "Enable radiotap format 802.11 raw packet support"
11462306a36Sopenharmony_ci	depends on IPW2200_MONITOR
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciconfig IPW2200_PROMISCUOUS
11762306a36Sopenharmony_ci	bool "Enable creation of a RF radiotap promiscuous interface"
11862306a36Sopenharmony_ci	depends on IPW2200_MONITOR
11962306a36Sopenharmony_ci	select IPW2200_RADIOTAP
12062306a36Sopenharmony_ci	help
12162306a36Sopenharmony_ci	  Enables the creation of a second interface prefixed 'rtap'.
12262306a36Sopenharmony_ci	  This second interface will provide every received in radiotap
12362306a36Sopenharmony_ci	  format.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	  This is useful for performing wireless network analysis while
12662306a36Sopenharmony_ci	  maintaining an active association.
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci	  Example usage:
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	    % modprobe ipw2200 rtap_iface=1
13162306a36Sopenharmony_ci	    % ifconfig rtap0 up
13262306a36Sopenharmony_ci	    % tethereal -i rtap0
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci	  If you do not specify 'rtap_iface=1' as a module parameter then
13562306a36Sopenharmony_ci	  the rtap interface will not be created and you will need to turn
13662306a36Sopenharmony_ci	  it on via sysfs:
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci	    % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ciconfig IPW2200_QOS
14162306a36Sopenharmony_ci	bool "Enable QoS support"
14262306a36Sopenharmony_ci	depends on IPW2200
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciconfig IPW2200_DEBUG
14562306a36Sopenharmony_ci	bool "Enable full debugging output in IPW2200 module."
14662306a36Sopenharmony_ci	depends on IPW2200
14762306a36Sopenharmony_ci	help
14862306a36Sopenharmony_ci	  This option will enable low level debug tracing output for IPW2200.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci	  Note, normal debug code is already compiled in. This low level
15162306a36Sopenharmony_ci	  debug option enables debug on hot paths (e.g Tx, Rx, ISR) and
15262306a36Sopenharmony_ci	  will result in the kernel module being ~70 larger.  Most users
15362306a36Sopenharmony_ci	  will typically not need this high verbosity debug information.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci	  If you are not sure, say N here.
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ciconfig LIBIPW
15862306a36Sopenharmony_ci	tristate
15962306a36Sopenharmony_ci	depends on PCI && CFG80211
16062306a36Sopenharmony_ci	select WIRELESS_EXT
16162306a36Sopenharmony_ci	select WEXT_SPY
16262306a36Sopenharmony_ci	select CRYPTO
16362306a36Sopenharmony_ci	select CRYPTO_MICHAEL_MIC
16462306a36Sopenharmony_ci	select CRC32
16562306a36Sopenharmony_ci	select LIB80211
16662306a36Sopenharmony_ci	select LIB80211_CRYPT_WEP
16762306a36Sopenharmony_ci	select LIB80211_CRYPT_TKIP
16862306a36Sopenharmony_ci	select LIB80211_CRYPT_CCMP
16962306a36Sopenharmony_ci	help
17062306a36Sopenharmony_ci	This option enables the hardware independent IEEE 802.11
17162306a36Sopenharmony_ci	networking stack.  This component is deprecated in favor of the
17262306a36Sopenharmony_ci	mac80211 component.
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciconfig LIBIPW_DEBUG
17562306a36Sopenharmony_ci	bool "Full debugging output for the LIBIPW component"
17662306a36Sopenharmony_ci	depends on LIBIPW
17762306a36Sopenharmony_ci	help
17862306a36Sopenharmony_ci	  This option will enable debug tracing output for the
17962306a36Sopenharmony_ci	  libipw component.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	  This will result in the kernel module being ~70k larger.  You
18262306a36Sopenharmony_ci	  can control which debug output is sent to the kernel log by
18362306a36Sopenharmony_ci	  setting the value in
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci	  /proc/net/ieee80211/debug_level
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci	  For example:
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci	  % echo 0x00000FFO > /proc/net/ieee80211/debug_level
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci	  For a list of values you can assign to debug_level, you
19262306a36Sopenharmony_ci	  can look at the bit mask values in ieee80211.h
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci	  If you are not trying to debug or develop the libipw
19562306a36Sopenharmony_ci	  component, you most likely want to say N here.
196