| # 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 |