820 lines
25 KiB
Plaintext
820 lines
25 KiB
Plaintext
# 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"
|
||
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 use cases 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 1 dB and range of 0-4 dB.
|
||
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 1 dB and range of 0-4 dB.
|
||
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 1 dB and range of 0-4 dB.
|
||
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 1 dB and range of 0-4 dB.
|
||
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 the beginning of SP are not
|
||
transmitted before the SP completes, then typically they are
|
||
dropped to conform to the SP window as per the specification that is, no
|
||
transmission outside SP window.
|
||
This feature mitigates frame loss by transmitting even after SP
|
||
completion by using a 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 the SP.
|
||
Note that if a frame is sent after the SP starts, it will be queued, and this
|
||
mechanism is not used.
|
||
endif # NRF_WIFI_LOW_POWER
|
||
|
||
config WIFI_FIXED_MAC_ADDRESS
|
||
string "Wi-Fi Fixed MAC address in format XX:XX:XX:XX:XX:XX"
|
||
help
|
||
This option overrides the MAC address read from OTP. It is 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 the driver queries
|
||
RPU to get the RSSI value.
|
||
If data is active (for example, ping), the 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 the stored RSSI value at the driver will be updated regularly.
|
||
If data is not active or after the stale timeout duration,
|
||
the driver queries the RPU to get the RSSI value
|
||
and provides it to wpa_supplicant. The value should be set to a lower
|
||
value as the driver does not store it and requires RPU to provide the
|
||
information.
|
||
|
||
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 subsystems 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 a slight improvement in performance, whereas disabling it can provide better power savings 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 addresses as BSSID in the scan results"
|
||
help
|
||
Wi-Fi access points use locally administered MAC addresses to manage
|
||
multiple virtual interfaces. For geo-location use cases, these networks
|
||
from the virtual interfaces do not help in any way as they are co-located with the primary interface
|
||
that has a 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 the DFS channels in the 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 the AP is declared dead if no beacons
|
||
are received from the AP. This is used to detect AP silently going down, for example, due to power off.
|
||
|
||
config NRF_WIFI_RPU_RECOVERY
|
||
bool "RPU recovery mechanism"
|
||
# Relies on power-save mode, so, LPM is needed and AP mode is not supported
|
||
depends on NRF_WIFI_LOW_POWER
|
||
depends on !NRF70_AP_MODE
|
||
default y
|
||
select EXPERIMENTAL
|
||
help
|
||
Enable the RPU recovery mechanism to recover from an RPU (nRF70) hang.
|
||
This feature performs an interface reset (down and up), which triggers
|
||
a RPU cold boot. The application's network connection will be lost during
|
||
the recovery process, and it is the 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 propagated 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 the 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 has 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 50000
|
||
help
|
||
Power save active timeout in milliseconds, after which the 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 the 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 it 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.
|
||
|
||
config NRF_WIFI_RPU_RECOVERY_PS_STATE_DEBUG
|
||
bool "RPU recovery power save state debug logs"
|
||
help
|
||
Enable RPU recovery power save state debug logs to help debug the RPU recovery mechanism.
|
||
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 the AP notifies about the availability of buffered data, the STA stays in power save
|
||
and retrieves the frames one-by-one. This conserves more power but adds latency
|
||
to the traffic. It is 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 the AP notifies about the 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. It is ideal for heavy buffered traffic.
|
||
endchoice
|
||
|
||
config NRF_WIFI_MGMT_BUFF_OFFLOAD
|
||
bool "Management buffer offload"
|
||
default y
|
||
help
|
||
This option offloads the refilling of management buffers to the UMAC, saving the host
|
||
from having to exchange commands and events for every management packet even if it is
|
||
consumed by UMAC.
|
||
|
||
config NRF_WIFI_FEAT_KEEPALIVE
|
||
bool "Wi-Fi keepalive feature for connection maintenance"
|
||
depends on NRF70_STA_MODE
|
||
help
|
||
Enable the Wi-Fi keepalive feature to keep the connection alive by sending
|
||
keepalive packets to the AP. This feature is primarily intended to interoperate with APs
|
||
that disconnect idle clients without any explicit checks. It slightly increases
|
||
power consumption.
|
||
|
||
if NRF_WIFI_FEAT_KEEPALIVE
|
||
config NRF_WIFI_KEEPALIVE_PERIOD_S
|
||
int "Keepalive period in seconds"
|
||
range 30 3600
|
||
default 60
|
||
help
|
||
Keepalive period in seconds to send keepalive packets to the AP.
|
||
endif
|
||
|
||
choice NRF_WIFI_PS_EXIT_STRATEGY
|
||
prompt "Power save exit strategy"
|
||
default NRF_WIFI_PS_INT_PS
|
||
help
|
||
Select the power save exit strategy to retrieve buffered data from AP.
|
||
|
||
config NRF_WIFI_PS_EXIT_EVERY_TIM
|
||
bool "Exit power save every time to retrieve buffered data from AP"
|
||
help
|
||
Exit power save every time to retrieve buffered data from AP. Entering back to
|
||
power save mode might take some time and power.
|
||
|
||
config NRF_WIFI_PS_INT_PS
|
||
bool "Exit power save based on an intelligent algorithm"
|
||
help
|
||
Exit power save based on an intelligent algorithm to retrieve buffered data from the AP.
|
||
The algorithm tracks the buffered data at the AP and then dynamically decides
|
||
whether to stay in PS (for a lower amount of buffered data) or exit PS (for a higher
|
||
amount of buffered data).
|
||
endchoice
|
||
|
||
config NRF70_PASSIVE_SCAN_ONLY
|
||
bool "Forced Passive scan"
|
||
depends on NRF70_SCAN_ONLY
|
||
help
|
||
Enable this configuration to force passive scan on all channels.
|
||
This will override application-specified scan type.
|
||
endif # WIFI_NRF70
|