You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
765 lines
22 KiB
765 lines
22 KiB
# Nordic Wi-Fi driver for nRF70 series SoCs |
|
# |
|
# Copyright (c) 2024 Nordic Semiconductor |
|
# |
|
# SPDX-License-Identifier: Apache-2.0 |
|
# |
|
|
|
menuconfig WIFI_NRF70 |
|
bool "nRF70 driver" |
|
select NET_L2_WIFI_MGMT if NETWORKING |
|
select NET_L2_ETHERNET_MGMT if NETWORKING && NET_L2_ETHERNET |
|
select WIFI_USE_NATIVE_NETWORKING if NETWORKING |
|
select EXPERIMENTAL if !SOC_SERIES_NRF53X && !SOC_SERIES_NRF91X |
|
default y |
|
depends on \ |
|
DT_HAS_NORDIC_NRF7002_SPI_ENABLED || DT_HAS_NORDIC_NRF7002_QSPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7001_SPI_ENABLED || DT_HAS_NORDIC_NRF7001_QSPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7000_SPI_ENABLED || DT_HAS_NORDIC_NRF7000_QSPI_ENABLED |
|
help |
|
Nordic Wi-Fi Driver |
|
|
|
if WIFI_NRF70 |
|
# Hidden symbols for internal use |
|
config WIFI_NRF7002 |
|
bool |
|
default y if DT_HAS_NORDIC_NRF7002_SPI_ENABLED || DT_HAS_NORDIC_NRF7002_QSPI_ENABLED |
|
|
|
config WIFI_NRF7001 |
|
bool |
|
default y if DT_HAS_NORDIC_NRF7001_SPI_ENABLED || DT_HAS_NORDIC_NRF7001_QSPI_ENABLED |
|
|
|
config WIFI_NRF7000 |
|
bool |
|
default y if DT_HAS_NORDIC_NRF7000_SPI_ENABLED || DT_HAS_NORDIC_NRF7000_QSPI_ENABLED |
|
|
|
|
|
module = WIFI_NRF70_BUS |
|
module-dep = LOG |
|
module-str = Log level for Wi-Fi nRF70 bus layers |
|
module-help = Sets log level for Wi-Fi nRF70 bus layers |
|
source "subsys/net/Kconfig.template.log_config.net" |
|
|
|
config WIFI_NRF70_BUS_LOG_LEVEL |
|
# Enable error by default |
|
default 1 |
|
|
|
choice NRF70_OPER_MODES |
|
bool "nRF70 operating modes" |
|
default NRF70_SYSTEM_WITH_RAW_MODES if !WIFI_NRF7000 && \ |
|
(NRF70_RAW_DATA_TX || NRF70_RAW_DATA_RX || NRF70_PROMISC_DATA_RX) |
|
default NRF70_SYSTEM_MODE if !WIFI_NRF7000 |
|
default NRF70_SCAN_ONLY if WIFI_NRF7000 |
|
help |
|
Select the operating mode of the nRF70 driver |
|
|
|
config NRF70_SYSTEM_MODE |
|
bool "nRF70 system mode" |
|
depends on WIFI_NRF7002 || WIFI_NRF7001 |
|
select WIFI_NM_WPA_SUPPLICANT |
|
help |
|
Select this option to enable system mode of the nRF70 driver |
|
|
|
config NRF70_SCAN_ONLY |
|
bool "nRF70 scan only mode" |
|
depends on WIFI_NRF7000 |
|
help |
|
Select this option to enable scan only mode of the nRF70 driver |
|
|
|
config NRF70_RADIO_TEST |
|
bool "Radio test mode of the nRF70 driver" |
|
|
|
config NRF70_OFFLOADED_RAW_TX |
|
bool "Offloaded raw Tx mode of the nRF70 driver" |
|
|
|
config NRF70_SYSTEM_WITH_RAW_MODES |
|
bool "nRF70 system mode with raw modes" |
|
depends on WIFI_NRF7002 || WIFI_NRF7001 |
|
select WIFI_NM_WPA_SUPPLICANT |
|
help |
|
Select this option to enable system mode of the nRF70 driver with raw modes |
|
|
|
endchoice |
|
|
|
config NRF70_SYSTEM_MODE_COMMON |
|
bool |
|
default y if NRF70_SYSTEM_MODE || NRF70_SYSTEM_WITH_RAW_MODES |
|
|
|
config NET_L2_ETHERNET |
|
default y if (!NRF70_RADIO_TEST && !NRF70_OFFLOADED_RAW_TX) |
|
|
|
config HEAP_MEM_POOL_ADD_SIZE_NRF70 |
|
# Use a maximum that works for typical usecases and boards, each sample/app can override |
|
# this value if needed by using CONFIG_HEAP_MEM_POOL_IGNORE_MIN |
|
def_int 25000 if NRF70_SCAN_ONLY |
|
def_int 150000 |
|
|
|
if NRF70_SYSTEM_MODE || NRF70_SYSTEM_WITH_RAW_MODES |
|
config NRF70_STA_MODE |
|
bool "nRF70 STA mode" |
|
default y |
|
help |
|
Select this option to enable STA mode of the nRF70 driver |
|
|
|
config NRF70_AP_MODE |
|
bool "Access point mode" |
|
depends on WIFI_NM_WPA_SUPPLICANT_AP |
|
|
|
config NRF70_P2P_MODE |
|
bool "P2P support in driver" |
|
endif # NRF70_SYSTEM_MODE || NRF70_SYSTEM_WITH_RAW_MODES |
|
|
|
config NRF70_RAW_DATA_TX |
|
bool "RAW TX data path in the driver" |
|
select EXPERIMENTAL |
|
|
|
config NRF70_RAW_DATA_RX |
|
bool "RAW RX sniffer operation in the driver" |
|
select EXPERIMENTAL |
|
|
|
config NRF70_PROMISC_DATA_RX |
|
bool "promiscuous RX sniffer operation in the driver" |
|
select WIFI_NM_WPA_SUPPLICANT |
|
select EXPERIMENTAL |
|
select NET_PROMISCUOUS_MODE |
|
|
|
config NRF70_DATA_TX |
|
bool "TX data path in the driver" |
|
default y if NRF70_SYSTEM_MODE || NRF70_SYSTEM_WITH_RAW_MODES |
|
|
|
config NRF_WIFI_IF_AUTO_START |
|
bool "Wi-Fi interface auto start on boot" |
|
default y |
|
|
|
choice NRF_WIFI_FW_BLOB_HANDLING |
|
prompt "nRF70 Firmware blob handling" |
|
default NRF_WIFI_PATCHES_BUILTIN |
|
|
|
config NRF_WIFI_BUILD_ONLY_MODE |
|
bool "Build only mode" |
|
help |
|
Enable this option to build the driver without firmware loading, removes |
|
dependency on firmware binary and patches. |
|
This is useful to check the build and link errors. |
|
|
|
config NRF_WIFI_PATCHES_BUILTIN |
|
bool "Store nRF70 FW patches as part of the driver" |
|
help |
|
Select this option to store nRF70 FW patches as part of the driver. |
|
This option impacts the code memory footprint of the driver. |
|
|
|
config NRF_WIFI_PATCHES_EXTERNAL |
|
bool "Load nRF70 FW patches from external binary" |
|
help |
|
Select this option to load nRF70 FW patches from an external tooling. |
|
endchoice |
|
|
|
config NRF_WIFI_LOW_POWER |
|
bool "low power mode in nRF Wi-Fi chipsets" |
|
default y |
|
|
|
config NRF70_TCP_IP_CHECKSUM_OFFLOAD |
|
bool "TCP/IP checksum offload" |
|
default y |
|
|
|
config NRF70_REG_DOMAIN |
|
string "The ISO/IEC alpha2 country code for the country in which this device is currently operating. Default 00 (World regulatory)" |
|
# 00 is used for World regulatory |
|
default "00" |
|
|
|
# Making calls to RPU from net_mgmt callbacks. |
|
# |
|
# If WPA supplicant is enabled, then don't override as it has higher |
|
# stack requirements. |
|
config NET_MGMT_EVENT_STACK_SIZE |
|
default 2048 if !WIFI_NM_WPA_SUPPLICANT |
|
|
|
config NRF70_LOG_VERBOSE |
|
bool "Maintains the verbosity of information in logs" |
|
default y |
|
|
|
module = WIFI_NRF70 |
|
module-dep = LOG |
|
module-str = Log level for Wi-Fi nRF70 driver |
|
module-help = Sets log level for Wi-Fi nRF70 driver |
|
source "subsys/logging/Kconfig.template.log_config" |
|
|
|
config WIFI_NRF70_LOG_LEVEL |
|
# Enable error by default |
|
default 1 |
|
|
|
config NRF70_ON_QSPI |
|
def_bool DT_HAS_NORDIC_NRF7002_QSPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7001_QSPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7000_QSPI_ENABLED |
|
select NRFX_QSPI |
|
|
|
config NRF70_ON_SPI |
|
def_bool DT_HAS_NORDIC_NRF7002_SPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7001_SPI_ENABLED || \ |
|
DT_HAS_NORDIC_NRF7000_SPI_ENABLED |
|
select SPI |
|
|
|
config NRF70_2_4G_ONLY |
|
def_bool y if WIFI_NRF7001 |
|
|
|
# Wi-Fi and SR Coexistence Hardware configuration. |
|
config NRF70_SR_COEX |
|
bool "Wi-Fi and SR coexistence support" |
|
|
|
config NRF70_SR_COEX_RF_SWITCH |
|
bool "GPIO configuration to control SR side RF switch position" |
|
|
|
config NRF70_WORKQ_STACK_SIZE |
|
int "Stack size for workqueue" |
|
default 4096 |
|
|
|
config NRF70_WORKQ_MAX_ITEMS |
|
int "Maximum work items for all workqueues" |
|
default 100 |
|
|
|
config NRF70_MAX_TX_PENDING_QLEN |
|
int "Maximum number of pending TX packets" |
|
default 18 |
|
|
|
config NRF70_UTIL |
|
depends on SHELL |
|
bool "Utility shell in nRF70 driver" |
|
|
|
config NRF70_QSPI_LOW_POWER |
|
bool "low power mode in QSPI" |
|
default y if NRF_WIFI_LOW_POWER |
|
|
|
config NRF70_PCB_LOSS_2G |
|
int "PCB loss for 2.4 GHz band" |
|
default 0 |
|
range 0 4 |
|
help |
|
Specifies PCB loss from the antenna connector to the RF pin. |
|
The values are in dB scale in steps of 1dB and range of 0-4dB. |
|
The loss is considered in the RX path only. |
|
|
|
config NRF70_PCB_LOSS_5G_BAND1 |
|
int "PCB loss for 5 GHz band (5150 MHz - 5350 MHz, Channel-32 - Channel-68)" |
|
default 0 |
|
range 0 4 |
|
help |
|
Specifies PCB loss from the antenna connector to the RF pin. |
|
The values are in dB scale in steps of 1dB and range of 0-4dB. |
|
The loss is considered in the RX path only. |
|
|
|
config NRF70_PCB_LOSS_5G_BAND2 |
|
int "PCB loss for 5 GHz band (5470 MHz - 5730 MHz, Channel-96 - Channel-144)" |
|
default 0 |
|
range 0 4 |
|
help |
|
Specifies PCB loss from the antenna connector to the RF pin. |
|
The values are in dB scale in steps of 1dB and range of 0-4dB. |
|
The loss is considered in the RX path only. |
|
|
|
config NRF70_PCB_LOSS_5G_BAND3 |
|
int "PCB loss for 5 GHz band (5730 MHz - 5895 MHz, Channel-149 - Channel-177)" |
|
default 0 |
|
range 0 4 |
|
help |
|
Specifies PCB loss from the antenna connector to the RF pin. |
|
The values are in dB scale in steps of 1dB and range of 0-4dB. |
|
The loss is considered in the RX path only. |
|
|
|
config NRF70_ANT_GAIN_2G |
|
int "Antenna gain for 2.4 GHz band" |
|
default 0 |
|
range 0 6 |
|
|
|
config NRF70_ANT_GAIN_5G_BAND1 |
|
int "Antenna gain for 5 GHz band (5150 MHz - 5350 MHz)" |
|
default 0 |
|
range 0 6 |
|
|
|
config NRF70_ANT_GAIN_5G_BAND2 |
|
int "Antenna gain for 5 GHz band (5470 MHz - 5730 MHz)" |
|
default 0 |
|
range 0 6 |
|
|
|
config NRF70_ANT_GAIN_5G_BAND3 |
|
int "Antenna gain for 5 GHz band (5730 MHz - 5895 MHz)" |
|
default 0 |
|
range 0 6 |
|
|
|
config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_DSSS |
|
int "DSSS Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_DSSS |
|
int "DSSS Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-1 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of UNII-1 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-1 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of UNII-1 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-2A frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of UNII-2A frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-2A frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of UNII-2A frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-2C frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of UNII-2C frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-2C frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of UNII-2C frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-3 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of UNII-3 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-3 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of UNII-3 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-4 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for lower edge of UNII-4 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HT |
|
int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-4 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
config NRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HE |
|
int "HE Transmit power backoff (in dB) for upper edge of UNII-4 frequency band" |
|
default 0 |
|
range 0 10 |
|
|
|
# Performance fine tuning options |
|
|
|
config NRF70_RX_NUM_BUFS |
|
int "Number of RX buffers" |
|
default 48 |
|
|
|
config NRF70_MAX_TX_AGGREGATION |
|
int "Maximum number of TX packets to aggregate" |
|
default 12 |
|
|
|
config NRF70_MAX_TX_TOKENS |
|
int "Maximum number of TX tokens" |
|
range 5 12 if !NRF70_RADIO_TEST |
|
default 10 |
|
|
|
config NRF70_TX_MAX_DATA_SIZE |
|
int "Maximum size of TX data" |
|
default 1600 |
|
|
|
config NRF70_RX_MAX_DATA_SIZE |
|
int "Maximum size of RX data" |
|
default 1600 |
|
|
|
config NRF70_TX_DONE_WQ_ENABLED |
|
bool "TX done workqueue (impacts performance negatively)" |
|
|
|
config NRF70_RX_WQ_ENABLED |
|
bool "RX workqueue" |
|
|
|
# Use for IRQ processing (TODO: using for BH processing causes issues) |
|
config NUM_METAIRQ_PRIORITIES |
|
default 1 |
|
|
|
config NRF70_IRQ_WQ_PRIORITY |
|
int "Priority of the workqueue for handling IRQs" |
|
default -15 |
|
|
|
config NRF70_BH_WQ_PRIORITY |
|
int "Priority of the workqueue for handling bottom half" |
|
default 0 |
|
|
|
config NRF70_IRQ_WQ_STACK_SIZE |
|
int "Stack size of the workqueue for handling IRQs" |
|
default 2048 |
|
|
|
config NRF70_BH_WQ_STACK_SIZE |
|
int "Stack size of the workqueue for handling bottom half" |
|
default 2048 |
|
|
|
if NRF70_TX_DONE_WQ_ENABLED |
|
config NRF70_TX_DONE_WQ_PRIORITY |
|
int "Priority of the workqueue for handling TX done" |
|
default 0 |
|
|
|
config NRF70_TX_DONE_WQ_STACK_SIZE |
|
int "Stack size of the workqueue for handling TX done" |
|
default 2048 |
|
endif # NRF70_TX_DONE_WQ_ENABLED |
|
if NRF70_RX_WQ_ENABLED |
|
config NRF70_RX_WQ_PRIORITY |
|
int "Priority of the workqueue for handling RX" |
|
default 0 |
|
|
|
config NRF70_RX_WQ_STACK_SIZE |
|
int "Stack size of the workqueue for handling RX" |
|
default 2048 |
|
endif # NRF70_RX_WQ_ENABLED |
|
|
|
if NRF_WIFI_LOW_POWER |
|
config NRF70_RPU_PS_IDLE_TIMEOUT_MS |
|
int "RPU power save idle timeout in milliseconds" |
|
default 10 |
|
|
|
config NRF70_RPU_EXTEND_TWT_SP |
|
bool "extending TWT service period" |
|
help |
|
In case frames accepted before beginning of SP are not |
|
transmitted before the SP completes then typically they are |
|
dropped to conform to SP window as per specification i.e., no |
|
transmission outside SP window. |
|
|
|
This feature mitigates the frame loss by transmitting even after SP |
|
completion by using standard contention mechanism which is allowed |
|
in specification but not recommended. As the device is actively transmitting |
|
beyond SP, the power consumption increases depending on the amount |
|
of traffic available at the start of SP. |
|
|
|
Please note that if a frame is sent after SP starts it will be queued and this |
|
mechanism is not used. |
|
endif # NRF_WIFI_LOW_POWER |
|
|
|
config WIFI_FIXED_MAC_ADDRESS |
|
string "WiFi Fixed MAC address in format XX:XX:XX:XX:XX:XX" |
|
help |
|
This overrides the MAC address read from OTP. Strictly for testing purposes only. |
|
|
|
choice |
|
prompt "Wi-Fi MAC address type" |
|
default WIFI_FIXED_MAC_ADDRESS_ENABLED if WIFI_FIXED_MAC_ADDRESS != "" |
|
default WIFI_OTP_MAC_ADDRESS |
|
help |
|
Select the type of MAC address to be used by the Wi-Fi driver |
|
|
|
config WIFI_OTP_MAC_ADDRESS |
|
bool "Use MAC address from OTP" |
|
help |
|
This option uses the MAC address stored in the OTP memory of the nRF70. |
|
|
|
config WIFI_FIXED_MAC_ADDRESS_ENABLED |
|
bool "fixed MAC address" |
|
help |
|
Enable fixed MAC address |
|
|
|
config WIFI_RANDOM_MAC_ADDRESS |
|
bool "random MAC address generation at runtime" |
|
depends on ENTROPY_GENERATOR |
|
help |
|
This option enables random MAC address generation at runtime. |
|
The random MAC address is generated using the entropy device random generator. |
|
|
|
endchoice |
|
|
|
config NRF70_RSSI_STALE_TIMEOUT_MS |
|
int "RSSI stale timeout in milliseconds" |
|
default 1000 |
|
help |
|
RSSI stale timeout is the period after which driver queries |
|
RPU to get the RSSI the value. |
|
If data is active (e.g. ping), driver stores the RSSI value from |
|
the received frames and provides this stored information |
|
to wpa_supplicant. In this case a higher value will be suitable |
|
as stored RSSI value at driver will be updated regularly. |
|
If data is not active or after the stale timeout duration, |
|
driver queries the RPU to get the RSSI value |
|
and provides it to wpa_supplicant. The value should be set to lower |
|
value as driver does not store it and requires RPU to provide the |
|
info. |
|
|
|
if NETWORKING |
|
# Finetune defaults for certain system components used by the driver |
|
config SYSTEM_WORKQUEUE_STACK_SIZE |
|
default 4096 |
|
|
|
config NET_TX_STACK_SIZE |
|
default 4096 |
|
|
|
config NET_RX_STACK_SIZE |
|
default 4096 |
|
|
|
config NET_TC_TX_COUNT |
|
default 1 |
|
|
|
endif # NETWORKING |
|
|
|
config MAIN_STACK_SIZE |
|
default 4096 |
|
|
|
config SHELL_STACK_SIZE |
|
default 4096 |
|
|
|
# Override the Wi-Fi subsytems WIFI_MGMT_SCAN_SSID_FILT_MAX parameter, |
|
# since we support a maximum of 2 SSIDs for scan result filtering. |
|
config WIFI_MGMT_SCAN_SSID_FILT_MAX |
|
default 2 |
|
|
|
config NRF_WIFI_SCAN_MAX_BSS_CNT |
|
int "Maximum number of scan results to return." |
|
default 0 |
|
range 0 65535 |
|
help |
|
Maximum number of scan results to return. 0 represents unlimited number of BSSes. |
|
|
|
config NRF_WIFI_BEAMFORMING |
|
bool "Wi-Fi beamforming. Enabling beamforming can provide slight improvement in performance where as disabling it can provide better power saving in low network activity applications" |
|
default y |
|
|
|
config WIFI_NRF70_SCAN_TIMEOUT_S |
|
int "Scan timeout in seconds" |
|
default 30 |
|
|
|
menu "nRF Wi-Fi operation band(s)" |
|
visible if !NRF70_2_4G_ONLY |
|
|
|
config NRF_WIFI_2G_BAND |
|
bool "Set operation band to 2.4GHz" |
|
default y if NRF70_2_4G_ONLY |
|
|
|
config NRF_WIFI_5G_BAND |
|
bool "Set operation band to 5GHz" |
|
depends on !NRF70_2_4G_ONLY |
|
|
|
config NRF_WIFI_OP_BAND |
|
int "Options to set operation band" |
|
default 1 if NRF_WIFI_2G_BAND |
|
default 2 if NRF_WIFI_5G_BAND |
|
default 3 |
|
help |
|
Set this option to select frequency band |
|
1 - 2.4GHz |
|
2 - 5GHz |
|
3 - All ( 2.4GHz and 5GHz ) |
|
endmenu |
|
|
|
config NRF_WIFI_IFACE_MTU |
|
int "MTU for Wi-Fi interface" |
|
range 576 2304 if NET_IPV4 |
|
range 1280 2304 if NET_IPV6 |
|
default 1500 |
|
|
|
config WIFI_NRF70_SKIP_LOCAL_ADMIN_MAC |
|
bool "Suppress networks with non-individual MAC address as BSSID in the scan results" |
|
help |
|
Wi-Fi access points use locally administered MAC address to manage |
|
multiple virtual interfaces, for geo-location usecase these networks |
|
from the virtual interfaces do not help in anyway as they are co-located with the primary interface |
|
that has globally unique MAC address. |
|
|
|
So, to save resources, this option drops such networks from the scan results. |
|
|
|
config WIFI_NRF70_SCAN_DISABLE_DFS_CHANNELS |
|
bool "Disables DFS channels in scan operation" |
|
help |
|
This option disables inclusion of DFS channels in scan operation. |
|
This is useful to reduce the scan time, as DFS channels are seldom used. |
|
|
|
config NET_INTERFACE_NAME_LEN |
|
# nordic_wlanN |
|
default 15 |
|
|
|
config NRF_WIFI_AP_DEAD_DETECT_TIMEOUT |
|
int "Access point dead detection timeout in seconds" |
|
range 1 30 |
|
default 20 |
|
help |
|
The number of seconds after which AP is declared dead if no beacons |
|
are received from the AP. Used to detect AP silently going down e.g., power off. |
|
|
|
config NRF_WIFI_RPU_RECOVERY |
|
bool "RPU recovery mechanism" |
|
depends on NRF_WIFI_LOW_POWER |
|
select EXPERIMENTAL |
|
help |
|
Enable RPU recovery mechanism to recover from RPU (nRF70) hang. |
|
This feature performs an interface reset (down and up) which triggers |
|
a RPU coldboot. Application's network connection will be lost during |
|
the recovery process and it is application's responsibility to |
|
re-establish the network connection. |
|
|
|
if NRF_WIFI_RPU_RECOVERY |
|
|
|
config NRF_WIFI_RPU_RECOVERY_PROPAGATION_DELAY_MS |
|
int "RPU recovery propagation delay in milliseconds" |
|
default 2000 |
|
help |
|
Propagation delay in milliseconds to wait after RPU is powered down |
|
before powering it up. This delay is required to ensure that the recovery |
|
is propagted to all the applications and stack and have enough time to |
|
clean up the resources. |
|
|
|
config NET_MGMT_EVENT_QUEUE_SIZE |
|
# Doing interface down and up even with delay puts a lot of events in the queue |
|
default 16 |
|
|
|
config NRF_WIFI_RPU_RECOVERY_PROPAGATION_DELAY_MS |
|
int "RPU recovery propagation delay in milliseconds" |
|
default 10 |
|
help |
|
Propagation delay in milliseconds to wait after RPU is powered down |
|
before powering it up. This delay is required to ensure that the recovery |
|
is propagated to all the applications and stack and have enough time to |
|
clean up the resources. |
|
|
|
config NRF_WIFI_RPU_RECOVERY_PS_ACTIVE_TIMEOUT_MS |
|
int "RPU recovery power save active timeout in milliseconds" |
|
default 10000 |
|
help |
|
Power save active timeout in milliseconds after which RPU recovery |
|
mechanism will be triggered. This timeout is used to ensure that the |
|
RPU attempts to enter power save mode in case of inactivity. |
|
|
|
config NRF_WIFI_RPU_MIN_TIME_TO_ENTER_SLEEP_MS |
|
int "Minimum idle time to enter sleep in milliseconds" |
|
range 100 5000 |
|
default 1000 |
|
help |
|
Minimum time the host should de-assert WAKEUP_NOW and let RPU enter |
|
sleep mode, assuming there is no activity. |
|
|
|
config NRF_WIFI_RPU_RECOVERY_DEBUG |
|
bool "RPU recovery debug logs" |
|
help |
|
Enable RPU recovery debug logs to help debug RPU recovery mechanism. |
|
|
|
config NRF_WIFI_RPU_RECOVERY_QUIET_PERIOD_MS |
|
int "RPU recovery quiet period in milliseconds" |
|
default 5000 |
|
help |
|
Quiet period in milliseconds after RPU recovery is triggered. During |
|
this period, no new RPU recovery will be triggered. |
|
|
|
config NRF_WIFI_RPU_RECOVERY_MAX_RETRIES |
|
int "Maximum number of consecutive RPU recovery retries, 0 to disable" |
|
default 0 |
|
help |
|
Maximum number of consecutive RPU recovery retries before giving up |
|
and resetting the system. Set to 0 to keep retrying indefinitely. |
|
|
|
config NRF_WIFI_RPU_RECOVERY_RETRY_WINDOW_S |
|
int "RPU recovery retry window in seconds" |
|
default 900 |
|
help |
|
Window in seconds during which the number of consecutive RPU recovery |
|
retries are counted. If the number of consecutive RPU recovery retries |
|
exceeds NRF_WIFI_RPU_RECOVERY_MAX_RETRIES within this window, the system |
|
will be reset. |
|
endif # NRF_WIFI_RPU_RECOVERY |
|
|
|
config NRF_WIFI_FEAT_WMM |
|
bool "WMM/QoS support" |
|
default y |
|
help |
|
This option controls disable/enable of the WMM(Wireless Multi-Media) feature. |
|
|
|
choice NRF_WIFI_PS_DATA_RETRIEVAL_MECHANISM |
|
prompt "Power save data retrieval mechanism" |
|
default NRF_WIFI_PS_POLL_BASED_RETRIEVAL |
|
help |
|
Select the mechanism to retrieve buffered data from AP. |
|
|
|
config NRF_WIFI_PS_POLL_BASED_RETRIEVAL |
|
bool "PS-Poll frame based mechanism to retrieve buffered data from AP" |
|
help |
|
When AP notifies about availability of buffered data, the STA stays in power save |
|
and retrieves the frames one-by-one, this conserved more power but adds latency |
|
to the traffic. Ideal for minimum number of frames. |
|
|
|
config NRF_WIFI_QOS_NULL_BASED_RETRIEVAL |
|
bool "QoS null frame based mechanism to retrieve buffered data from AP" |
|
help |
|
When AP notifies about availability of buffered data, the STA comes out of |
|
power save and then AP can deliver all buffered frames without any additional |
|
overhead or latency, but STA enters power save after a delay costing more power |
|
depending on the delay. Ideal for heavy buffered traffic. |
|
|
|
endchoice |
|
|
|
endif # WIFI_NRF70
|
|
|