392 lines
11 KiB
Plaintext
392 lines
11 KiB
Plaintext
# Kconfig - Bluetooth LE stack configuration options
|
|
|
|
#
|
|
# Copyright (c) 2015 Intel Corporation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
menuconfig BLUETOOTH
|
|
bool "Bluetooth support"
|
|
default n
|
|
select NANO_TIMEOUTS
|
|
select NET_BUF
|
|
select BLUETOOTH_LE if !BLUETOOTH_STACK_NBLE
|
|
help
|
|
This option enables Bluetooth support.
|
|
|
|
choice
|
|
prompt "Bluetooth Stack Selection"
|
|
depends on BLUETOOTH
|
|
default BLUETOOTH_STACK_HCI
|
|
help
|
|
Select the Bluetooth stack to compile.
|
|
|
|
config BLUETOOTH_STACK_HCI
|
|
bool "HCI Stack"
|
|
help
|
|
Select the Bluetooth stack to use with HCI drivers.
|
|
|
|
config BLUETOOTH_STACK_NBLE
|
|
bool "Nordic BLE Stack"
|
|
help
|
|
Select the Bluetooth stack to use with Nordic BLE drivers.
|
|
|
|
endchoice
|
|
|
|
if BLUETOOTH
|
|
|
|
comment "HCI Stack Configurations"
|
|
depends on BLUETOOTH_STACK_HCI
|
|
|
|
config BLUETOOTH_LE
|
|
bool "Bluetooth Low Energy (LE) support"
|
|
default n
|
|
select TINYCRYPT
|
|
select TINYCRYPT_AES if BLUETOOTH_SMP
|
|
select TINYCRYPT_AES_CMAC if BLUETOOTH_SMP
|
|
select TINYCRYPT_SHA256
|
|
select TINYCRYPT_SHA256_HMAC
|
|
select TINYCRYPT_SHA256_HMAC_PRNG
|
|
depends on BLUETOOTH_STACK_HCI
|
|
help
|
|
This option enables Bluetooth Low Energy (LE) support.
|
|
Currently it is mandatory whenever Bluetooth support
|
|
(CONFIG_BLUETOOTH) is enabled.
|
|
|
|
if BLUETOOTH_LE
|
|
config BLUETOOTH_HCI_CMD_COUNT
|
|
int "Number of HCI command buffers"
|
|
default 2
|
|
range 2 64
|
|
help
|
|
Number of buffers available for HCI commands.
|
|
|
|
config BLUETOOTH_MAX_CMD_LEN
|
|
int "Maximum supported HCI command length"
|
|
default 64
|
|
range 64 255
|
|
help
|
|
Maximum length of each HCI command.
|
|
|
|
config BLUETOOTH_HCI_EVT_COUNT
|
|
int "Number of HCI event buffers"
|
|
default 8 if BLUETOOTH_CONN
|
|
default 4 if !BLUETOOTH_CONN
|
|
range 2 64
|
|
help
|
|
Number of buffers available for HCI events. This number should
|
|
ideally be at least as large as the available outgoing buffers
|
|
to make sure we've got enough buffers to handle bursts of
|
|
Number of Completed Packets HCI events.
|
|
|
|
config BLUETOOTH_MAX_EVT_LEN
|
|
int "Maximum supported HCI event length"
|
|
default 68 if !BLUETOOTH_BREDR
|
|
default 255 if BLUETOOTH_BREDR
|
|
range 68 255
|
|
help
|
|
Maximum size of each HCI event buffer. E.g. one big event
|
|
for LE is the Command Complete for Read Local Supported
|
|
Commands. It is a 3 byte Command Complete header + 65 byte
|
|
return parameters = 68 bytes in total.
|
|
|
|
config BLUETOOTH_RX_STACK_SIZE
|
|
int "Size of the receiving fiber stack"
|
|
default 1024
|
|
range 1024 65536
|
|
help
|
|
Size of the receiving fiber stack. This is the context from
|
|
which all event callbacks to the application occur. The
|
|
default value is sufficient for basic operation, but if the
|
|
application needs to do advanced things in its callbacks that
|
|
require extra stack space, this value can be increased to
|
|
accomodate for that.
|
|
|
|
config BLUETOOTH_PERIPHERAL
|
|
bool "Peripheral Role support"
|
|
default n
|
|
select BLUETOOTH_CONN
|
|
help
|
|
Select this for LE Peripheral role support.
|
|
|
|
config BLUETOOTH_CENTRAL
|
|
bool "Central Role support"
|
|
default n
|
|
select BLUETOOTH_CONN
|
|
help
|
|
Select this for LE Central role support.
|
|
|
|
config BLUETOOTH_CONN
|
|
bool
|
|
default n
|
|
|
|
if BLUETOOTH_CONN
|
|
config BLUETOOTH_ACL_IN_COUNT
|
|
int "Number of incoming ACL data buffers"
|
|
default 5
|
|
range 2 64
|
|
help
|
|
Number of buffers available for incoming ACL data.
|
|
|
|
config BLUETOOTH_L2CAP_IN_MTU
|
|
int "Maximum supported L2CAP MTU for incoming data"
|
|
default 65 if BLUETOOTH_SMP
|
|
default 23 if !BLUETOOTH_SMP
|
|
range 65 1300 if BLUETOOTH_SMP
|
|
range 23 1300 if !BLUETOOTH_SMP
|
|
help
|
|
Maximum size of each incoming L2CAP PDU.
|
|
|
|
config BLUETOOTH_ATT_MTU
|
|
int "Attribute Protocol (ATT) channel MTU"
|
|
default 50 if BLUETOOTH_SMP # BLUETOOTH_L2CAP_IN_MTU is big enough
|
|
# for two complete ACL packets
|
|
default 23 if !BLUETOOTH_SMP
|
|
range 23 BLUETOOTH_L2CAP_IN_MTU
|
|
help
|
|
The MTU for the ATT channel. The minimum and default is 23,
|
|
whereas the maximum is limited by CONFIG_BLUETOOTH_L2CAP_IN_MTU.
|
|
|
|
config BLUETOOTH_SMP
|
|
bool "Security Manager Protocol support"
|
|
default n
|
|
help
|
|
This option enables support for the Security Manager Protocol
|
|
(SMP), making it possible to pair devices over LE.
|
|
|
|
if BLUETOOTH_SMP
|
|
config BLUETOOTH_PRIVACY
|
|
bool "Privacy Feature"
|
|
default n
|
|
help
|
|
Enable local Privacy Feature support. This makes it possible
|
|
to use Resolvable Private Addresses (RPAs).
|
|
|
|
config BLUETOOTH_SIGNING
|
|
bool "Data signing support"
|
|
default n
|
|
help
|
|
This option enables data signing which is used for transferring
|
|
authenticated data in an unencrypted connection.
|
|
|
|
config BLUETOOTH_SMP_SC_ONLY
|
|
bool "Secure Connections Only Mode"
|
|
default n
|
|
help
|
|
This option enables support for Secure Connection Only Mode. In this
|
|
mode device shall only use Security Mode 1 Level 4 with exception
|
|
for services that only require Security Mode 1 Level 1 (no security).
|
|
Security Mode 1 Level 4 stands for authenticated LE Secure Connections
|
|
pairing with encryption. Enabling this option disables legacy pairing.
|
|
|
|
config BLUETOOTH_TINYCRYPT_ECC
|
|
bool "Use TinyCrypt library for LE SC ECDH"
|
|
default n
|
|
select TINYCRYPT_ECC_DH
|
|
depends on MICROKERNEL
|
|
help
|
|
If this option is set TinyCrypt library is also used for LE Secure
|
|
Connections elliptic curve Diffie-Hellman key agreement. If not set
|
|
controller crypto is used for ECDH and if controller doesn't support
|
|
required HCI commands LE Secure Connections support will be disabled.
|
|
|
|
config BLUETOOTH_USE_DEBUG_KEYS
|
|
bool "Enable Security Manager Debug Mode"
|
|
default n
|
|
depends on BLUETOOTH_TINYCRYPT_ECC
|
|
help
|
|
This option places Security Manager in a Debug Mode. In this mode
|
|
predefined Diffie-Hellman private/public key pair is used as described
|
|
in Core Specification Vol. 3, Part H, 2.3.5.6.1. This option should
|
|
only be enabled for debugging and should never be used in production.
|
|
If this option is enabled anyone is able to decipher encrypted air
|
|
traffic.
|
|
|
|
endif # BLUETOOTH_SMP
|
|
|
|
config BLUETOOTH_L2CAP_DYNAMIC_CHANNEL
|
|
bool "L2CAP Dynamic Channel support"
|
|
default n
|
|
help
|
|
This option enables support for LE Connection oriented Channels,
|
|
allowing the creation of dynamic L2CAP Channels.
|
|
|
|
config BLUETOOTH_GATT_DYNAMIC_DB
|
|
bool "GATT dynamic database support"
|
|
default n
|
|
help
|
|
This option enables GATT services to be added dynamically to database.
|
|
|
|
config BLUETOOTH_GATT_CLIENT
|
|
bool "GATT client support"
|
|
default n
|
|
help
|
|
This option enables support for the GATT Client role.
|
|
|
|
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.
|
|
|
|
endif # BLUETOOTH_CONN
|
|
|
|
endif # BLUETOOTH_LE
|
|
|
|
config BLUETOOTH_DEBUG
|
|
bool
|
|
default n
|
|
|
|
choice
|
|
prompt "Bluetooth debug type"
|
|
depends on BLUETOOTH
|
|
default BLUETOOTH_DEBUG_NONE
|
|
|
|
config BLUETOOTH_DEBUG_NONE
|
|
bool "No debug log"
|
|
help
|
|
Select this to disable all Bluetooth debug logs.
|
|
|
|
config BLUETOOTH_DEBUG_STDOUT
|
|
bool "Normal printf-style to console"
|
|
select BLUETOOTH_DEBUG
|
|
select STDOUT_CONSOLE
|
|
help
|
|
This option enables Bluetooth debug going to standard
|
|
serial console.
|
|
|
|
config BLUETOOTH_DEBUG_MONITOR
|
|
bool "Monitor protocol over UART"
|
|
depends on BLUETOOTH_STACK_HCI
|
|
select BLUETOOTH_DEBUG
|
|
select CONSOLE_HAS_DRIVER
|
|
help
|
|
Use a custom logging protocol over the console UART
|
|
instead of plain-text output. Requires a special application
|
|
on the host side that can decode this protocol. Currently
|
|
the 'btmon' tool from BlueZ is capable of doing this.
|
|
|
|
If the target platform has two or more external UARTs it is
|
|
possible to keep using UART_CONSOLE together with this option,
|
|
however if there is only a single external UART then
|
|
UART_CONSOLE needs to be disabled (in which case printk/printf
|
|
will get encoded into the monitor protocol).
|
|
|
|
endchoice
|
|
|
|
config BLUETOOTH_DEBUG_COLOR
|
|
bool "Use colored logs"
|
|
depends on BLUETOOTH_DEBUG_STDOUT
|
|
default y
|
|
help
|
|
Use color in the logs. This requires an ANSI capable terminal.
|
|
|
|
config BLUETOOTH_MONITOR_ON_DEV_NAME
|
|
string "Device Name of Bluetooth monitor logging UART"
|
|
depends on BLUETOOTH_DEBUG_MONITOR
|
|
default "UART_0"
|
|
help
|
|
This option specifies the name of UART device to be used
|
|
for the Bluetooth monitor logging.
|
|
|
|
if BLUETOOTH_DEBUG
|
|
config BLUETOOTH_DEBUG_HCI_CORE
|
|
bool "Bluetooth HCI core debug"
|
|
depends on BLUETOOTH_STACK_HCI
|
|
default n
|
|
help
|
|
This option enables debug support for Bluetooth HCI
|
|
core.
|
|
|
|
config BLUETOOTH_DEBUG_CONN
|
|
bool "Bluetooth connection debug"
|
|
depends on BLUETOOTH_CONN
|
|
default n
|
|
help
|
|
This option enables debug support for Bluetooth
|
|
connection handling.
|
|
|
|
config BLUETOOTH_DEBUG_KEYS
|
|
bool "Bluetooth security keys debug"
|
|
depends on BLUETOOTH_STACK_HCI
|
|
depends on BLUETOOTH_SMP
|
|
default n
|
|
help
|
|
This option enables debug support for the handling of
|
|
Bluetooth security keys.
|
|
|
|
config BLUETOOTH_DEBUG_L2CAP
|
|
bool "Bluetooth L2CAP debug"
|
|
depends on BLUETOOTH_CONN
|
|
default n
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
L2ACP layer.
|
|
|
|
config BLUETOOTH_DEBUG_SMP
|
|
bool "Bluetooth Security Manager Protocol (SMP) debug"
|
|
depends on BLUETOOTH_STACK_HCI
|
|
depends on BLUETOOTH_SMP
|
|
default n
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Security Manager Protocol (SMP).
|
|
|
|
config BLUETOOTH_SMP_SELFTEST
|
|
bool "Bluetooth SMP self tests executed on init"
|
|
depends on BLUETOOTH_DEBUG_SMP
|
|
default n
|
|
help
|
|
This option enables SMP self-tests executed on startup
|
|
to verify security and crypto functions.
|
|
|
|
config BLUETOOTH_DEBUG_ATT
|
|
bool "Bluetooth Attribute Protocol (ATT) debug"
|
|
depends on BLUETOOTH_CONN
|
|
default n
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Attribute Protocol (ATT).
|
|
|
|
config BLUETOOTH_DEBUG_GATT
|
|
bool "Bluetooth Generic Attribute Profile (GATT) debug"
|
|
depends on BLUETOOTH_CONN
|
|
default n
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Generic Attribute Profile (GATT).
|
|
|
|
endif # BLUETOOTH_DEBUG
|
|
|
|
config BLUETOOTH_BREDR
|
|
bool "Bluetooth BR/EDR support [EXPERIMENTAL]"
|
|
default n
|
|
depends on BLUETOOTH_STACK_HCI
|
|
select BLUETOOTH_CONN
|
|
select BLUETOOTH_L2CAP_DYNAMIC_CHANNEL
|
|
help
|
|
This option enables Bluetooth BR/EDR support"
|
|
|
|
endif # BLUETOOTH
|