Move the contents of Kconfig.iso to the common Kconfig file. The main reason for this is that the Kconfig.iso filename has caused issues for some, due to the .iso filename extension. The contents have been moved to right after the Kconfig options for BT_CONN which are quite similar. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
413 lines
12 KiB
Text
413 lines
12 KiB
Text
# Bluetooth configuration options
|
|
|
|
# Copyright (c) 2016 Intel Corporation
|
|
# Copyright (c) 2021 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig BT
|
|
bool "Bluetooth"
|
|
# Some BT threads use co-op priorities to implement critical sections,
|
|
# will need some refactoring to work on SMP systems.
|
|
depends on !SMP
|
|
select NET_BUF
|
|
help
|
|
This option enables Bluetooth support.
|
|
|
|
if BT
|
|
|
|
choice BT_STACK_SELECTION
|
|
prompt "Bluetooth Stack Selection"
|
|
default BT_HCI
|
|
help
|
|
Select the Bluetooth stack to compile.
|
|
|
|
config BT_HCI
|
|
bool "HCI-based"
|
|
help
|
|
HCI-based stack with optional host & controller parts and an
|
|
HCI driver in between.
|
|
|
|
config BT_CUSTOM
|
|
bool "Custom"
|
|
help
|
|
Select a custom, non-HCI based stack. If you're not sure what
|
|
this is, you probably want the HCI-based stack instead.
|
|
|
|
endchoice
|
|
|
|
# The Bluetooth subsystem requires the system workqueue to execute at
|
|
# a cooperative priority.
|
|
config SYSTEM_WORKQUEUE_PRIORITY
|
|
range -256 -1
|
|
|
|
if BT_HCI
|
|
|
|
config BT_HCI_RAW
|
|
bool "RAW HCI access"
|
|
help
|
|
This option allows to access Bluetooth controller
|
|
from the application with the RAW HCI protocol.
|
|
|
|
config BT_HCI_RAW_H4
|
|
bool "RAW HCI H:4 transport"
|
|
help
|
|
This option enables HCI RAW access to work over an H:4
|
|
transport, note that it still need to be selected at runtime.
|
|
|
|
config BT_HCI_RAW_H4_ENABLE
|
|
bool "RAW HCI H:4 transport enable"
|
|
depends on BT_HCI_RAW_H4
|
|
help
|
|
This option enables use of H:4 transport for HCI RAW access at
|
|
build time.
|
|
|
|
config BT_HCI_RAW_CMD_EXT
|
|
bool "RAW HCI Command Extension"
|
|
help
|
|
This option enables HCI RAW command extension so the driver can
|
|
register it own command table extension.
|
|
|
|
config BT_PERIPHERAL
|
|
bool "Peripheral Role support"
|
|
select BT_BROADCASTER
|
|
select BT_CONN
|
|
default y if BT_HCI_RAW
|
|
help
|
|
Select this for LE Peripheral role support.
|
|
|
|
config BT_CENTRAL
|
|
bool "Central Role support"
|
|
select BT_OBSERVER
|
|
select BT_CONN
|
|
default y if BT_HCI_RAW
|
|
help
|
|
Select this for LE Central role support.
|
|
|
|
config BT_BROADCASTER
|
|
bool "Broadcaster Role support"
|
|
default y if !BT_OBSERVER
|
|
help
|
|
Select this for LE Broadcaster role support.
|
|
|
|
config BT_OBSERVER
|
|
bool "Observer Role support"
|
|
help
|
|
Select this for LE Observer role support.
|
|
|
|
rsource "Kconfig.adv"
|
|
|
|
config BT_CONN
|
|
bool
|
|
|
|
config BT_MAX_CONN
|
|
int "Maximum number of simultaneous connections"
|
|
depends on BT_CONN
|
|
range 1 250
|
|
default 2 if BT_MESH_GATT_CLIENT
|
|
default 1
|
|
help
|
|
Maximum number of simultaneous Bluetooth connections
|
|
supported.
|
|
|
|
config BT_CONN_TX
|
|
bool
|
|
default BT_CONN || BT_ISO_TX
|
|
help
|
|
Hidden configuration that is true if ACL or broadcast ISO is enabled
|
|
|
|
if BT_CONN
|
|
config BT_HCI_ACL_FLOW_CONTROL
|
|
bool "Controller to Host ACL flow control support"
|
|
# Enable if building a Host-only build
|
|
default y if !HAS_BT_CTLR && !BT_STM32_IPM && !BT_ESP32 && !BT_STM32WBA
|
|
# Enable if building a Controller-only build
|
|
default y if BT_HCI_RAW
|
|
select POLL
|
|
help
|
|
Enable support for throttling ACL buffers from the controller
|
|
to the host. This is particularly useful when the host and
|
|
controller are on separate cores since it ensures that we do
|
|
not run out of incoming ACL buffers.
|
|
|
|
config BT_REMOTE_VERSION
|
|
bool "Allow fetching of remote version"
|
|
# Enable if building a Controller-only build
|
|
default y if BT_HCI_RAW
|
|
help
|
|
Enable this to get access to the remote version in the Controller and
|
|
in the Host through bt_conn_get_remote_info(). The fields in question
|
|
can then be found in the bt_conn_remote_info struct.
|
|
|
|
config BT_PHY_UPDATE
|
|
bool "PHY Update"
|
|
default y
|
|
depends on !HAS_BT_CTLR || BT_CTLR_PHY_UPDATE_SUPPORT
|
|
help
|
|
Enable support for Bluetooth 5.0 PHY Update Procedure.
|
|
|
|
config BT_DATA_LEN_UPDATE
|
|
bool "Data Length Update"
|
|
default y if ((BT_BUF_ACL_TX_SIZE > 27) || (BT_BUF_ACL_RX_SIZE > 27))
|
|
depends on !HAS_BT_CTLR || BT_CTLR_DATA_LEN_UPDATE_SUPPORT
|
|
help
|
|
Enable support for Bluetooth v4.2 LE Data Length Update procedure.
|
|
|
|
config BT_PER_ADV_SYNC_TRANSFER_RECEIVER
|
|
bool "Periodic Advertising Sync Transfer receiver"
|
|
depends on BT_PER_ADV_SYNC && BT_CONN && (!HAS_BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT)
|
|
|
|
config BT_PER_ADV_SYNC_TRANSFER_SENDER
|
|
bool "Periodic Advertising Sync Transfer sender"
|
|
depends on (BT_PER_ADV_SYNC || BT_PER_ADV) && BT_CONN && (!HAS_BT_CTLR || BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT)
|
|
|
|
config BT_SCA_UPDATE
|
|
bool "Sleep Clock Accuracy Update"
|
|
default y if BT_ISO_PERIPHERAL || BT_ISO_CENTRAL
|
|
depends on !HAS_BT_CTLR || BT_CTLR_SCA_UPDATE_SUPPORT
|
|
help
|
|
Enable support for Bluetooth 5.1 Sleep Clock Accuracy Update Procedure
|
|
|
|
config BT_TRANSMIT_POWER_CONTROL
|
|
bool "LE Power Control"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_LE_POWER_CONTROL_SUPPORT
|
|
help
|
|
Enable support for LE Power Control Request feature that is defined in the
|
|
Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.31.
|
|
|
|
config BT_PATH_LOSS_MONITORING
|
|
bool "LE Path Loss Monitoring"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_LE_PATH_LOSS_MONITORING_SUPPORT
|
|
help
|
|
Enable support for LE Path Loss Monitoring feature that is defined in the
|
|
Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.32.
|
|
|
|
config BT_SUBRATING
|
|
bool "LE Connection Subrating [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
depends on !HAS_BT_CTLR || BT_CTLR_SUBRATING_SUPPORT
|
|
help
|
|
Enable support for LE Connection Subrating feature that is defined in the
|
|
Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.35.
|
|
|
|
config BT_CHANNEL_SOUNDING
|
|
bool "Channel Sounding [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
depends on !HAS_BT_CTLR || BT_CTLR_CHANNEL_SOUNDING_SUPPORT
|
|
help
|
|
Enable support for Bluetooth 6.0 Channel Sounding feature.
|
|
|
|
config BT_CHANNEL_SOUNDING_TEST
|
|
bool "Channel Sounding Test [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
depends on BT_CHANNEL_SOUNDING
|
|
help
|
|
Enable support for Channel Sounding test mode.
|
|
|
|
config BT_CHANNEL_SOUNDING_REASSEMBLY_BUFFER_SIZE
|
|
int "Subevent result reassembly buffer size"
|
|
depends on BT_CHANNEL_SOUNDING
|
|
range 239 5600
|
|
default 5600
|
|
help
|
|
When the results for a CS subevent cannot fit into a single HCI event,
|
|
it will be split up into multiple events and consequently, reassembled into a
|
|
full CS subevent. This config sets the size of the reassembly buffer.
|
|
|
|
config BT_CHANNEL_SOUNDING_REASSEMBLY_BUFFER_CNT
|
|
int "Subevent result reassembly buffer count"
|
|
depends on BT_CHANNEL_SOUNDING
|
|
range 1 BT_MAX_CONN
|
|
default 1
|
|
help
|
|
Controls the number of the reassembly buffers for CS subevent
|
|
results. Each running CS procedure is allocated one buffer and the
|
|
number of concurrent CS procedures is limited by this value.
|
|
|
|
endif # BT_CONN
|
|
|
|
config BT_ISO
|
|
bool
|
|
|
|
config BT_ISO_TX
|
|
bool
|
|
|
|
config BT_ISO_RX
|
|
bool
|
|
|
|
#TODO : Split between client(central) and server(peripheral)
|
|
config BT_ISO_UNICAST
|
|
bool
|
|
depends on BT_CONN
|
|
select BT_ISO
|
|
select BT_ISO_TX
|
|
select BT_ISO_RX
|
|
help
|
|
This option enables support for Bluetooth Unicast
|
|
Isochronous channels.
|
|
|
|
config BT_ISO_PERIPHERAL
|
|
bool "Bluetooth Isochronous Channel Unicast Peripheral Support"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_PERIPHERAL_ISO_SUPPORT
|
|
depends on BT_PERIPHERAL
|
|
select BT_ISO_UNICAST
|
|
help
|
|
This option enables support for Bluetooth Unicast
|
|
Isochronous channels for the peripheral role.
|
|
|
|
config BT_ISO_CENTRAL
|
|
bool "Bluetooth Isochronous Channel Unicast Central Support"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_CENTRAL_ISO_SUPPORT
|
|
depends on BT_CENTRAL
|
|
select BT_ISO_UNICAST
|
|
help
|
|
This option enables support for Bluetooth Broadcast
|
|
Isochronous channels for the central role.
|
|
|
|
config BT_ISO_BROADCAST
|
|
bool
|
|
select BT_ISO
|
|
select BT_EXT_ADV
|
|
|
|
config BT_ISO_BROADCASTER
|
|
bool "Bluetooth Isochronous Broadcaster Support"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_ADV_ISO_SUPPORT
|
|
select BT_ISO_BROADCAST
|
|
select BT_ISO_TX
|
|
select BT_BROADCASTER
|
|
select BT_PER_ADV
|
|
help
|
|
This option enables support for the Bluetooth Isochronous Broadcaster.
|
|
|
|
config BT_ISO_SYNC_RECEIVER
|
|
bool "Bluetooth Isochronous Synchronized Receiver Support"
|
|
depends on !HAS_BT_CTLR || BT_CTLR_SYNC_ISO_SUPPORT
|
|
depends on BT_OBSERVER
|
|
select BT_ISO_BROADCAST
|
|
select BT_ISO_RX
|
|
select BT_PER_ADV_SYNC
|
|
help
|
|
This option enables support for the Bluetooth Isochronous
|
|
Synchronized Receiver.
|
|
|
|
if BT_ISO
|
|
|
|
config BT_ISO_MAX_CHAN
|
|
int "Maximum number of simultaneous ISO channels"
|
|
depends on BT_ISO
|
|
default BT_MAX_CONN if BT_CONN
|
|
default 1
|
|
range 1 64
|
|
help
|
|
Maximum number of simultaneous Bluetooth isochronous channels
|
|
supported.
|
|
|
|
config BT_ISO_TX_BUF_COUNT
|
|
int "Number of Isochronous TX buffers"
|
|
default 1
|
|
range 1 $(UINT8_MAX)
|
|
help
|
|
Number of buffers available for outgoing Isochronous channel SDUs.
|
|
|
|
config BT_ISO_TX_FRAG_COUNT
|
|
int "Number of ISO TX fragment buffers"
|
|
default 2
|
|
range 0 $(UINT8_MAX)
|
|
help
|
|
Number of buffers available for fragments of TX buffers. Warning:
|
|
setting this to 0 means that the application must ensure that
|
|
queued TX buffers never need to be fragmented, i.e. that the
|
|
controller's buffer size is large enough. If this is not ensured,
|
|
and there are no dedicated fragment buffers, a deadlock may occur.
|
|
In most cases the default value of 2 is a safe bet.
|
|
|
|
config BT_ISO_TX_MTU
|
|
int "Maximum supported MTU for Isochronous TX buffers"
|
|
range 1 4095
|
|
default 247
|
|
help
|
|
Maximum MTU for Isochronous channels TX buffers.
|
|
This is the actual data payload. It doesn't include the optional
|
|
HCI ISO Data packet fields (e.g. `struct bt_hci_iso_sdu_ts_hdr`).
|
|
Set this value to 247 to fit 247 bytes of data within a single
|
|
HCI ISO Data packet with Data_Total_Length of 255, utilizing
|
|
timestamps.
|
|
|
|
config BT_ISO_RX_BUF_COUNT
|
|
int "Number of Isochronous RX buffers"
|
|
default 1
|
|
range 1 $(UINT8_MAX)
|
|
help
|
|
Number of buffers available for incoming Isochronous channel SDUs.
|
|
|
|
config BT_ISO_RX_MTU
|
|
int "Maximum supported MTU for Isochronous RX buffers"
|
|
default 251
|
|
range 23 4095
|
|
help
|
|
Maximum MTU for Isochronous channels RX buffers.
|
|
This is the actual data payload. It doesn't include the optional
|
|
HCI ISO Data packet fields (e.g. `struct bt_hci_iso_sdu_ts_hdr`)
|
|
|
|
config BT_ISO_TEST_PARAMS
|
|
bool "ISO test parameters support"
|
|
help
|
|
Enabling advanced ISO parameters will allow the use of the ISO test
|
|
parameters for creating a CIG or a BIG. These test parameters were
|
|
intended for testing, but can be used to allow the host to set more
|
|
settings that are otherwise usually controlled by the controller.
|
|
|
|
if BT_ISO_UNICAST
|
|
|
|
config BT_ISO_MAX_CIG
|
|
int "Maximum number of Connected Isochronous Groups (CIGs) to support"
|
|
default 1
|
|
help
|
|
Maximum number of CIGs that are supported by the host. A CIG can be
|
|
used for either transmitting or receiving.
|
|
|
|
endif # BT_ISO_UNICAST
|
|
|
|
if BT_ISO_BROADCAST
|
|
|
|
config BT_ISO_MAX_BIG
|
|
int "Maximum number of Broadcast Isochronous Groups (BIGs) to support"
|
|
default 1
|
|
help
|
|
Maximum number of BIGs that are supported by the host. A BIG can be
|
|
used for either transmitting or receiving, but not at the same time.
|
|
|
|
endif # BT_ISO_BROADCAST
|
|
endif # BT_ISO
|
|
|
|
rsource "common/Kconfig"
|
|
rsource "host/Kconfig"
|
|
rsource "controller/Kconfig"
|
|
rsource "crypto/Kconfig"
|
|
rsource "lib/Kconfig"
|
|
rsource "Kconfig.logging"
|
|
|
|
config BT_SHELL
|
|
bool "Bluetooth shell"
|
|
select SHELL
|
|
select BT_PRIVATE_SHELL
|
|
select BT_TICKER_NEXT_SLOT_GET if BT_LL_SW_SPLIT
|
|
help
|
|
Activate shell module that provides Bluetooth commands to the
|
|
console.
|
|
|
|
endif # BT_HCI
|
|
|
|
config BT_COMPANY_ID
|
|
hex "Company Id"
|
|
default 0x05F1
|
|
range 0x0000 0xFFFF
|
|
help
|
|
Set the Bluetooth Company Identifier for this device. The Linux
|
|
Foundation's Company Identifier (0x05F1) is the default value for
|
|
this option although silicon vendors and hardware manufacturers
|
|
can set their own. Note that the controller's Company Identifier is
|
|
controlled by BT_CTLR_COMPANY_ID. The full list of Bluetooth
|
|
Company Identifiers can be found here:
|
|
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
|
|
|
|
endif # BT
|