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