1# Nordic Wi-Fi driver for nRF70 series SoCs 2# 3# Copyright (c) 2024 Nordic Semiconductor 4# 5# SPDX-License-Identifier: Apache-2.0 6# 7 8menuconfig WIFI_NRF70 9 bool "nRF70 driver" 10 select NET_L2_WIFI_MGMT if NETWORKING 11 select NET_L2_ETHERNET_MGMT if NETWORKING && NET_L2_ETHERNET 12 select WIFI_USE_NATIVE_NETWORKING if NETWORKING 13 select EXPERIMENTAL if !SOC_SERIES_NRF53X && !SOC_SERIES_NRF91X 14 select NRF70_BUSLIB 15 default y 16 depends on \ 17 DT_HAS_NORDIC_NRF7002_SPI_ENABLED || DT_HAS_NORDIC_NRF7002_QSPI_ENABLED || \ 18 DT_HAS_NORDIC_NRF7001_SPI_ENABLED || DT_HAS_NORDIC_NRF7001_QSPI_ENABLED || \ 19 DT_HAS_NORDIC_NRF7000_SPI_ENABLED || DT_HAS_NORDIC_NRF7000_QSPI_ENABLED 20 help 21 Nordic Wi-Fi Driver 22 23if WIFI_NRF70 24# Hidden symbols for internal use 25config WIFI_NRF7002 26 bool 27 default y if DT_HAS_NORDIC_NRF7002_SPI_ENABLED || DT_HAS_NORDIC_NRF7002_QSPI_ENABLED 28 29config WIFI_NRF7001 30 bool 31 default y if DT_HAS_NORDIC_NRF7001_SPI_ENABLED || DT_HAS_NORDIC_NRF7001_QSPI_ENABLED 32 33config WIFI_NRF7000 34 bool 35 default y if DT_HAS_NORDIC_NRF7000_SPI_ENABLED || DT_HAS_NORDIC_NRF7000_QSPI_ENABLED 36 37config NRF70_QSPI_LOW_POWER 38 bool "low power mode in QSPI" 39 default y if NRF_WIFI_LOW_POWER 40 41choice NRF70_OPER_MODES 42 bool "nRF70 operating modes" 43 default NRF70_SYSTEM_MODE if !WIFI_NRF7000 44 default NRF70_SCAN_ONLY if WIFI_NRF7000 45 help 46 Select the operating mode of the nRF70 driver 47 48config NRF70_SCAN_ONLY 49 bool "nRF70 scan only mode" 50 help 51 Select this option to enable scan only mode of the nRF70 driver 52 53config NRF70_SYSTEM_MODE 54 bool "System mode of the nRF70 driver" 55 help 56 Select this option to enable system mode of the nRF70 driver 57 58config NRF70_RADIO_TEST 59 bool "Radio test mode of the nRF70 driver" 60 61config NRF70_OFFLOADED_RAW_TX 62 bool "Offloaded raw TX mode of the nRF70 driver" 63 64endchoice 65 66config NET_L2_ETHERNET 67 default y if (!NRF70_RADIO_TEST && !NRF70_OFFLOADED_RAW_TX) 68 69if NRF70_SYSTEM_MODE 70config NRF70_STA_MODE 71 bool "nRF70 STA mode" 72 default y 73 depends on WIFI_NRF7002 || WIFI_NRF7001 74 select WIFI_NM_WPA_SUPPLICANT 75 select NRF70_DATA_TX 76 help 77 Select this option to enable STA mode of the nRF70 driver. 78config NRF70_AP_MODE 79 bool "Access point mode" 80 depends on WIFI_NRF7002 || WIFI_NRF7001 81 select NRF70_DATA_TX 82 depends on WIFI_NM_WPA_SUPPLICANT_AP 83 default y if WIFI_NM_WPA_SUPPLICANT_AP 84 85config NRF70_P2P_MODE 86 bool "P2P support in driver" 87 88config NRF70_SYSTEM_WITH_RAW_MODES 89 bool 90 default y if (NRF70_RAW_DATA_TX || NRF70_RAW_DATA_RX || NRF70_PROMISC_DATA_RX) 91 depends on WIFI_NRF7002 || WIFI_NRF7001 92 help 93 Select this option to enable system mode of the nRF70 driver with raw modes. 94 95config NRF70_RAW_DATA_TX 96 bool "RAW TX data path in the driver" 97 select EXPERIMENTAL 98 99config NRF70_RAW_DATA_RX 100 bool "RAW RX sniffer operation in the driver" 101 select EXPERIMENTAL 102 103config NRF70_PROMISC_DATA_RX 104 bool "Promiscuous RX sniffer operation in the driver" 105 select WIFI_NM_WPA_SUPPLICANT 106 select EXPERIMENTAL 107 select NET_PROMISCUOUS_MODE 108 109config NRF70_DATA_TX 110 bool 111endif # NRF70_SYSTEM_MODE 112 113config NRF_WIFI_IF_AUTO_START 114 bool "Wi-Fi interface auto start on boot" 115 default y 116 117choice NRF_WIFI_FW_BLOB_HANDLING 118 prompt "nRF70 Firmware blob handling" 119 depends on !BUILD_ONLY_NO_BLOBS 120 default NRF_WIFI_PATCHES_BUILTIN 121 122config NRF_WIFI_PATCHES_BUILTIN 123 bool "Store nRF70 FW patches as part of the driver" 124 help 125 Select this option to store nRF70 FW patches as part of the driver. 126 This option impacts the code memory footprint of the driver. 127 128config NRF_WIFI_PATCHES_EXTERNAL 129 bool "Load nRF70 FW patches from external binary" 130 help 131 Select this option to load nRF70 FW patches from an external tooling. 132endchoice 133 134config NRF_WIFI_LOW_POWER 135 bool "Low power mode in nRF Wi-Fi chipsets" 136 default y 137 138config NRF70_TCP_IP_CHECKSUM_OFFLOAD 139 bool "TCP/IP checksum offload" 140 default y 141 142config NRF70_REG_DOMAIN 143 string "The ISO/IEC alpha2 country code for the country in which this device is currently operating. Default 00 (World regulatory)" 144 # 00 is used for World regulatory 145 default "00" 146 147# Making calls to RPU from net_mgmt callbacks. 148# 149# If WPA supplicant is enabled, then don't override as it has higher 150# stack requirements. 151config NET_MGMT_EVENT_STACK_SIZE 152 default 2048 if !WIFI_NM_WPA_SUPPLICANT 153 default 4600 154 155config NRF70_LOG_VERBOSE 156 bool "Maintains the verbosity of information in logs" 157 default y 158 159module = WIFI_NRF70 160module-dep = LOG 161module-str = Log level for Wi-Fi nRF70 driver 162module-help = Sets log level for Wi-Fi nRF70 driver 163source "subsys/logging/Kconfig.template.log_config" 164 165config WIFI_NRF70_LOG_LEVEL 166 # Enable error by default 167 default 1 168 169config NRF70_2_4G_ONLY 170 def_bool y if WIFI_NRF7001 171 172# Wi-Fi and SR Coexistence Hardware configuration. 173config NRF70_SR_COEX 174 bool "Wi-Fi and SR coexistence support" 175 176config NRF70_SR_COEX_RF_SWITCH 177 bool "GPIO configuration to control SR side RF switch position" 178 depends on $(dt_node_has_prop,nrf70, srrf-switch-gpios) 179 depends on NRF70_SR_COEX 180 help 181 Select this option to enable GPIO configuration to control SR side RF switch position. 182 If this GPIO is asserted (1), the SR side RF switch is connected to the Wi-Fi side (shared antenna). 183 If this GPIO is de-asserted (0), the SR side RF switch is connected to the SR side (separate antenna). 184 185config NRF70_WORKQ_STACK_SIZE 186 int "Stack size for workqueue" 187 default 4096 188 189config NRF70_WORKQ_MAX_ITEMS 190 int "Maximum work items for all workqueues" 191 default 100 192 193config NRF70_MAX_TX_PENDING_QLEN 194 int "Maximum number of pending TX packets" 195 default 18 196 197config NRF70_UTIL 198 depends on SHELL 199 bool "Utility shell in nRF70 driver" 200 201config NRF70_QSPI_LOW_POWER 202 bool "low power mode in QSPI" 203 default y if NRF_WIFI_LOW_POWER 204 205config NRF70_PCB_LOSS_2G 206 int "PCB loss for 2.4 GHz band" 207 default 0 208 range 0 4 209 help 210 Specifies PCB loss from the antenna connector to the RF pin. 211 The values are in dB scale in steps of 1 dB and range of 0-4 dB. 212 The loss is considered in the RX path only. 213 214config NRF70_PCB_LOSS_5G_BAND1 215 int "PCB loss for 5 GHz band (5150 MHz - 5350 MHz, Channel-32 - Channel-68)" 216 default 0 217 range 0 4 218 help 219 Specifies PCB loss from the antenna connector to the RF pin. 220 The values are in dB scale in steps of 1 dB and range of 0-4 dB. 221 The loss is considered in the RX path only. 222 223config NRF70_PCB_LOSS_5G_BAND2 224 int "PCB loss for 5 GHz band (5470 MHz - 5730 MHz, Channel-96 - Channel-144)" 225 default 0 226 range 0 4 227 help 228 Specifies PCB loss from the antenna connector to the RF pin. 229 The values are in dB scale in steps of 1 dB and range of 0-4 dB. 230 The loss is considered in the RX path only. 231 232config NRF70_PCB_LOSS_5G_BAND3 233 int "PCB loss for 5 GHz band (5730 MHz - 5895 MHz, Channel-149 - Channel-177)" 234 default 0 235 range 0 4 236 help 237 Specifies PCB loss from the antenna connector to the RF pin. 238 The values are in dB scale in steps of 1 dB and range of 0-4 dB. 239 The loss is considered in the RX path only. 240 241config NRF70_ANT_GAIN_2G 242 int "Antenna gain for 2.4 GHz band" 243 default 0 244 range 0 6 245 246config NRF70_ANT_GAIN_5G_BAND1 247 int "Antenna gain for 5 GHz band (5150 MHz - 5350 MHz)" 248 default 0 249 range 0 6 250 251config NRF70_ANT_GAIN_5G_BAND2 252 int "Antenna gain for 5 GHz band (5470 MHz - 5730 MHz)" 253 default 0 254 range 0 6 255 256config NRF70_ANT_GAIN_5G_BAND3 257 int "Antenna gain for 5 GHz band (5730 MHz - 5895 MHz)" 258 default 0 259 range 0 6 260 261config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_DSSS 262 int "DSSS Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" 263 default 0 264 range 0 10 265 266config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_HT 267 int "HT/VHT Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" 268 default 0 269 range 0 10 270 271config NRF70_BAND_2G_LOWER_EDGE_BACKOFF_HE 272 int "HE Transmit power backoff (in dB) for lower edge of 2.4 GHz frequency band" 273 default 0 274 range 0 10 275 276config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_DSSS 277 int "DSSS Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" 278 default 0 279 range 0 10 280 281config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_HT 282 int "HT/VHT Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" 283 default 0 284 range 0 10 285 286config NRF70_BAND_2G_UPPER_EDGE_BACKOFF_HE 287 int "HE Transmit power backoff (in dB) for upper edge of 2.4 GHz frequency band" 288 default 0 289 range 0 10 290 291config NRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HT 292 int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-1 frequency band" 293 default 0 294 range 0 10 295 296config NRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HE 297 int "HE Transmit power backoff (in dB) for lower edge of UNII-1 frequency band" 298 default 0 299 range 0 10 300 301config NRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HT 302 int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-1 frequency band" 303 default 0 304 range 0 10 305 306config NRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HE 307 int "HE Transmit power backoff (in dB) for upper edge of UNII-1 frequency band" 308 default 0 309 range 0 10 310 311config NRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HT 312 int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-2A frequency band" 313 default 0 314 range 0 10 315 316config NRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HE 317 int "HE Transmit power backoff (in dB) for lower edge of UNII-2A frequency band" 318 default 0 319 range 0 10 320 321config NRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HT 322 int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-2A frequency band" 323 default 0 324 range 0 10 325 326config NRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HE 327 int "HE Transmit power backoff (in dB) for upper edge of UNII-2A frequency band" 328 default 0 329 range 0 10 330 331config NRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HT 332 int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-2C frequency band" 333 default 0 334 range 0 10 335 336config NRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HE 337 int "HE Transmit power backoff (in dB) for lower edge of UNII-2C frequency band" 338 default 0 339 range 0 10 340 341config NRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HT 342 int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-2C frequency band" 343 default 0 344 range 0 10 345 346config NRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HE 347 int "HE Transmit power backoff (in dB) for upper edge of UNII-2C frequency band" 348 default 0 349 range 0 10 350 351config NRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HT 352 int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-3 frequency band" 353 default 0 354 range 0 10 355 356config NRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HE 357 int "HE Transmit power backoff (in dB) for lower edge of UNII-3 frequency band" 358 default 0 359 range 0 10 360 361config NRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HT 362 int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-3 frequency band" 363 default 0 364 range 0 10 365 366config NRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HE 367 int "HE Transmit power backoff (in dB) for upper edge of UNII-3 frequency band" 368 default 0 369 range 0 10 370 371config NRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HT 372 int "HT/VHT Transmit power backoff (in dB) for lower edge of UNII-4 frequency band" 373 default 0 374 range 0 10 375 376config NRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HE 377 int "HE Transmit power backoff (in dB) for lower edge of UNII-4 frequency band" 378 default 0 379 range 0 10 380 381config NRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HT 382 int "HT/VHT Transmit power backoff (in dB) for upper edge of UNII-4 frequency band" 383 default 0 384 range 0 10 385 386config NRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HE 387 int "HE Transmit power backoff (in dB) for upper edge of UNII-4 frequency band" 388 default 0 389 range 0 10 390 391# Performance fine tuning options 392 393config NRF70_RX_NUM_BUFS 394 int "Number of RX buffers" 395 default 48 396 397config NRF70_MAX_TX_AGGREGATION 398 int "Maximum number of TX packets to aggregate" 399 default 12 400 401config NRF70_MAX_TX_TOKENS 402 int "Maximum number of TX tokens" 403 range 5 12 if !NRF70_RADIO_TEST 404 default 10 405 406config NRF70_TX_MAX_DATA_SIZE 407 int "Maximum size of TX data" 408 default 1600 409 410config NRF70_RX_MAX_DATA_SIZE 411 int "Maximum size of RX data" 412 default 1600 413 414config NRF70_TX_DONE_WQ_ENABLED 415 bool "TX done workqueue (impacts performance negatively)" 416 417config NRF70_RX_WQ_ENABLED 418 bool "RX workqueue" 419 420# Use for IRQ processing (TODO: using for BH processing causes issues) 421config NUM_METAIRQ_PRIORITIES 422 default 1 423 424config NRF70_IRQ_WQ_PRIORITY 425 int "Priority of the workqueue for handling IRQs" 426 default -15 427 428config NRF70_BH_WQ_PRIORITY 429 int "Priority of the workqueue for handling bottom half" 430 default 0 431 432config NRF70_IRQ_WQ_STACK_SIZE 433 int "Stack size of the workqueue for handling IRQs" 434 default 2048 435 436config NRF70_BH_WQ_STACK_SIZE 437 int "Stack size of the workqueue for handling bottom half" 438 default 2048 439 440if NRF70_TX_DONE_WQ_ENABLED 441config NRF70_TX_DONE_WQ_PRIORITY 442 int "Priority of the workqueue for handling TX done" 443 default 0 444 445config NRF70_TX_DONE_WQ_STACK_SIZE 446 int "Stack size of the workqueue for handling TX done" 447 default 2048 448endif # NRF70_TX_DONE_WQ_ENABLED 449if NRF70_RX_WQ_ENABLED 450config NRF70_RX_WQ_PRIORITY 451 int "Priority of the workqueue for handling RX" 452 default 0 453 454config NRF70_RX_WQ_STACK_SIZE 455 int "Stack size of the workqueue for handling RX" 456 default 2048 457endif # NRF70_RX_WQ_ENABLED 458 459if NRF_WIFI_LOW_POWER 460config NRF70_RPU_PS_IDLE_TIMEOUT_MS 461 int "RPU power save idle timeout in milliseconds" 462 default 10 463 464config NRF70_RPU_EXTEND_TWT_SP 465 bool "extending TWT service period" 466 help 467 In case frames accepted before the beginning of SP are not 468 transmitted before the SP completes, then typically they are 469 dropped to conform to the SP window as per the specification that is, no 470 transmission outside SP window. 471 This feature mitigates frame loss by transmitting even after SP 472 completion by using a standard contention mechanism, which is allowed 473 in specification but not recommended. As the device is actively transmitting 474 beyond SP, the power consumption increases depending on the amount 475 of traffic available at the start of the SP. 476 Note that if a frame is sent after the SP starts, it will be queued, and this 477 mechanism is not used. 478endif # NRF_WIFI_LOW_POWER 479 480config WIFI_FIXED_MAC_ADDRESS 481 string "Wi-Fi Fixed MAC address in format XX:XX:XX:XX:XX:XX" 482 help 483 This option overrides the MAC address read from OTP. It is strictly for testing purposes only. 484 485choice 486 prompt "Wi-Fi MAC address type" 487 default WIFI_FIXED_MAC_ADDRESS_ENABLED if WIFI_FIXED_MAC_ADDRESS != "" 488 default WIFI_OTP_MAC_ADDRESS 489 help 490 Select the type of MAC address to be used by the Wi-Fi driver 491 492config WIFI_OTP_MAC_ADDRESS 493 bool "Use MAC address from OTP" 494 help 495 This option uses the MAC address stored in the OTP memory of the nRF70. 496 497config WIFI_FIXED_MAC_ADDRESS_ENABLED 498 bool "fixed MAC address" 499 help 500 Enable fixed MAC address 501 502config WIFI_RANDOM_MAC_ADDRESS 503 bool "Random MAC address generation at runtime" 504 depends on ENTROPY_GENERATOR 505 help 506 This option enables random MAC address generation at runtime. 507 The random MAC address is generated using the entropy device random generator. 508 509endchoice 510 511config NRF70_RSSI_STALE_TIMEOUT_MS 512 int "RSSI stale timeout in milliseconds" 513 default 1000 514 help 515 RSSI stale timeout is the period after which the driver queries 516 RPU to get the RSSI value. 517 If data is active (for example, ping), the driver stores the RSSI value from 518 the received frames and provides this stored information 519 to wpa_supplicant. In this case, a higher value will be suitable 520 as the stored RSSI value at the driver will be updated regularly. 521 If data is not active or after the stale timeout duration, 522 the driver queries the RPU to get the RSSI value 523 and provides it to wpa_supplicant. The value should be set to a lower 524 value as the driver does not store it and requires RPU to provide the 525 information. 526 527config NRF_WIFI_CTRL_HEAP_SIZE 528 int "Dedicated memory pool for control plane" 529 default 20000 530 531config NRF_WIFI_DATA_HEAP_SIZE 532 int "Dedicated memory pool for data plane" 533 default 6000 if NRF70_SCAN_ONLY 534 default 110000 if !SOC_FAMILY_NORDIC_NRF 535 default 130000 536 537if NETWORKING 538# Finetune defaults for certain system components used by the driver 539 540config SYSTEM_WORKQUEUE_STACK_SIZE 541 default 4096 542 543config NET_TX_STACK_SIZE 544 default 4096 545 546config NET_RX_STACK_SIZE 547 default 4096 548 549config NET_TC_TX_COUNT 550 default 1 551 552endif # NETWORKING 553 554# nRF70 now uses variable buffers as default to optimize RAM usage. Default pool sizes are used, samples/apps can override 555# for higher performance. 556choice NET_PKT_DATA_ALLOC_TYPE 557 default NET_BUF_VARIABLE_DATA_SIZE 558endchoice 559 560config MAIN_STACK_SIZE 561 default 4096 562 563config SHELL_STACK_SIZE 564 default 4096 565 566# Override the Wi-Fi subsystems WIFI_MGMT_SCAN_SSID_FILT_MAX parameter, 567# since we support a maximum of 2 SSIDs for scan result filtering. 568config WIFI_MGMT_SCAN_SSID_FILT_MAX 569 default 2 570 571config NRF_WIFI_SCAN_MAX_BSS_CNT 572 int "Maximum number of scan results to return." 573 default 0 574 range 0 65535 575 help 576 Maximum number of scan results to return. 0 represents unlimited number of BSSes. 577 578config NRF_WIFI_BEAMFORMING 579 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" 580 default y 581 582config WIFI_NRF70_SCAN_TIMEOUT_S 583 int "Scan timeout in seconds" 584 default 30 585 586menu "nRF Wi-Fi operation band(s)" 587 visible if !NRF70_2_4G_ONLY 588 589config NRF_WIFI_2G_BAND 590 bool "Set operation band to 2.4GHz" 591 default y if NRF70_2_4G_ONLY 592 593config NRF_WIFI_5G_BAND 594 bool "Set operation band to 5GHz" 595 depends on !NRF70_2_4G_ONLY 596 597config NRF_WIFI_OP_BAND 598 int "Options to set operation band" 599 default 1 if NRF_WIFI_2G_BAND 600 default 2 if NRF_WIFI_5G_BAND 601 default 3 602 help 603 Set this option to select frequency band 604 1 - 2.4GHz 605 2 - 5GHz 606 3 - All ( 2.4GHz and 5GHz ) 607endmenu 608 609config NRF_WIFI_IFACE_MTU 610 int "MTU for Wi-Fi interface" 611 range 576 2304 if NET_IPV4 612 range 1280 2304 if NET_IPV6 613 default 1500 614 615config WIFI_NRF70_SKIP_LOCAL_ADMIN_MAC 616 bool "Suppress networks with non-individual MAC addresses as BSSID in the scan results" 617 help 618 Wi-Fi access points use locally administered MAC addresses to manage 619 multiple virtual interfaces. For geo-location use cases, these networks 620 from the virtual interfaces do not help in any way as they are co-located with the primary interface 621 that has a globally unique MAC address. 622 So, to save resources, this option drops such networks from the scan results. 623 624config WIFI_NRF70_SCAN_DISABLE_DFS_CHANNELS 625 bool "Disables DFS channels in scan operation" 626 help 627 This option disables inclusion of the DFS channels in the scan operation. 628 This is useful to reduce the scan time, as DFS channels are seldom used. 629 630config NET_INTERFACE_NAME_LEN 631 # nordic_wlanN 632 default 15 633 634config NRF_WIFI_AP_DEAD_DETECT_TIMEOUT 635 int "Access point dead detection timeout in seconds" 636 range 1 30 637 default 20 638 help 639 The number of seconds after which the AP is declared dead if no beacons 640 are received from the AP. This is used to detect AP silently going down, for example, due to power off. 641 642config NRF_WIFI_RPU_RECOVERY 643 bool "RPU recovery mechanism" 644 # Relies on power-save mode, so, LPM is needed and AP mode is not supported 645 depends on NRF_WIFI_LOW_POWER 646 depends on !NRF70_AP_MODE 647 default y 648 select EXPERIMENTAL 649 help 650 Enable the RPU recovery mechanism to recover from an RPU (nRF70) hang. 651 This feature performs an interface reset (down and up), which triggers 652 a RPU cold boot. The application's network connection will be lost during 653 the recovery process, and it is the application's responsibility to 654 re-establish the network connection. 655 656if NRF_WIFI_RPU_RECOVERY 657config NRF_WIFI_RPU_RECOVERY_PROPAGATION_DELAY_MS 658 int "RPU recovery propagation delay in milliseconds" 659 default 2000 660 help 661 Propagation delay in milliseconds to wait after RPU is powered down 662 before powering it up. This delay is required to ensure that the recovery 663 is propagated to all the applications and stack and have enough time to 664 clean up the resources. 665 666config NET_MGMT_EVENT_QUEUE_SIZE 667 # Doing interface down and up even with delay puts a lot of events in the queue 668 default 16 669 670config NRF_WIFI_RPU_RECOVERY_PS_ACTIVE_TIMEOUT_MS 671 int "RPU recovery power save active timeout in milliseconds" 672 default 50000 673 help 674 Power save active timeout in milliseconds, after which the RPU recovery 675 mechanism will be triggered. This timeout is used to ensure that the 676 RPU attempts to enter power save mode in case of inactivity. 677 678config NRF_WIFI_RPU_MIN_TIME_TO_ENTER_SLEEP_MS 679 int "Minimum idle time to enter sleep in milliseconds" 680 range 100 5000 681 default 1000 682 help 683 Minimum time the host should de-assert WAKEUP_NOW and let RPU enter 684 sleep mode, assuming there is no activity. 685 686config NRF_WIFI_RPU_RECOVERY_DEBUG 687 bool "RPU recovery debug logs" 688 help 689 Enable RPU recovery debug logs to help debug the RPU recovery mechanism. 690 691config NRF_WIFI_RPU_RECOVERY_QUIET_PERIOD_MS 692 int "RPU recovery quiet period in milliseconds" 693 default 5000 694 help 695 Quiet period in milliseconds after RPU recovery is triggered. During 696 this period, no new RPU recovery will be triggered. 697 698config NRF_WIFI_RPU_RECOVERY_MAX_RETRIES 699 int "Maximum number of consecutive RPU recovery retries, 0 to disable" 700 default 0 701 help 702 Maximum number of consecutive RPU recovery retries before giving up 703 and resetting the system. Set it to 0 to keep retrying indefinitely. 704 705config NRF_WIFI_RPU_RECOVERY_RETRY_WINDOW_S 706 int "RPU recovery retry window in seconds" 707 default 900 708 help 709 Window in seconds during which the number of consecutive RPU recovery 710 retries are counted. If the number of consecutive RPU recovery retries 711 exceeds NRF_WIFI_RPU_RECOVERY_MAX_RETRIES within this window, the system 712 will be reset. 713 714config NRF_WIFI_RPU_RECOVERY_PS_STATE_DEBUG 715 bool "RPU recovery power save state debug logs" 716 help 717 Enable RPU recovery power save state debug logs to help debug the RPU recovery mechanism. 718endif # NRF_WIFI_RPU_RECOVERY 719 720config NRF_WIFI_FEAT_WMM 721 bool "WMM/QoS support" 722 default y 723 help 724 This option controls disable/enable of the WMM (Wireless Multi-Media) feature. 725 726choice NRF_WIFI_PS_DATA_RETRIEVAL_MECHANISM 727 prompt "Power save data retrieval mechanism" 728 default NRF_WIFI_PS_POLL_BASED_RETRIEVAL 729 help 730 Select the mechanism to retrieve buffered data from AP. 731 732config NRF_WIFI_PS_POLL_BASED_RETRIEVAL 733 bool "PS-Poll frame-based mechanism to retrieve buffered data from AP" 734 help 735 When the AP notifies about the availability of buffered data, the STA stays in power save 736 and retrieves the frames one-by-one. This conserves more power but adds latency 737 to the traffic. It is ideal for minimum number of frames. 738 739config NRF_WIFI_QOS_NULL_BASED_RETRIEVAL 740 bool "QoS null frame-based mechanism to retrieve buffered data from AP" 741 help 742 When the AP notifies about the availability of buffered data, the STA comes out of 743 power save, and then AP can deliver all buffered frames without any additional 744 overhead or latency, but STA enters power save after a delay costing more power 745 depending on the delay. It is ideal for heavy buffered traffic. 746endchoice 747 748config NRF_WIFI_MGMT_BUFF_OFFLOAD 749 bool "Management buffer offload" 750 default y 751 help 752 This option offloads the refilling of management buffers to the UMAC, saving the host 753 from having to exchange commands and events for every management packet even if it is 754 consumed by UMAC. 755 756config NRF_WIFI_FEAT_KEEPALIVE 757 bool "Wi-Fi keepalive feature for connection maintenance" 758 depends on NRF70_STA_MODE 759 help 760 Enable the Wi-Fi keepalive feature to keep the connection alive by sending 761 keepalive packets to the AP. This feature is primarily intended to interoperate with APs 762 that disconnect idle clients without any explicit checks. It slightly increases 763 power consumption. 764 765if NRF_WIFI_FEAT_KEEPALIVE 766config NRF_WIFI_KEEPALIVE_PERIOD_S 767 int "Keepalive period in seconds" 768 range 30 3600 769 default 60 770 help 771 Keepalive period in seconds to send keepalive packets to the AP. 772endif 773 774choice NRF_WIFI_PS_EXIT_STRATEGY 775 prompt "Power save exit strategy" 776 default NRF_WIFI_PS_INT_PS 777 help 778 Select the power save exit strategy to retrieve buffered data from AP. 779 780config NRF_WIFI_PS_EXIT_EVERY_TIM 781 bool "Exit power save every time to retrieve buffered data from AP" 782 help 783 Exit power save every time to retrieve buffered data from AP. Entering back to 784 power save mode might take some time and power. 785 786config NRF_WIFI_PS_INT_PS 787 bool "Exit power save based on an intelligent algorithm" 788 help 789 Exit power save based on an intelligent algorithm to retrieve buffered data from the AP. 790 The algorithm tracks the buffered data at the AP and then dynamically decides 791 whether to stay in PS (for a lower amount of buffered data) or exit PS (for a higher 792 amount of buffered data). 793endchoice 794 795config NRF70_PASSIVE_SCAN_ONLY 796 bool "Forced Passive scan" 797 depends on NRF70_SCAN_ONLY 798 help 799 Enable this configuration to force passive scan on all channels. 800 This will override application-specified scan type. 801 802config NRF_WIFI_DISPLAY_SCAN_BSS_LIMIT 803 # Display scan BSS entries limit 804 # By default, the limit is 250 in scan-only mode and 150 in regular mode. 805 int "Display scan bss limit" 806 range 1 450 if NRF70_SCAN_ONLY 807 def_int 250 if NRF70_SCAN_ONLY 808 range 1 160 809 def_int 150 810 help 811 Number of BSS entries in scan result. 812 813config NRF_WIFI_COEX_DISABLE_PRIORITY_WINDOW_FOR_SCAN 814 bool "Force disable priority window for scan in the case of coexistence with Short Range radio" 815 help 816 Enable this configuration to disable priority window for scan 817 in the case of coexistence with Short Range radio. 818endif # WIFI_NRF70 819