| # Kconfig - Bluetooth Controller configuration options |
| # |
| # Copyright (c) 2016-2017 Nordic Semiconductor ASA |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| |
| comment "BLE Controller support" |
| |
| config BLUETOOTH_CONTROLLER |
| bool "Bluetooth Controller" |
| select BLUETOOTH_RECV_IS_RX_THREAD |
| help |
| Enables support for SoC native controller implementations. |
| |
| if BLUETOOTH_CONTROLLER |
| |
| choice |
| prompt "Bluetooth Link Layer Selection" |
| default BLUETOOTH_LL_SW |
| help |
| Select the Bluetooth Link Layer to compile. |
| |
| config BLUETOOTH_LL_SW |
| bool "Use the software-based BLE Link Layer" |
| help |
| Use Zephyr software BLE Link Layer implementation. |
| |
| endchoice |
| |
| comment "BLE Controller configuration" |
| |
| menu "Advertiser" |
| visible if !BLUETOOTH_PERIPHERAL |
| |
| config BLUETOOTH_CONTROLLER_STATE_ADV |
| bool "Enable Advertiser" |
| default y if BLUETOOTH_PERIPHERAL |
| default y if !BLUETOOTH_CONTROLLER_STATE_SCAN |
| help |
| Enable support for advertising state in the Controller. |
| |
| endmenu |
| |
| menu "Scanner" |
| visible if !BLUETOOTH_CENTRAL |
| |
| config BLUETOOTH_CONTROLLER_STATE_SCAN |
| bool "Enable Scanner" |
| default y if BLUETOOTH_CENTRAL |
| help |
| Enable support for scanning state in the Controller. |
| |
| endmenu |
| |
| config BLUETOOTH_CONTROLLER_DUP_FILTER_LEN |
| prompt "Number of addresses in the scan duplicate filter" |
| int |
| depends on BLUETOOTH_CONTROLLER_STATE_SCAN |
| default 16 |
| help |
| Set the number of unique BLE addresses that can be filtered as |
| duplicates while scanning. |
| |
| config BLUETOOTH_CONTROLLER_RX_BUFFERS |
| prompt "Number of Rx buffers" |
| int |
| default 1 |
| default 6 if BLUETOOTH_HCI_RAW |
| range 1 18 |
| help |
| Set the number of Rx PDUs to be buffered in the controller. In a 7.5ms |
| connection interval and 2M PHY, maximum 18 packets with L2CAP payload |
| size of 1 byte can be received. |
| |
| config BLUETOOTH_CONTROLLER_TX_BUFFERS |
| prompt "Number of Tx buffers" |
| int |
| default 2 |
| default 7 if BLUETOOTH_HCI_RAW |
| range 1 19 |
| help |
| Set the number of Tx PDUs to be queued for transmission in the |
| controller. In a 7.5ms connection interval and 2M PHY, maximum 19 |
| packets can be enqueued, with 18 packets with L2CAP payload size of 1 |
| byte can be acknowledged. |
| |
| config BLUETOOTH_CONTROLLER_TX_BUFFER_SIZE |
| prompt "Tx buffer size" |
| int |
| range 27 16384 |
| default 27 |
| help |
| Size of the Tx buffers and the value returned in HCI LE Read Buffer |
| Size command response. If this size if greater than effective PDU size |
| then controller will perform fragmentation before transmitting on the |
| the packet on air. |
| Maximum is set to 16384 due to implementation limitations (use of |
| u16_t for size/length variables). |
| |
| config BLUETOOTH_CONTROLLER_COMPANY_ID |
| prompt "Company Id" |
| hex |
| default 0xFFFF |
| range 0x0000 0xFFFF |
| help |
| Set the Company Id that will be used in VERSION_IND PDU. |
| |
| config BLUETOOTH_CONTROLLER_SUBVERSION_NUMBER |
| prompt "Subversion Number" |
| hex |
| default 0xFFFF |
| range 0x0000 0xFFFF |
| help |
| Set the Subversion Number that will be used in VERSION_IND PDU. |
| |
| config BLUETOOTH_CONTROLLER_RX_PRIO_STACK_SIZE |
| int |
| default 320 |
| |
| comment "BLE Controller features" |
| |
| config BLUETOOTH_CONTROLLER_LE_PING |
| bool "LE Ping" |
| default y |
| help |
| Enable support for Bluetooth v4.1 LE Ping feature in the Controller. |
| |
| config BLUETOOTH_CONTROLLER_DATA_LENGTH |
| bool "Data Length Update" |
| default y |
| help |
| Enable support for Bluetooth v4.2 LE Data Length Update procedure in |
| the Controller. |
| |
| config BLUETOOTH_CONTROLLER_DATA_LENGTH_MAX |
| prompt "Maximum data length supported" |
| depends on BLUETOOTH_CONTROLLER_DATA_LENGTH |
| int |
| default 27 |
| range 27 251 |
| help |
| Set the maximum data length of PDU supported in the Controller. |
| |
| config BLUETOOTH_CONTROLLER_PHY |
| bool "PHY Update" |
| default y |
| help |
| Enable support for Bluetooth 5.0 PHY Update Procedure in the |
| Controller. |
| |
| config BLUETOOTH_CONTROLLER_CHAN_SEL_2 |
| bool "Channel Selection Algorithm #2" |
| default y |
| help |
| Enable support for Bluetooth 5.0 LE Channel Selection Algorithm #2 in |
| the Controller. |
| |
| config BLUETOOTH_CONTROLLER_ADVANCED_FEATURES |
| bool "Show advanced features" |
| help |
| Makes advanced features visible to controller developers. |
| |
| menu "Advanced features" |
| visible if BLUETOOTH_CONTROLLER_ADVANCED_FEATURES |
| |
| if BLUETOOTH_CONTROLLER_PHY |
| |
| config BLUETOOTH_CONTROLLER_PHY_2M |
| bool "2Mbps PHY Support" |
| depends on !SOC_SERIES_NRF51X || BLUETOOTH_CONTROLLER_PHY_2M_NRF |
| default y |
| help |
| Enable support for Bluetooth 5.0 2Mbps PHY in the Controller. |
| |
| config BLUETOOTH_CONTROLLER_PHY_2M_NRF |
| bool "2Mbps Nordic Semiconductor PHY Support (Open Text)" |
| depends on SOC_SERIES_NRF51X |
| select BLUETOOTH_CONTROLLER_PHY_2M |
| help |
| Enable support for Nordic Semiconductor proprietary 2Mbps PHY in the |
| Controller. Encrypted connections are not supported. |
| |
| config BLUETOOTH_CONTROLLER_PHY_CODED |
| bool "Coded PHY Support" |
| depends on SOC_NRF52840 |
| default y |
| help |
| Enable support for Bluetooth 5.0 Coded PHY in the Controller. |
| |
| endif # BLUETOOTH_CONTROLLER_PHY |
| |
| config BLUETOOTH_CONTROLLER_WORKER_PRIO |
| prompt "Radio and Ticker's Worker IRQ priority" |
| int |
| range 0 3 if SOC_SERIES_NRF51X |
| range 0 6 if SOC_SERIES_NRF52X |
| default 0 |
| help |
| The interrupt priority for event preparation and radio IRQ. This value |
| shall be less than or equal to the Ticker's Job priority value. |
| |
| config BLUETOOTH_CONTROLLER_JOB_PRIO |
| prompt "Ticker's JOB IRQ priority" |
| int |
| range BLUETOOTH_CONTROLLER_WORKER_PRIO 3 if SOC_SERIES_NRF51X |
| range BLUETOOTH_CONTROLLER_WORKER_PRIO 6 if SOC_SERIES_NRF52X |
| default 0 |
| help |
| The interrupt priority for Ticker's Job (SWI4) IRQ. This value shall |
| be greater than or equal to the Ticker's Worker IRQ priority value. |
| |
| config BLUETOOTH_CONTROLLER_XTAL_ADVANCED |
| bool "Advanced event preparation" |
| default y |
| help |
| Enables advanced event preparation offset ahead of radio tx/rx, taking |
| into account predictive processing time requirements in preparation to |
| the event, like control procedure handling and CPU execution speeds. |
| Crystal oscillator is retained between closely spaced consecutive |
| radio events to reduce the overall number of crystal settling current |
| consumptions. |
| |
| This feature maximizes radio utilization in an average role event |
| timeslice when they are closely spaced by using a reduced offset |
| between preparation and radio event. |
| |
| By disabling this feature, the controller will use a constant offset |
| between the preparation and radio event. The controller will toggle |
| crystal oscillator between two closely spaced radio events leading to |
| higher average current due to increased number of crystal settling |
| current consumptions. |
| |
| config BLUETOOTH_CONTROLLER_XTAL_THRESHOLD |
| prompt "Crystal shutdown threshold in uS" |
| depends on BLUETOOTH_CONTROLLER_XTAL_ADVANCED |
| int |
| default 5168 |
| help |
| Configure the optimal delta in micro seconds between two consecutive |
| radio events below which (active clock) crystal will be retained. This |
| value is board dependent. The value 5168 is based on crude calculation |
| for nRF51 current versus startup time of high frequency crystal. |
| |
| config BLUETOOTH_CONTROLLER_SCHED_ADVANCED |
| bool "Advanced scheduling" |
| depends on (BLUETOOTH_MAX_CONN != 0) |
| default y |
| default n if BLUETOOTH_PERIPHERAL && !BLUETOOTH_CENTRAL |
| help |
| Enable non-overlapping placement of observer, initiator and master |
| roles in timespace. Uses window offset in connection updates and uses |
| connection parameter request in slave role to negotiate |
| non-overlapping placement with active master roles to avoid slave |
| roles drifting into active master roles in the local controller. |
| |
| This feature maximizes the average data transmission amongst active |
| concurrent master and slave connections while other observer, |
| initiator, master or slave roles are active in the local controller. |
| |
| Disabling this feature will lead to overlapping role in timespace |
| leading to skipped events amongst active roles. |
| |
| config BLUETOOTH_CONTROLLER_TIFS_HW |
| bool "H/w Accelerated tIFS Trx switching" |
| default y |
| help |
| Enable use of hardware accelerated tIFS Trx switching. |
| |
| config BLUETOOTH_CONTROLLER_FAST_ENC |
| bool "Fast Encryption Setup" |
| help |
| Enable connection encryption setup in 3 connection intervals. |
| Peripheral will respond to Encryption Request with Encryption Response |
| in the same connection interval, and also, will respond with Start |
| Encryption Response PDU in the 3rd connection interval, hence |
| completing encryption setup in 3 connection intervals. Encrypted data |
| would be transmitted as fast as in 3rd connection interval from the |
| connection establishment. |
| Maximum CPU time in Radio ISR will increase if this feature is |
| selected. |
| |
| config BLUETOOTH_CONTROLLER_CONN_RSSI |
| bool "Connection RSSI" |
| help |
| Enable connection RSSI measurement. |
| |
| config BLUETOOTH_CONTROLLER_ADV_INDICATION |
| bool "Advertisement indications" |
| help |
| Generate events indicating on air advertisement events. |
| |
| config BLUETOOTH_CONTROLLER_SCAN_REQ_NOTIFY |
| bool "Scan Request Notifications" |
| help |
| Generate events notifying the on air scan requests received. |
| |
| config BLUETOOTH_CONTROLLER_SCAN_REQ_RSSI |
| bool "Measure Scan Request RSSI" |
| depends on BLUETOOTH_CONTROLLER_SCAN_REQ_NOTIFY |
| help |
| Measure RSSI of the on air scan requests received. |
| |
| endmenu |
| |
| comment "BLE Controller debug configuration" |
| |
| config BLUETOOTH_CONTROLLER_ASSERT_HANDLER |
| bool "Bluetooth Controller Assertion Handler" |
| depends on BLUETOOTH_HCI_RAW |
| help |
| This option enables an application-defined sink for the |
| controller assertion mechanism. This must be defined in |
| application code as void \"bt_controller_assert_handle(char \*, int)\" |
| and will be invoked whenever the controller code encounters |
| an unrecoverable error. |
| |
| config BLUETOOTH_CONTROLLER_PROFILE_ISR |
| bool "Profile radio ISR" |
| help |
| Turn on measurement of radio ISR latency, CPU usage and generation of |
| controller event with these profiling data. The controller event |
| contains current, minimum and maximum ISR entry latencies; and |
| current, minimum and maximum ISR CPU use in micro-seconds. |
| |
| config BLUETOOTH_CONTROLLER_DEBUG_PINS |
| bool "Bluetooth Controller Debug Pins" |
| help |
| Turn on debug GPIO toggling for the BLE Controller. This is useful |
| when debugging with a logic analyzer or profiling certain sections of |
| the code. When enabled, pins P0.16 to P0.25 are taken over exclusively |
| by the controller and cannot be used outside of it. |
| |
| endif # BLUETOOTH_CONTROLLER |