1# Zephyr Bluetooth Controller configuration options 2 3# Copyright (c) 2016-2017 Nordic Semiconductor ASA 4# SPDX-License-Identifier: Apache-2.0 5 6if BT_LL_SW_SPLIT 7 8config BT_LLL_VENDOR_NORDIC 9 bool "Use Nordic LLL" 10 depends on SOC_COMPATIBLE_NRF 11 depends on !$(dt_nodelabel_enabled,timer0) 12 depends on !$(dt_nodelabel_enabled,rtc0) 13 14 select ENTROPY_NRF5_RNG if BT_CTLR_CRYPTO 15 select ENTROPY_NRF5_BIAS_CORRECTION if ENTROPY_NRF5_RNG 16 17 select BT_HAS_HCI_VS 18 select BT_CTLR_CRYPTO_SUPPORT if !SOC_COMPATIBLE_NRF54LX 19 select BT_CTLR_LE_ENC_SUPPORT if BT_CTLR_CRYPTO_SUPPORT && \ 20 !BT_CTLR_DATA_LENGTH_CLEAR && \ 21 !BT_CTLR_PHY_2M_NRF 22 select BT_CTLR_PRIVACY_SUPPORT if BT_CTLR_CRYPTO_SUPPORT && \ 23 !SOC_SERIES_NRF51X 24 select BT_CTLR_CONN_PARAM_REQ_SUPPORT 25 select BT_CTLR_EXT_REJ_IND_SUPPORT 26 select BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT 27 select BT_CTLR_DATA_LEN_UPDATE_SUPPORT if !BT_CTLR_LE_ENC_SUPPORT || \ 28 HAS_HW_NRF_CCM_LFLEN_8BIT || \ 29 BT_CTLR_DATA_LENGTH_CLEAR 30 select BT_CTLR_EXT_SCAN_FP_SUPPORT 31 select BT_CTLR_PHY_2M_SUPPORT if HAS_HW_NRF_RADIO_BLE_2M || \ 32 BT_CTLR_PHY_2M_NRF 33 select BT_CTLR_PHY_CODED_SUPPORT if HAS_HW_NRF_RADIO_BLE_CODED 34 select BT_CTLR_PHY_UPDATE_SUPPORT if BT_CTLR_PHY_2M_SUPPORT || \ 35 BT_CTLR_PHY_CODED_SUPPORT 36 select BT_CTLR_ADV_EXT_SUPPORT 37 select BT_CTLR_ADV_PERIODIC_SUPPORT 38 select BT_CTLR_SYNC_PERIODIC_SUPPORT 39 select BT_CTLR_ADV_ISO_SUPPORT 40 select BT_CTLR_SYNC_ISO_SUPPORT 41 select BT_CTLR_CENTRAL_ISO_SUPPORT 42 select BT_CTLR_PERIPHERAL_ISO_SUPPORT 43 select BT_CTLR_DF_SUPPORT if HAS_HW_NRF_RADIO_DFE 44 select BT_CTLR_CTEINLINE_SUPPORT if HAS_HW_NRF_RADIO_DFE 45 select BT_CTLR_CHAN_SEL_2_SUPPORT 46 select BT_CTLR_MIN_USED_CHAN_SUPPORT 47 select BT_CTLR_SCA_UPDATE_SUPPORT 48 select BT_CTLR_DTM_HCI_SUPPORT 49 select BT_CTLR_CONN_RSSI_SUPPORT 50 51 select BT_CTLR_XTAL_ADVANCED_SUPPORT 52 select BT_CTLR_SCHED_ADVANCED_SUPPORT 53 select BT_CTLR_TIFS_HW_SUPPORT 54 select BT_CTLR_ULL_LLL_PRIO_SUPPORT 55 56 select BT_TICKER_UPDATE if BT_BROADCASTER || BT_CONN || \ 57 (BT_OBSERVER && BT_CTLR_ADV_EXT) 58 select BT_TICKER_REMAINDER if BT_CTLR_CENTRAL_ISO 59 select BT_TICKER_REMAINDER_GET if BT_BROADCASTER && BT_CTLR_ADV_EXT 60 select BT_TICKER_LAZY_GET if BT_CTLR_ADV_PERIODIC || BT_CTLR_CENTRAL_ISO 61 62 select BT_TICKER_PREFER_START_BEFORE_STOP if BT_TICKER_SLOT_AGNOSTIC 63 64 default y 65 help 66 Use Nordic Lower Link Layer implementation. 67 68config BT_LLL_VENDOR_OPENISA 69 bool "Use OpenISA LLL" 70 depends on SOC_OPENISA_RV32M1 71 select BT_HAS_HCI_VS 72 select BT_CTLR_CRYPTO_SUPPORT 73 select BT_CTLR_LE_ENC_SUPPORT if BT_CTLR_CRYPTO_SUPPORT && \ 74 !BT_CTLR_DATA_LENGTH_CLEAR 75 select BT_CTLR_PRIVACY_SUPPORT if BT_CTLR_CRYPTO_SUPPORT 76 select BT_CTLR_PHY_UPDATE_SUPPORT 77 select BT_CTLR_EXT_REJ_IND_SUPPORT 78 79 select BT_TICKER_UPDATE if BT_BROADCASTER || BT_CONN 80 81 default y 82 help 83 Use OpenISA Lower Link Layer implementation. 84 85# BT_CTLR_DF_SUPPORT is a wrapper for all DF features. Here we select features that are supported by 86# Zephyr's BLE Controller. 87config BT_CTLR_DF_SUPPORT 88 depends on BT_LL_SW_SPLIT && !BT_CTLR_TIFS_HW 89 select BT_CTLR_DF_CTE_TX_SUPPORT 90 select BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT 91 select BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT 92 select BT_CTLR_DF_CTE_RX_SUPPORT 93 select BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT 94 95config BT_CTLR_XTAL_ADVANCED_SUPPORT 96 bool 97 98config BT_CTLR_SCHED_ADVANCED_SUPPORT 99 bool 100 101config BT_CTLR_TIFS_HW_SUPPORT 102 bool 103 104config BT_CTLR_ULL_LLL_PRIO_SUPPORT 105 bool 106 107config BT_CTLR_RX_PRIO_STACK_SIZE 108 # Hidden, Controller's Co-Operative high priority Rx thread stack size. 109 int 110 default 448 111 112config BT_CTLR_RX_STACK_SIZE 113 # Hidden, Controller's Co-Operative Rx thread stack size. 114 int 115 default 768 116 117config BT_CTLR_SETTINGS 118 bool "Settings System" 119 depends on SETTINGS 120 help 121 Enable use of settings system in controller. 122 123config BT_CTLR_VERSION_SETTINGS 124 bool "Version Settings" 125 depends on BT_CTLR_SETTINGS 126 help 127 Make the controller's Company Id and Subversion Number configurable 128 through settings system. 129 130config BT_CTLR_COMPANY_ID 131 hex "Controller Company Id" 132 default BT_COMPANY_ID 133 range 0x0000 0xFFFF 134 help 135 Set the Bluetooth Company Identifier that will be used in 136 the VERSION_IND PDU. Uses BT_COMPANY_ID by default, although 137 silicon vendors and hardware manufacturers can set their own 138 Company Identifier for the controller. The full list of Bluetooth 139 Company Identifiers can be found here: 140 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers 141 142config BT_CTLR_SUBVERSION_NUMBER 143 hex "Subversion Number" 144 default 0xFFFF 145 range 0x0000 0xFFFF 146 help 147 Set the Subversion Number that will be used in VERSION_IND PDU. 148 149config BT_CTLR_AD_DATA_BACKUP 150 bool "Legacy AD Data backup" 151 depends on BT_PERIPHERAL || BT_CTLR_ADV_EXT 152 default y 153 help 154 Backup Legacy Advertising Data when switching to Legacy Directed or 155 to Extended Advertising mode, and restore it when switching back to 156 Legacy Non-Directed Advertising mode. 157 Application can disable this feature if not using Directed 158 Advertising or switch between Legacy and Extended Advertising. 159 160config BT_CTLR_HCI_ADV_HANDLE_MAPPING 161 bool "Advertising set handle mapping between HCI and LL" 162 depends on BT_CTLR_ADV_EXT 163 default y if BT_HCI_RAW 164 help 165 Enable mapping of advertising set handles between HCI and LL when 166 using external host since it can use arbitrary numbers as set handles 167 (as defined by Core specification) as opposed to LL which always uses 168 zero-based numbering. When using with Zephyr host this option can be 169 disabled to remove extra mapping logic. 170 171config BT_CTLR_MESH_SCAN_FILTERS 172 int "Number of Mesh scan filters" 173 depends on BT_HCI_MESH_EXT 174 default 1 175 range 1 15 176 help 177 Set the number of unique Mesh Scan Filters available as part of 178 the Intel Mesh Vendor Specific Extensions. 179 180config BT_CTLR_MESH_SF_PATTERNS 181 int "Number of Mesh scan filter patterns" 182 depends on BT_HCI_MESH_EXT 183 default 15 184 range 1 15 185 help 186 Set the number of unique Mesh Scan Filter patterns available per 187 Scan Filter as part of the Intel Mesh Vendor Specific Extensions. 188 189config BT_CTLR_CHECK_SAME_PEER_CONN 190 bool 191 depends on BT_CONN 192 default BT_MAX_CONN > 1 && !BT_CTLR_ALLOW_SAME_PEER_CONN 193 194if BT_CTLR_ADV_EXT 195 196config BT_CTLR_ADV_EXT_RX_PDU_LEN_MAX 197 int "Maximum Advertising Extensions Receive PDU Length" 198 depends on BT_OBSERVER 199 range $(UINT8_MAX) $(UINT8_MAX) if BT_HCI_RAW 200 range 31 $(UINT8_MAX) 201 default $(UINT8_MAX) 202 help 203 Maximum Advertising Extensions Receive PDU Length. 204 205config BT_CTLR_SCAN_DATA_LEN_MAX 206 int "Maximum Extended Scanning Data Length" 207 depends on BT_OBSERVER 208 range 31 1650 209 help 210 Maximum Extended Scanning Data Length. 211 212config BT_CTLR_CHECK_SAME_PEER_SYNC 213 # Hidden Kconfig to add same peer synchronization check 214 bool 215 depends on BT_CTLR_SYNC_PERIODIC 216 default BT_PER_ADV_SYNC_MAX > 1 217 218endif # BT_CTLR_ADV_EXT 219 220config BT_CTLR_ISOAL_LOG_DBG_VERBOSE 221 bool "ISO-AL verbose debug logging" 222 depends on BT_CTLR_ISOAL_LOG_LEVEL = 4 223 default n 224 help 225 Use this option to enable ISO-AL verbose debug logging. 226 227config BT_CTLR_ISO_TX_SEG_PLAYLOAD_MIN 228 int "Minimum number of playload data bytes in a new segment" 229 depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO 230 default 1 231 range 1 64 232 help 233 Minimum number of payload bytes that would make inserting a new 234 segment into a PDU worthwhile. 235 236config BT_CTLR_CONN_ISO_HCI_DATAPATH_SKIP_INVALID_DATA 237 bool "Do not pass invalid SDUs on HCI datapath" 238 depends on BT_CTLR_CONN_ISO 239 help 240 This allows for applications to decide whether to 241 forward invalid SDUs through HCI upwards. 242 243config BT_CTLR_CONN_ISO_AVOID_SEGMENTATION 244 bool "Avoid SDU fragmentation for framed mode" 245 depends on BT_CTLR_CENTRAL_ISO 246 help 247 When creating a CIG, the Max_PDU size is calculated according to BT 248 Core 5.4 Vol 6, Part G, Section 2.2. However, HAP specifies a need for 249 avoiding segmentation by forcing the Max_PDU to the appropriate value. 250 Since there is no way to control the Max_PDU using the non-test 251 interface, the config provides a way to force the Max_PDU to Max_SDU + 252 5 (header + offset). 253 254choice 255 prompt "CIS Creation Policy Selection" 256 default BT_CTLR_CONN_ISO_RELIABILITY_POLICY 257 258config BT_CTLR_CONN_ISO_RELIABILITY_POLICY 259 bool "CIS creation policy for reliability" 260 depends on BT_CTLR_CENTRAL_ISO 261 help 262 Select this option to use reliability policy for CIS creation. This 263 favors a CIS layout/configuration which utilizes the full range of the 264 Max_Transmission_Latency for maximum retransmission and payload 265 recovery. 266 267config BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY 268 bool "CIS creation policy for low latency" 269 depends on BT_CTLR_CENTRAL_ISO 270 help 271 Select this option to use low latency policy for CIS creation. This 272 favors a CIS layout/configuration which compacts payload transmission 273 for lowest possible latency. 274endchoice 275 276config BT_CTLR_TEST 277 bool "Run in-system unit tests" 278 help 279 Run in-system unit tests 280 281config BT_CTLR_ADVANCED_FEATURES 282 bool "Show advanced features" 283 help 284 Makes advanced features visible to controller developers. 285 286menu "Advanced features" 287 visible if BT_CTLR_ADVANCED_FEATURES 288 289config BT_CTLR_SW_DEFERRED_PRIVACY 290 bool "LE Controller-based Software Privacy" 291 depends on BT_CTLR_PRIVACY 292 help 293 Enable support for software based deferred privacy calculations. 294 295config BT_CTLR_RPA_CACHE_SIZE 296 int "LE Controller-based Software Privacy Resolving List size" 297 depends on BT_CTLR_SW_DEFERRED_PRIVACY 298 default 8 299 range 1 64 300 help 301 Set the size of the Known Unknown Resolving List for LE 302 Controller-based Software deferred Privacy. 303 304config BT_CTLR_TRPA_CACHE_SIZE 305 int "LE Controller-based Software Privacy target RPA cache size" 306 depends on BT_CTLR_SW_DEFERRED_PRIVACY 307 default 4 308 range 1 64 309 help 310 Set the size of the Known Unknown Target RPA Resolving List for LE 311 Controller-based Software deferred Privacy. 312 313config BT_CTLR_DATA_LENGTH_CLEAR 314 bool "Data Length Support (Cleartext only)" 315 depends on SOC_SERIES_NRF51X 316 help 317 Enable support for Bluetooth v4.2 LE Data Length Update procedure, up to 318 251 byte cleartext payloads in the Controller. Encrypted connections 319 are not supported. 320 321 322config BT_CTLR_PHY_2M_NRF 323 bool "2Mbps Nordic Semiconductor PHY Support (Cleartext only)" 324 depends on SOC_SERIES_NRF51X 325 select BT_CTLR_PHY_2M 326 help 327 Enable support for Nordic Semiconductor proprietary 2Mbps PHY in the 328 Controller. Encrypted connections are not supported. 329 330config BT_CTLR_ADV_AUX_SET 331 int "LE Extended Advertising Auxiliary Sets" 332 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 333 range 0 BT_CTLR_ADV_SET 334 default BT_CTLR_ADV_SET 335 help 336 Maximum supported advertising auxiliary channel sets. 337 338config BT_CTLR_ADV_SYNC_SET 339 int "LE Periodic Advertising Sets" 340 depends on BT_CTLR_ADV_PERIODIC 341 range 1 BT_CTLR_ADV_AUX_SET 342 default 1 343 help 344 Maximum supported periodic advertising sets. 345 346config BT_CTLR_ADV_DATA_CHAIN 347 bool "Advertising Data chaining [EXPERIMENTAL]" 348 select EXPERIMENTAL 349 help 350 Enable support for Advertising Data chaining in Extended 351 (non-connectable) and Periodic Advertising. This will allow to have 352 Advertising Data Length up to 1650 bytes. 353 354 This is experimental and work in progress, does not implement 355 recombining the AD Data and could return BT_HCI_ERR_PACKET_TOO_LONG 356 when a chain PDU needs its AD data overflow into a new chain PDU. 357 I.e. AD data in the last PDU could overflow due to the need to add 358 Aux Pointer field, and if this overflow bytes plus the next AD data 359 fragment length could be over 255 bytes needing additional chain PDU. 360 This is not implemented. 361 362config BT_CTLR_ADV_PDU_LINK 363 # Enables extra space in each advertising PDU to allow linking PDUs. 364 # This is required to enable advertising data trains (i.e. transmission 365 # of AUX_CHAIN_IND). 366 bool 367 368config BT_CTLR_ADV_AUX_PDU_LINK 369 # Enable chaining in Extended Advertising 370 bool 371 select BT_CTLR_ADV_PDU_LINK 372 373config BT_CTLR_ADV_AUX_PDU_BACK2BACK 374 bool "Back-to-back transmission of extended advertising trains" 375 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 376 select BT_CTLR_ADV_AUX_PDU_LINK 377 default y if BT_CTLR_ADV_DATA_LEN_MAX > 191 378 help 379 Enables transmission of AUX_CHAIN_IND in extended advertising train by 380 sending each AUX_CHAIN_IND one after another back-to-back. 381 382config BT_CTLR_ADV_AUX_PDU_BACK2BACK_AFS 383 int "AUX Frame Space for back-to-back transmission of extended advertising trains" 384 depends on BT_CTLR_ADV_AUX_PDU_BACK2BACK 385 range 300 1000 386 default 300 387 help 388 Specific AUX Frame Space to be used for back-to-back transmission of 389 extended advertising trains. Time specified in microseconds. 390 391config BT_CTLR_ADV_SYNC_PDU_LINK 392 bool 393 depends on BT_CTLR_ADV_PERIODIC 394 select BT_CTLR_ADV_PDU_LINK 395 396config BT_CTLR_ADV_SYNC_PDU_BACK2BACK 397 bool "Back-to-back transmission of periodic advertising trains" 398 depends on BT_CTLR_ADV_PERIODIC 399 select BT_CTLR_ADV_SYNC_PDU_LINK 400 help 401 Enables transmission of AUX_CHAIN_IND in periodic advertising train by 402 sending each AUX_CHAIN_IND one after another back-to-back. 403 Note, consecutive AUX_CHAIN_IND packets are not scheduled but sent at 404 a constant offset on a best effort basis. This means advertising train can 405 be preempted by other event at any time. 406 407config BT_CTLR_ADV_SYNC_PDU_BACK2BACK_AFS 408 int "AUX Frame Space for back-to-back transmission of periodic advertising trains" 409 depends on BT_CTLR_ADV_SYNC_PDU_BACK2BACK 410 range 300 1000 411 default 300 412 help 413 Specific AUX Frame Space to be used for back-to-back transmission of 414 periodic advertising trains. Time specified in microseconds. 415 416config BT_CTLR_ADV_RESERVE_MAX 417 bool "Use maximum Advertising PDU size time reservation" 418 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 419 default y 420 help 421 Use the maximum advertising PDU size time reservation considering the 422 Advertising Data could be updated from zero to maximum support size. 423 If maximum time reservation is disabled then time reservation 424 corresponding to the Advertising Data present at the time of the 425 start/enable of Advertising is used. 426 427config BT_CTLR_ADV_ISO_RESERVE_MAX 428 bool "Use maximum Broadcast ISO event time reservation" 429 depends on BT_CTLR_ADV_ISO 430 default y 431 help 432 Use maximum Broadcast ISO event time reservation. If disabled, then 433 time reservation does not include the pre-transmissions of the last 434 BIS and any Control subevents. This will allow extended or periodic 435 advertising events to preempt the BIG events but allow higher radio 436 utilizations by allowing larger BIG events when not overlapping with 437 extended or periodic advertising. 438 439config BT_CTLR_ADV_AUX_SYNC_OFFSET 440 int "Pre-defined offset between AUX_ADV_IND and AUX_SYNC_IND" 441 depends on BT_CTLR_ADV_PERIODIC 442 range 0 4000000 443 default 0 444 help 445 Define an offset between AUX_ADV_IND and AUX_SYNC_IND when using 446 Advertising Interval for the Extended Advertising and Periodic 447 Advertising that are same or multiple of each other, respectively. 448 Note, to get advertising intervals that are same or multiple, 449 the Periodic Advertising Interval shall be 10 millisecond more than 450 the Extended Advertising Interval; this is because the AUX_ADV_IND 451 PDUs are scheduled as periodic events of Extended Advertising 452 Interval plus 10 milliseconds (Advertising Random Delay) as the 453 periodic interval. 454 The offset is in microseconds, limited to an experimental maximum 455 value of 4 seconds. 456 457config BT_CTLR_ADV_DATA_BUF_MAX 458 int "Advertising Data Maximum Buffers" 459 depends on BT_BROADCASTER 460 range 1 64 if BT_CTLR_ADV_EXT 461 range 1 1 if !BT_CTLR_ADV_EXT 462 default 2 if BT_CTLR_ADV_PERIODIC 463 default 1 464 help 465 Maximum number of buffered Advertising Data payload across enabled 466 advertising sets. 467 468config BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY 469 bool 470 depends on BT_CTLR_ADV_EXT 471 help 472 Add additional memory to advertising PDU storage. The memory is a 473 general purpose storage for data that should be send from ULL to LLL. 474 The data stored in the memory are in synchronization with content 475 of PDU memory. 476 477 For example, the extra data memory is used for storage for parameters 478 to configure Radio peripheral to transmit CTE. The configuration data 479 must be synchronized with CTEInfo field in extended advertising header 480 that is part of PDU data. 481 482config BT_CTRL_ADV_ADI_IN_SCAN_RSP 483 bool "Include ADI in AUX_SCAN_RSP PDU" 484 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 485 help 486 Enable ADI field in AUX_SCAN_RSP PDU 487 488config BT_CTLR_SCAN_AUX_SET 489 int "LE Extended Scanning Auxiliary Sets" 490 depends on BT_OBSERVER && BT_CTLR_ADV_EXT 491 range 1 64 492 default 1 493 help 494 Maximum supported auxiliary channel scan sets. 495 496config BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN 497 bool "Use minimal Scan Auxiliary and Periodic Sync PDU time reservation" 498 depends on (BT_OBSERVER && BT_CTLR_ADV_EXT) || BT_CTLR_SYNC_PERIODIC 499 default y 500 help 501 Use minimal time reservation for Auxiliary and Periodic Sync PDU 502 reception. A peer device could scheduling multiple advertising sets 503 in a short duration with small PDUs hence using the minimal time 504 reservation would avoid skipping closely scheduled reception of 505 multiple Auxiliary or Periodic Sync PDUs. 506 507config BT_CTLR_SYNC_PERIODIC_SKIP_ON_SCAN_AUX 508 bool "Skip Periodic Sync event on overlap with Extended Scan Event" 509 depends on BT_CTLR_SYNC_PERIODIC 510 help 511 When AUX_ADV_IND or AUX_CHAIN_IND auxiliary channel PDU scan radio 512 event overlaps Periodic Sync radio event in unreserved time space, 513 let the Periodic Sync radio event be aborted so that the auxiliary 514 channel PDU can be received to generate Extended Advertising Reports. 515 516 By default we want Periodic Advertising Sync Events to take priority 517 over any overlapping Extended Advertising Primary and Auxiliary 518 channel PDU reception in order to not skip Periodic Advertising Report 519 generation. 520 521 But under simultaneous multiple Periodic Advertising Sync support with 522 small Periodic Advertising Intervals where there will be a lot of 523 overlapping Periodic Advertising Sync events, it is desirable to 524 permit Extended Advertising auxiliary PDU reception be allowed in a 525 round robin scheduling to skip the overlapping Periodic Advertising 526 Sync event. This permits new Periodic Advertising peers be discovered. 527 528config BT_CTLR_SYNC_ISO_RESERVE_MAX 529 bool "Use maximum ISO Synchronized Receiver event time reservation" 530 depends on BT_CTLR_SYNC_ISO 531 default y 532 help 533 Use maximum ISO Synchronized Receiver event time reservation. If 534 disabled, then time reservation does not include the pre-transmissions 535 and any Control subevents. 536 537config BT_CTLR_ADV_ENABLE_STRICT 538 bool "Enforce Strict Advertising Enable/Disable" 539 depends on BT_BROADCASTER 540 help 541 Enforce returning HCI Error Command Disallowed on enabling/disabling 542 already enabled/disabled advertising. 543 544config BT_CTLR_SCAN_ENABLE_STRICT 545 bool "Enforce Strict Scan Enable/Disable" 546 depends on BT_OBSERVER 547 help 548 Enforce returning HCI Error Command Disallowed on enabling/disabling 549 already enabled/disabled scanning. 550 551config BT_CTLR_CIS_ACCEPT_MIN_OFFSET_STRICT 552 bool "Enforce Strict CIS Minimum Offset Check" 553 depends on BT_CTLR_PERIPHERAL_ISO 554 help 555 Enforce strict check of CIS minimum offset accepted by the peripheral 556 considering that there will be no overlap of ACL connection with the 557 CIG events. Radio and CPU overheads for an ACL connection event is 558 considered and checks the CIS minimum offset is greater than the time 559 reservation for the ACL connection. 560 561config BT_CTLR_ISOAL_SN_STRICT 562 bool "Enforce Strict Tx ISO Data Sequence Number use" 563 depends on !BT_CTLR_ISOAL_PSN_IGNORE && (BT_CTLR_ADV_ISO || \ 564 BT_CTLR_CONN_ISO) 565 default y 566 help 567 Enforce strict sequencing of released payloads based on the TX SDU's 568 packet sequence number. This will be effective when fragmenting an 569 SDU into unframed PDUs. 570 571 When enabled, this could result in an SDU being fragmented into 572 payload numbers that are expired (will be dropped), if the TX SDU 573 packet sequence numbers do not increment according to the SDU interval 574 and delivery of SDUs to the ISO-AL do not strictly follow the SDU 575 interval. 576 577 When disabled, TX SDUs could be shifted from their stream aligned 578 position and fragmented into payloads that are less likely to be 579 dropped. This will result in better delivery of data to the receiver 580 but at the cost of creating skews in the received stream of SDUs. 581 582config BT_CTLR_ISOAL_PSN_IGNORE 583 bool "Ignore Tx ISO Data Packet Sequence Number use" 584 depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO 585 help 586 Ignore the use of Tx ISO Data Packet Sequence Number. 587 588config BT_CTLR_ZLI 589 bool "Use Zero Latency IRQs" 590 depends on ZERO_LATENCY_IRQS 591 default y 592 help 593 Enable support for use of Zero Latency IRQ feature. Note, applications 594 shall not use Zero Latency IRQ themselves when this option is selected, 595 else will impact controller stability. 596 597config BT_CTLR_DYNAMIC_INTERRUPTS 598 bool "Use Dynamic Interrupts allocation only" 599 depends on DYNAMIC_INTERRUPTS 600 help 601 Allocate all Controller required interrupts dynamically. This makes 602 sure that interrupts are properly connected when the Controller is 603 initialized and not only during the system startup. Thanks to that 604 application is able to enable Controller and its ISR at runtime, and 605 permit use of SoC's peripheral for custom use when Bluetooth is not 606 enabled. 607 608choice 609 prompt "Optimization options" 610 depends on !LTO 611 default BT_CTLR_OPTIMIZE_FOR_SPEED 612 613config BT_CTLR_OPTIMIZE_FOR_APP_DEFAULT 614 bool "Optimize for application defaults" 615 help 616 Optimize compilation of Controller for application's default. 617 618config BT_CTLR_OPTIMIZE_FOR_SIZE 619 bool "Optimize for space" 620 help 621 Optimize compilation of Controller for code size. 622 623 This is the Zephyr project default, but is overridden to use optimize 624 for speed when compiling the Controller to reduce application's ISR 625 and thread latencies. 626 627config BT_CTLR_OPTIMIZE_FOR_SPEED 628 bool "Optimize for Speed" 629 help 630 Optimize compilation of Controller for execution speed. As the 631 Controller's Upper Link Layer and Lower Link Layer execute in ISRs, 632 use of speed optimizations reduces application's ISR and thread 633 latencies. 634 635endchoice 636 637config BT_CTLR_XTAL_ADVANCED 638 bool "Advanced event preparation" 639 depends on BT_CTLR_XTAL_ADVANCED_SUPPORT 640 default y 641 help 642 Enables advanced event preparation offset ahead of radio tx/rx, taking 643 into account predictive processing time requirements in preparation to 644 the event, like control procedure handling and CPU execution speeds. 645 Crystal oscillator is retained between closely spaced consecutive 646 radio events to reduce the overall number of crystal settling current 647 consumptions. 648 649 This feature maximizes radio utilization in an average role event 650 timeslice when they are closely spaced by using a reduced offset 651 between preparation and radio event. 652 653 By disabling this feature, the controller will use a constant offset 654 between the preparation and radio event. The controller will toggle 655 crystal oscillator between two closely spaced radio events leading to 656 higher average current due to increased number of crystal settling 657 current consumptions. 658 659config BT_CTLR_XTAL_THRESHOLD 660 int "Crystal shutdown threshold in uS" 661 depends on BT_CTLR_XTAL_ADVANCED 662 default 1500 663 help 664 Configure the optimal delta in micro seconds between two consecutive 665 radio events, event done to next preparation, below which (active 666 clock) crystal will be retained. This value is board dependent. 667 668config BT_CTLR_SCHED_ADVANCED 669 bool "Advanced scheduling" 670 depends on BT_CTLR_SCHED_ADVANCED_SUPPORT && \ 671 (BT_CONN || \ 672 (BT_CTLR_ADV_EXT && (BT_CTLR_ADV_AUX_SET > 0)) || \ 673 BT_CTLR_ADV_ISO) 674 select BT_TICKER_NEXT_SLOT_GET 675 default y if BT_CENTRAL || (BT_BROADCASTER && BT_CTLR_ADV_EXT) || BT_CTLR_ADV_ISO 676 help 677 Enable non-overlapping placement of observer, initiator and central 678 roles in timespace. Uses window offset in connection updates and uses 679 connection parameter request in peripheral role to negotiate 680 non-overlapping placement with active central roles to avoid peripheral 681 roles drifting into active central roles in the local controller. 682 683 This feature maximizes the average data transmission amongst active 684 concurrent central and peripheral connections while other observer, 685 initiator, central or peripheral roles are active in the local controller. 686 687 Disabling this feature will lead to overlapping role in timespace 688 leading to skipped events amongst active roles. 689 690config BT_CTLR_ASSERT_OVERHEAD_START 691 bool "Assert on Prepare Latency" 692 default y 693 help 694 Assert on increased Radio Event Prepare callback latencies due to 695 CPU usage overheads in the Controller implementation. 696 697 Disabling this option permits the Controller to gracefully skip radio 698 events that are delayed due to CPU usage latencies; as long as the 699 radio event skips are not for every consecutive radio event interval, 700 otherwise leading to remote supervision timeout and possible missing 701 local disconnect events. 702 703config BT_CTLR_ASSERT_VENDOR 704 bool "Vendor Defined Assertion Information Handler" 705 help 706 This option enables a vendor specific sink for the controller assertion 707 mechanism, where parameter information is provided. This must be defined in 708 vendor debug HAL interface as \"BT_ASSERT_VND(cond, param1, param2)\", and 709 will be invoked whenever the controller code encounters an unrecoverable error 710 with parameter information. Implementation shall include the equivalent of 711 BT_ASSERT_DIE for halting the kernel. 712 713config BT_CTLR_CENTRAL_SPACING 714 int "Central Connection Spacing" 715 depends on BT_CTLR_SCHED_ADVANCED 716 default 0 717 range 0 $(UINT16_MAX) 718 help 719 The preferred connection spacing between multiple simultaneous central 720 roles in microseconds. The Controller will calculate the required time 721 reservation using the data length and PHY currently in use. The 722 greater of the preferred spacing and the calculated time reservation 723 will be used. 724 The precision is determined by the resolution of the platform 725 dependent ticker clock. 726 The upper range is a ceil value permitting any tuning of Controller's 727 radio handling overheads and to allow Coded PHY S8 coding scheme PDU 728 time, i.e. radio event overheads + 17040 (PDU Tx) + 150 (tIFS) + 4 729 (active clock jitter) + 17040 (PDU rx) = (radio event overheads + 730 34234) microseconds. 731 732config BT_CTLR_CENTRAL_RESERVE_MAX 733 bool "Use maximum data PDU size time reservation for Central" 734 depends on BT_CENTRAL 735 default y 736 help 737 Use the maximum data PDU size time reservation considering the Data 738 length could be updated from default 27 bytes to maximum support size. 739 If maximum time reservation is disabled then time reservation 740 corresponding to the default data length at the time of the 741 start/enable of Central role is used. 742 743 Note, currently this value is only used to space multiple central 744 connections and not for actual ticker time reservations. 745 746config BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX 747 bool "Reserve maximum event overhead in time reservations" 748 default y 749 help 750 Use radio event scheduling CPU time overhead in calculations of event 751 time reservations. 752 753 If this option is disabled, then Peripheral ACL and Peripheral ISO 754 role will not include CPU time overhead. Other role will continue to 755 use CPU overheads in their event time reservations. 756 757config BT_CTLR_SLOT_RESERVATION_UPDATE 758 bool "Update event length reservation after PHY or DLE update" 759 depends on (BT_CTLR_DATA_LENGTH || BT_CTLR_PHY) 760 default y 761 help 762 Updates the event length reservation after a completed Data Length Update 763 and/or PHY Update procedure to avoid overlap of radio events 764 765config BT_CTLR_LLL_PRIO 766 int "Lower Link Layer (Radio) IRQ priority" if (BT_CTLR_ULL_LLL_PRIO_SUPPORT && !BT_CTLR_ZLI) 767 range 0 3 if SOC_SERIES_NRF51X 768 range 0 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X) 769 default 0 770 help 771 The interrupt priority for event preparation and radio IRQ. 772 773config BT_CTLR_ULL_HIGH_PRIO 774 int "Upper Link Layer High IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT 775 range BT_CTLR_LLL_PRIO 3 if SOC_SERIES_NRF51X 776 range BT_CTLR_LLL_PRIO 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X) 777 default BT_CTLR_LLL_PRIO if (!BT_CTLR_ULL_LLL_PRIO_SUPPORT || BT_CTLR_ZLI || BT_CTLR_LOW_LAT) 778 default 1 779 help 780 The interrupt priority for Ticker's Worker IRQ and Upper Link Layer 781 higher priority functions. 782 783config BT_CTLR_ULL_LOW_PRIO 784 int "Upper Link Layer Low IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT 785 range BT_CTLR_ULL_HIGH_PRIO 3 if SOC_SERIES_NRF51X 786 range BT_CTLR_ULL_HIGH_PRIO 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X) 787 default BT_CTLR_ULL_HIGH_PRIO 788 help 789 The interrupt priority for Ticker's Job IRQ and Upper Link Layer 790 lower priority functions. 791 792config BT_CTLR_LOW_LAT 793 bool "Low latency non-negotiating event preemption" 794 select BT_CTLR_LOW_LAT_ULL_DONE 795 default y if SOC_SERIES_NRF51X 796 help 797 Use low latency non-negotiating event preemption. This reduces 798 Radio ISR latencies by the controller event scheduling framework. 799 Consequently, this reduces on-air radio utilization due to redundant 800 radio state switches. 801 802config BT_CTLR_LOW_LAT_ULL 803 prompt "Low latency ULL" 804 bool 805 depends on BT_CTLR_LOW_LAT 806 default y 807 help 808 Low latency ULL implementation that uses tailchaining instead of while 809 loop to demux rx messages from LLL. 810 811config BT_CTLR_LOW_LAT_ULL_DONE 812 prompt "Low latency ULL prepare dequeue" 813 bool 814 help 815 Done events be processed and dequeued in ULL context. 816 817config BT_CTLR_CONN_META 818 prompt "Connection meta data extension" 819 bool 820 help 821 Enables vendor specific per-connection meta data as part of the 822 LLL connection object. 823 824config BT_CTLR_RX_PDU_META 825 prompt "RX pdu meta data" 826 bool 827 828config BT_CTLR_RADIO_ENABLE_FAST 829 bool "Use tTXEN/RXEN,FAST ramp-up" 830 depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X 831 default y 832 help 833 Enable use of fast radio ramp-up mode. 834 835config BT_CTLR_TIFS_HW 836 bool "H/w Accelerated tIFS Trx switching" 837 depends on !BT_CTLR_RADIO_ENABLE_FAST && BT_CTLR_TIFS_HW_SUPPORT 838 default y 839 help 840 Enable use of hardware accelerated tIFS Trx switching. 841 842config BT_CTLR_SW_SWITCH_SINGLE_TIMER 843 bool "Single TIMER tIFS Trx SW switching" 844 depends on (!BT_CTLR_TIFS_HW) && (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X) 845 help 846 Implement the tIFS Trx SW switch with the same TIMER 847 instance, as the one used for BLE event timing. Requires 848 SW switching be enabled. Using a single TIMER: 849 (+) frees up one TIMER instance 850 (+) removes jitter for HCTO implementation 851 (-) introduces drifting to the absolute time inside BLE 852 events, that increases linearly with the number of 853 packets exchanged in the event 854 (-) makes it impossible to use most of the pre-programmed 855 PPI channels for the controller, resulting in 4 channels 856 less left for other uses 857 858config BT_CTLR_PARAM_CHECK 859 bool "HCI Command Parameter checking" 860 default y if BT_HCI_RAW 861 help 862 Enable code checking HCI Command Parameters. This is not needed in 863 combined host plus controller builds, saving some code space. 864 865if BT_CONN 866 867config BT_CTLR_LLCP_CONN 868 int "Number of connections with worst-case overlapping procedures" 869 default BT_MAX_CONN 870 range 1 BT_MAX_CONN 871 help 872 Set the number connections for which worst-case buffer requirements 873 for LLCP procedures must be met. Executing LLCP procedures on 874 more than this number of connections simultaneously may cause 875 instabilities. 876 877config BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX 878 int 879 default 4 880 help 881 The theoretical maximum number of tx ctrl buffers needed for any connection, is 4. 882 two for active encryption procedure plus one for rejecting a remote request 883 and one for a local terminate 884 885config BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM 886 int "Number of tx control buffers to be reserved per connection" 887 default BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX 888 range 0 BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX 889 help 890 Set the number control buffers that is to be pre allocated per connection 891 This defines the minimum number of buffers available for any connection 892 Setting this to non zero will ensure a connection will always have access 893 to buffer(s) for control procedure TX 894 895config BT_CTLR_LLCP_COMMON_TX_CTRL_BUF_NUM 896 int "Number of tx control buffers to be available across all connections" 897 default 0 898 range 0 $(UINT8_MAX) 899 help 900 Set the number control buffers that is to be available for tx. 901 This defines the size of the pool of tx buffers available 902 for control procedure tx. This pool is shared across all 903 procedures/connections with allocation through a fifo queue. 904 Configure between 0 and (4 - BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM) * BT_CTLR_LLCP_CONN 905 906config BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM 907 int "Number of local control procedure contexts to be available across all connections" 908 default 6 if (BT_AUTO_PHY_UPDATE=y || BT_AUTO_DATA_LEN_UPDATE=y) && BT_CTLR_LLCP_CONN < 4 909 default 2 if BT_CTLR_LLCP_CONN = 1 910 default BT_CTLR_LLCP_CONN if BT_CTLR_LLCP_CONN > 1 911 range 2 $(UINT8_MAX) 912 help 913 Set the number control procedure contexts that is to be available. 914 This defines the size of the pool of control procedure contexts available 915 for handling local initiated control procedures. 916 This pool is shared across all connections, with allocation through a queue. 917 918config BT_CTLR_LLCP_REMOTE_PROC_CTX_BUF_NUM 919 int "Number of remote control procedure contexts to be available across all connections" 920 default BT_CTLR_LLCP_CONN 921 range 1 $(UINT8_MAX) 922 help 923 Set the number control procedure contexts that is to be available. 924 This defines the size of the pool of control procedure contexts available 925 for handling remote initiated control procedures. 926 This pool is shared across all connections, with allocation through a queue. 927 928config BT_CTLR_LLID_DATA_START_EMPTY 929 bool "Handle zero length L2CAP start frame" 930 default y if BT_HCI_RAW 931 help 932 Handle zero length L2CAP start frame. 933 934config BT_CTLR_TX_RETRY_DISABLE 935 bool "Disable Tx Retry" 936 help 937 Avoid retransmission of a PDU if peer device Nack-ed a transmission 938 in the current connection event, close the connection event so as to 939 save current consumption on retries (in case peer has no buffers to 940 receive new PDUs). 941 942 Enabling this will lower power consumption, but increase transmission 943 latencies by one connection interval as the next attempt to send a PDU 944 would happen in the next connection event instead of repeated retries 945 in the current connection event. 946 947config BT_CTLR_THROUGHPUT 948 bool "Measure incoming Tx throughput" 949 help 950 Measure incoming Tx throughput and log the results. 951 952config BT_CTLR_FORCE_MD_COUNT 953 int "Forced MD bit count" if !BT_CTLR_FORCE_MD_AUTO 954 depends on !BT_CTLR_LOW_LAT_ULL 955 range 0 $(UINT8_MAX) 956 default 1 if BT_CTLR_FORCE_MD_AUTO 957 default 0 958 help 959 No. of times to force MD bit to be set in Tx PDU after a successful 960 transmission of non-empty PDU. 961 962 This will prolong the connection event to from being closed in cases 963 where applications want to send data in same connection event but are 964 slow in providing new Tx data. 965 966config BT_CTLR_FORCE_MD_AUTO 967 bool "Forced MD bit automatic calculation" 968 depends on !BT_CTLR_LOW_LAT_ULL 969 select BT_CTLR_THROUGHPUT 970 default y if BT_HCI_RAW 971 help 972 Force MD bit in transmitted PDU based on runtime incoming transmit 973 data throughput. 974 975config BT_CTLR_CONN_RANDOM_FORCE 976 bool "Random forced scheduling for peripheral on missed anchor point" 977 depends on BT_PERIPHERAL 978 default y 979 help 980 When enabled, controller will have legacy behavior and randomly force 981 priority at next ticker scheduling for peripheral role, if anchor point is 982 missed. 983 Two or more connections with similar interval on a device connected 984 to a peer device having two or more connections at its end with same 985 interval could lock to a round robin pattern where in neither of the central 986 nor peripheral event would be in sync at either end. Randomness allows 987 to break this locked round robin pattern permitting an anchor point sync. 988 989config BT_CTLR_CONN_RSSI_EVENT 990 bool "Connection RSSI event" 991 depends on BT_CTLR_CONN_RSSI 992 help 993 Generate events for connection RSSI measurement. 994 995config BT_CTLR_ALLOW_SAME_PEER_CONN 996 bool "Allow connection requests from same peer" 997 depends on BT_MAX_CONN > 1 998 help 999 Allow connection requests from the same peer. While the 1000 Bluetooth specification does not allow multiple connections 1001 with the same peer, allowing such connections is useful 1002 while debugging multiple connections. 1003 1004 WARNING: This option enables behavior that violates the Bluetooth 1005 specification. 1006 1007endif # BT_CONN 1008 1009config BT_CTLR_ADV_INDICATION 1010 bool "Advertisement indications" 1011 depends on BT_BROADCASTER 1012 help 1013 Generate events indicating on air advertisement events. 1014 1015config BT_CTLR_SCAN_REQ_NOTIFY 1016 bool "Scan Request Notifications" 1017 depends on BT_BROADCASTER 1018 help 1019 Generate events notifying the on air scan requests received. 1020 1021config BT_CTLR_SCAN_REQ_RSSI 1022 bool "Measure Scan Request RSSI" 1023 depends on BT_CTLR_SCAN_REQ_NOTIFY 1024 help 1025 Measure RSSI of the on air scan requests received. 1026 1027config BT_CTLR_SCAN_INDICATION 1028 bool "Scanner indications" 1029 depends on BT_OBSERVER 1030 help 1031 Generate events indicating on air scanner events. 1032 1033config BT_CTLR_SCAN_UNRESERVED 1034 bool "Unreserved scan window" 1035 depends on BT_OBSERVER && !BT_CTLR_LOW_LAT 1036 default y if BT_MESH 1037 help 1038 Scanner will not use time space reservation for scan window when in 1039 continuous scan mode. 1040 1041config BT_CTLR_EARLY_ABORT_PREVIOUS_PREPARE 1042 bool "Early abort previous prepare" 1043 default y 1044 help 1045 Early abort previous prepare present before a short prepare is 1046 enqueued in the prepare pipeline. 1047 1048config BT_MAYFLY_YIELD_AFTER_CALL 1049 bool "Yield from mayfly thread after first call" 1050 default y 1051 help 1052 Only process one mayfly callback per invocation (legacy behavior). 1053 If set to 'n', all pending mayflies for callee are executed before 1054 yielding 1055 1056config BT_TICKER_LOW_LAT 1057 bool "Ticker low latency mode" 1058 default y if SOC_SERIES_NRF51X 1059 help 1060 This option enables legacy ticker scheduling which defers overlapping 1061 ticker node timeouts and thereby prevents ticker interrupts during 1062 radio RX/TX. Enabling this option disables the ticker priority- and 1063 'must expire' features. 1064 1065config BT_TICKER_UPDATE 1066 bool "Ticker Update" 1067 help 1068 This option enables Ticker Update interface. 1069 1070config BT_TICKER_REMAINDER 1071 bool "Ticker Remainder" 1072 help 1073 This option enables Ticker Start interface remainder parameter for 1074 first expire timeout. 1075 1076config BT_TICKER_JOB_IDLE_GET 1077 bool "Ticker Job Idle Get" 1078 default y if BT_TICKER_LOW_LAT 1079 help 1080 This option enables the ticker interface to query the idle state of 1081 the Ticker Job execution context. This interface is used to disable 1082 Ticker Job execution once in idle state, no operations pending for the 1083 Ticker Job to process. 1084 1085config BT_TICKER_NEXT_SLOT_GET 1086 bool "Ticker Next Slot Get" 1087 help 1088 This option enables ticker interface to iterate through active 1089 ticker nodes, returning tick to expire. 1090 1091config BT_TICKER_REMAINDER_GET 1092 bool "Ticker Next Slot Get with Remainder" 1093 select BT_TICKER_NEXT_SLOT_GET 1094 select BT_TICKER_NEXT_SLOT_GET_MATCH 1095 default y 1096 help 1097 This option enables ticker interface to iterate through active 1098 ticker nodes, returning tick to expire and remainder from a reference 1099 tick. 1100 1101config BT_TICKER_LAZY_GET 1102 bool "Ticker Next Slot Get with Lazy" 1103 select BT_TICKER_NEXT_SLOT_GET 1104 select BT_TICKER_NEXT_SLOT_GET_MATCH 1105 help 1106 This option enables ticker interface to iterate through active 1107 ticker nodes, returning tick to expire and lazy count from a reference 1108 tick. 1109 1110config BT_TICKER_NEXT_SLOT_GET_MATCH 1111 bool "Ticker Next Slot Get with match callback" 1112 depends on BT_TICKER_NEXT_SLOT_GET 1113 default y if BT_TICKER_SLOT_AGNOSTIC 1114 help 1115 This option enables ticker interface to iterate through active 1116 ticker nodes with a callback for every found ticker node. When 1117 returning true in the callback, iteration will stop and the normal 1118 operation callback invoked. 1119 1120config BT_TICKER_EXT 1121 bool "Ticker extensions" 1122 depends on !BT_TICKER_LOW_LAT 1123 default y if BT_BROADCASTER 1124 help 1125 This option enables ticker extensions such as re-scheduling of 1126 ticker nodes with slot_window set to non-zero. Ticker extensions 1127 are invoked by using available '_ext' versions of ticker interface 1128 functions. 1129 1130config BT_TICKER_EXT_SLOT_WINDOW_YIELD 1131 bool "Tickers with slot window always yields" 1132 depends on BT_TICKER_EXT 1133 default y if BT_MESH || BT_CTLR_ADV_ISO 1134 help 1135 This options forces tickers with slot window extensions to yield to 1136 normal tickers and be placed at the end of their slot window. 1137 1138config BT_TICKER_EXT_EXPIRE_INFO 1139 bool "Ticker timeout with other ticker's expire information" 1140 select BT_TICKER_EXT 1141 help 1142 This option enables ticker to return expiration info. The extended 1143 ticker interface) is used to ask for expiration information for 1144 another ticker id to be returned in the ticker callback. This utilises 1145 the extended ticker interface and a callback function with a different 1146 context to keep the current ticker interface as unchanged as possible. 1147 1148config BT_TICKER_PRIORITY_SET 1149 bool "Tickers with priority based collision resolution" 1150 depends on BT_TICKER_EXT 1151 help 1152 This option provide tickers with persistent priority value that will 1153 be used in resolving collisions. 1154 1155 The priority feature if enabled then a custom ULL is needed by vendors 1156 to avoid repeated skipping of overlapping events as next_has_priority 1157 check uses lazy value that would be always lazy_next > lazy_current as 1158 currently skipped event becomes the next event with lazy value 1159 incremented by 1. This repeated skip happens when all the time 1160 between the event intervals are occupied continuously by overlapping 1161 tickers. 1162 1163config BT_TICKER_SLOT_AGNOSTIC 1164 bool "Slot agnostic ticker mode" 1165 help 1166 This option enables slot agnostic ticker mode, which ignores slot 1167 reservations and collision handling, and operates as a simple 1168 multi-instance programmable timer. 1169 1170config BT_TICKER_PREFER_START_BEFORE_STOP 1171 bool "Ticker prefer start before stop request" 1172 help 1173 Under race conditions wherein for a given ticker node if a number of 1174 start and stop operations are enqueued towards ticker_job by a said 1175 user execution context, then start operations is preferred to be 1176 processed before stop operations. 1177 1178 Without this option, the default behavior is to defer all start 1179 requests after all stop requests enqueued by all user context having 1180 been processed. The rationale for default behavior being that under 1181 race conditions, start followed by stop requests, or start before stop 1182 requests, the said ticker node is always scheduled and at timeout the 1183 execution context can take decision based on its execution state. 1184 1185config BT_CTLR_JIT_SCHEDULING 1186 bool "Just-in-Time Scheduling" 1187 select BT_TICKER_SLOT_AGNOSTIC 1188 help 1189 This option enables the experimental 'Next Generation' scheduling 1190 feature, which eliminates priorities and collision resolving in the 1191 ticker, and instead relies on just-in-time ("lazy") resolution in 1192 the link layer. 1193 1194config BT_CTLR_PERIPHERAL_ISO_EARLY_CIG_START 1195 bool "Early start of peripheral CIG event" 1196 depends on BT_CTLR_PERIPHERAL_ISO 1197 help 1198 Start scheduling the Peripheral ISO CIG events one event in advance 1199 and hence adjust CIG offset and reference point ahead one interval. 1200 1201config BT_CTLR_USER_EXT 1202 prompt "Proprietary extensions in Controller" 1203 bool 1204 help 1205 Catch-all for enabling proprietary event types in Controller behavior. 1206 1207config BT_CTLR_USER_EVT_RANGE 1208 int "Range of event constants reserved for proprietary event types" 1209 depends on BT_CTLR_USER_EXT 1210 default 5 1211 range 0 10 1212 help 1213 Number of event types reserved for proprietary use. The range 1214 is typically used when BT_CTLR_USER_EXT is in use. 1215 1216config BT_CTLR_USER_TICKER_ID_RANGE 1217 int "Range of ticker id constants reserved for proprietary ticker nodes" 1218 depends on BT_CTLR_USER_EXT 1219 default 0 1220 range 0 10 1221 help 1222 Number of ticker ids reserved for proprietary use. The range 1223 is typically used when BT_CTLR_USER_EXT is in use. 1224 1225config BT_RX_USER_PDU_LEN 1226 int "Maximum supported proprietary PDU buffer length" 1227 depends on BT_CTLR_USER_EXT 1228 default 2 1229 range 2 $(UINT8_MAX) 1230 help 1231 Maximum data size for each proprietary PDU. This size includes link layer 1232 header and payload. It does not account for HCI event headers as these 1233 PDUs are assumed to not go across HCI. 1234 1235config BT_CTLR_USER_CPR_INTERVAL_MIN 1236 bool "Proprietary Connection Parameter Request minimum interval" 1237 depends on BT_CTLR_USER_EXT 1238 help 1239 When enabled, controller will accept Connection Parameter Request 1240 intervals down to a proprietary minimum value. 1241 1242config BT_CTLR_USER_CPR_ANCHOR_POINT_MOVE 1243 bool "Proprietary handling of anchor point movement" 1244 depends on BT_CTLR_USER_EXT && BT_CTLR_CONN_PARAM_REQ && BT_PERIPHERAL 1245 help 1246 When enabled, defer accept/reject of Connection Parameter Request with only 1247 anchor point movement to proprietary logic. 1248 Only applicable for peripheral. 1249 1250endmenu 1251 1252source "subsys/bluetooth/controller/coex/Kconfig" 1253 1254comment "BLE Controller debug configuration" 1255 1256config BT_CTLR_PROFILE_ISR 1257 bool "Profile radio ISR" 1258 help 1259 Turn on measurement of radio ISR latency, CPU usage and generation of 1260 controller event with these profiling data. The controller event 1261 contains current, minimum and maximum ISR entry latencies; and 1262 current, minimum and maximum ISR CPU use in micro-seconds. 1263 1264config BT_CTLR_DEBUG_PINS 1265 bool "Bluetooth Controller Debug Pins" 1266 depends on BOARD_NRF51DK_NRF51822 || BOARD_NRF52DK_NRF52832 || BOARD_NRF52DK_NRF52810 || BOARD_NRF52840DK_NRF52840 || BOARD_NRF52833DK_NRF52833 || BOARD_NRF5340DK_NRF5340_CPUNET || BOARD_RV32M1_VEGA 1267 help 1268 Turn on debug GPIO toggling for the BLE Controller. This is useful 1269 when debugging with a logic analyzer or profiling certain sections of 1270 the code. 1271 1272endif # BT_LL_SW_SPLIT 1273