############################################################################# # wireless/bluetooth/Kconfig # Bluetooth LE stack configuration options # # Copyright (C) 2018 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package # where the code was released with a compatible 3-clause BSD license: # # Copyright (c) 2016, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # 3. Neither the name of the copyright holder nor the names of its # contributors may be used to endorse or promote products derived from this # software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # ############################################################################# menuconfig WIRELESS_BLUETOOTH bool "Bluetooth LE support" default n depends on ALLOW_BSD_COMPONENTS select MM_IOB select SCHED_HPWORK select SCHED_LPWORK ---help--- This option enables Bluetooth Low Energy support. if WIRELESS_BLUETOOTH menuconfig WIRELESS_BLUETOOTH_HOST bool "BLE Host Layer" default y ---help--- This enables support for BLE host layer implementation. This can be used to interface to a BLE controller via HCI protocol (either to a local BLE link-layer or to an external device over HCI UART). if WIRELESS_BLUETOOTH_HOST config DEVICE_APPEARANCE int "Appearance sub-category value" default 0 range 0 5188 ---help--- This value comes from the "Appearance sub-category" section (2.6.3) in the Bluetooth Assigned Numbers document. config DEVICE_NAME string "Device name" default "Apache NuttX" ---help--- The device name. config DEVICE_LOCAL_NAME string "Device local name" default "NuttX" ---help--- The device name used for advertising. endif # WIRELESS_BLUETOOTH_HOST config BLUETOOTH_MAX_CONN int "Maximum number of simultaneous connections" default 1 range 1 16 ---help--- Maximum number of simultaneous Bluetooth connections supported. The minimum (and default) number is 1. config BLUETOOTH_MAX_PAIRED int "Maximum number of paired devices" default 1 range 1 32 ---help--- Maximum number of paired Bluetooth devices. The minimum (and default) number is 1. config BLUETOOTH_MAXSCANDATA int "Max scan data size" default 64 range 1 255 ---help--- Scan results will be buffered in memory until the user requests the scan results. This parameter specifies the maximum size of the advertiser data that accompanies the scan result. This contributes to a static memory allocation that will be greater than CONFIG_BLUETOOTH_MAXSCANDATA * CONFIG_BLUETOOTH_MAXSCANRESULT config BLUETOOTH_MAXSCANRESULT int "Max scan results" default 8 range 1 255 ---help--- Scan results will be buffered in memory until the user requests the scan results. This parameter specifies the maximum number of results that can be buffered before scan results are lost. This contributes to a static memory allocation that will be greater than CONFIG_BLUETOOTH_MAXSCANDATA * CONFIG_BLUETOOTH_MAXSCANRESULT config BLUETOOTH_MAXDISCOVER int "Max GATT discovery results" default 8 range 1 255 ---help--- GATT discovery results will be buffered in memory until the user requests the results. This parameter specifies the maximum results that can be buffered before discovery results are lost. config BLUETOOTH_BUFFER_PREALLOC int "Number of pre-allocated buffer structures" default 20 ---help--- This specifies the total number of preallocated buffer structures. This is for performance optimization. If additional buffer structures are needed, they will be allocated dynamically at some loss of performance. config BLUETOOTH_BUFFER_IRQRESERVE int "Reserved pre-allocated primitive structures" default 0 ---help--- If buffer structures can be allocated from interrupt handlers, then this specifies the number of pre-allocated structures that are reserved for for use only by interrupt handlers. This may be set zero to reserve no buffers for interrupt handlers. In that case, the allocation will fail if tasking logic has allocated them all. Interrupt logic will first attempt to allocate from the general, pre-allocated buffer pool that will contain up to (size CONFIG_BLUETOOTH_BUFFER_PREALLOC - BLUETOOTH_BUFFER_IRQRESERVE) entries. If that fails, then it will try to take a buffer from the reserve (size CONFIG_BLUETOOTH_BUFFER_IRQRESERVE). Non-interrupt logic will also first attempt to allocate from the general, pre-allocated buffer pool. If that fails, it will dynamically allocate the buffer with an additional cost in performance. NOTE: The Bluetooth stack never allocates buffers from the interrupt level. This setting only needs to be non-zero if your low-level Bluetooth driver needs to do such allocations. menu "Kernel Thread Configuration" config BLUETOOTH_TXCMD_STACKSIZE int "Tx command thread stack size" default DEFAULT_TASK_STACKSIZE config BLUETOOTH_TXCMD_PRIORITY int "Tx command thread priority" default 100 range 1 255 config BLUETOOTH_TXCMD_NMSGS int "Tx command thread mqueue size" default 16 config BLUETOOTH_TXCONN_STACKSIZE int "Tx connection thread stack size" default DEFAULT_TASK_STACKSIZE config BLUETOOTH_TXCONN_PRIORITY int "Tx connection thread priority" default 100 range 1 255 config BLUETOOTH_TXCONN_NMSGS int "Tx connection thread mqueue size" default 16 config BLUETOOTH_TXCMD_PINNED_TO_CORE bool "Pin Tx command thread to specific core" depends on SMP default n ---help--- This option enables us to set the affinity of the Tx command thread to make it run on a specific core. if BLUETOOTH_TXCMD_PINNED_TO_CORE config BLUETOOTH_TXCMD_CORE int "Tx command thread CPU core" default 1 range 1 SMP_NCPUS ---help--- Select the core to pin the Tx command thread. endif # BLUETOOTH_TXCMD_PINNED_TO_CORE endmenu # Kernel Thread Configuration config BLUETOOTH_SMP_SELFTEST bool "Bluetooth SMP self tests executed on init" default n ---help--- This option enables SMP self-tests executed on startup to verify security and crypto functions. endif # WIRELESS_BLUETOOTH