| ############################################################################# |
| # wireless/bluetooth/Kconfig |
| # Bluetooth LE stack configuration options |
| # |
| # Copyright (C) 2018 Gregory Nutt. All rights reserved. |
| # Author: Gregory Nutt <gnutt@nuttx.org> |
| # |
| # 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 |