1CONFIG_IPC_SERVICE=y
2CONFIG_MBOX=y
3
4CONFIG_ISR_STACK_SIZE=1024
5CONFIG_IDLE_STACK_SIZE=256
6CONFIG_MAIN_STACK_SIZE=512
7CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=512
8CONFIG_HEAP_MEM_POOL_SIZE=4096
9CONFIG_CBPRINTF_REDUCED_INTEGRAL=y
10
11CONFIG_ISR_TABLES_LOCAL_DECLARATION=y
12CONFIG_LTO=y
13
14CONFIG_BT=y
15CONFIG_BT_HCI_RAW=y
16
17# BT Buffers
18CONFIG_BT_BUF_CMD_TX_SIZE=255
19CONFIG_BT_BUF_EVT_RX_COUNT=16
20CONFIG_BT_BUF_EVT_RX_SIZE=255
21CONFIG_BT_BUF_ACL_TX_COUNT=3
22CONFIG_BT_BUF_ACL_TX_SIZE=251
23CONFIG_BT_BUF_ACL_RX_COUNT_EXTRA=1
24CONFIG_BT_BUF_ACL_RX_SIZE=255
25
26# Host and Controller common dependencies
27CONFIG_BT_BROADCASTER=y
28CONFIG_BT_OBSERVER=y
29CONFIG_BT_EXT_ADV=y
30CONFIG_BT_PER_ADV=y
31CONFIG_BT_PER_ADV_SYNC=y
32CONFIG_BT_PER_ADV_SYNC_MAX=2
33CONFIG_BT_CENTRAL=y
34CONFIG_BT_PERIPHERAL=y
35CONFIG_BT_MAX_CONN=3
36
37# Broadcast and Connected ISO
38CONFIG_BT_ISO_BROADCASTER=y
39CONFIG_BT_ISO_SYNC_RECEIVER=y
40CONFIG_BT_ISO_CENTRAL=y
41CONFIG_BT_ISO_PERIPHERAL=y
42
43# ISO Streams
44CONFIG_BT_ISO_TX_MTU=310
45CONFIG_BT_ISO_RX_MTU=310
46CONFIG_BT_ISO_MAX_CHAN=4
47# In theory, CONFIG_BT_ISO_TX_BUF_COUNT=1, should be sufficient but this count
48# is used in the context of IPC which falls into a "Newton's Cradle" effect
49# where probably (CONFIG_BT_CTLR_ISO_TX_BUFFERS - CONFIG_BT_ISO_TX_BUF_COUNT)
50# buffers get throttled. Hence, always have the value equal or greater.
51CONFIG_BT_ISO_TX_BUF_COUNT=12
52CONFIG_BT_ISO_RX_BUF_COUNT=1
53
54# Controller
55CONFIG_BT_LL_SW_SPLIT=y
56CONFIG_BT_CTLR_ASSERT_HANDLER=y
57CONFIG_BT_CTLR_DTM_HCI=y
58
59# Rx ACL and Adv Reports
60CONFIG_BT_CTLR_RX_BUFFERS=9
61CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
62
63# Coded PHY support
64CONFIG_BT_CTLR_PHY_CODED=y
65
66# Advertising Sets and Extended Scanning
67CONFIG_BT_CTLR_ADV_EXT=y
68CONFIG_BT_CTLR_ADV_SET=3
69CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
70CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650
71
72CONFIG_BT_CTLR_ADVANCED_FEATURES=y
73CONFIG_BT_CTLR_ADV_AUX_SET=3
74CONFIG_BT_CTLR_ADV_AUX_PDU_BACK2BACK=y
75CONFIG_BT_CTLR_ADV_SYNC_SET=3
76CONFIG_BT_CTLR_ADV_SYNC_PDU_BACK2BACK=y
77CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=6
78
79# Increase the below to receive interleaved advertising chains
80CONFIG_BT_CTLR_SCAN_AUX_SET=3
81CONFIG_BT_CTLR_LOW_LAT_ULL=y
82# CONFIG_BT_CTLR_SCAN_AUX_USE_CHAINS=y
83# CONFIG_BT_CTLR_SCAN_AUX_CHAIN_COUNT=1
84
85CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
86CONFIG_BT_CTLR_ADV_ISO_RESERVE_MAX=y
87CONFIG_BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN=y
88CONFIG_BT_CTLR_SYNC_PERIODIC_SKIP_ON_SCAN_AUX=n
89CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX=n
90CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
91CONFIG_BT_CTLR_PERIPHERAL_RESERVE_MAX=n
92CONFIG_BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX=n
93CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
94CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
95CONFIG_BT_CTLR_SCAN_UNRESERVED=y
96CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
97CONFIG_BT_TICKER_EXT=y
98CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y
99
100# Control Procedure
101CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
102
103# ISO Broadcaster Controller
104CONFIG_BT_CTLR_ADV_EXT=y
105CONFIG_BT_CTLR_ADV_PERIODIC=y
106CONFIG_BT_CTLR_SYNC_TRANSFER_SENDER=y
107CONFIG_BT_CTLR_ADV_ISO=y
108CONFIG_BT_CTLR_ADV_ISO_SEQUENTIAL=y
109CONFIG_BT_CTLR_ADV_ISO_INTERLEAVED=y
110CONFIG_BT_CTLR_ADV_ISO_SET=2
111CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=4
112CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
113CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
114
115# ISO Receive Controller
116CONFIG_BT_CTLR_ADV_EXT=y
117CONFIG_BT_CTLR_SYNC_PERIODIC=y
118CONFIG_BT_CTLR_SYNC_TRANSFER_RECEIVER=y
119CONFIG_BT_CTLR_SYNC_ISO=y
120CONFIG_BT_CTLR_SYNC_ISO_SEQUENTIAL=y
121CONFIG_BT_CTLR_SYNC_ISO_INTERLEAVED=y
122CONFIG_BT_CTLR_SCAN_SYNC_ISO_SET=1
123CONFIG_BT_CTLR_SYNC_ISO_STREAM_COUNT=2
124CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
125CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
126
127# ISO Connection Oriented
128CONFIG_BT_CTLR_CENTRAL_ISO=y
129CONFIG_BT_CTLR_PERIPHERAL_ISO=y
130CONFIG_BT_CTLR_CONN_ISO_GROUPS=1
131CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
132CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=2
133CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
134CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
135
136# ISO Transmissions
137CONFIG_BT_CTLR_ISOAL_SOURCES=4
138CONFIG_BT_CTLR_ISO_TX_BUFFERS=12
139CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
140CONFIG_BT_CTLR_ISO_TX_SDU_LEN_MAX=247
141
142# ISO Receptions
143CONFIG_BT_CTLR_ISOAL_SINKS=2
144CONFIG_BT_CTLR_ISO_RX_BUFFERS=4
145
146# Tx Power Dynamic Control
147CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
148
149# Ignore HCI ISO data Tx sequence numbers
150# CONFIG_BT_CTLR_ISOAL_PSN_IGNORE=y
151
152# The hci_ipc image has a quite high RAM usage so we need to carefully
153# tweak Mbed TLS parameters in order to build successfully:
154# - use CSPRNG source as random source for PSA. This removes
155#   requiement for legacy Mbed TLS entropy+ctr-drbg modules, which
156#   saves RAM and ROM;
157# - use ROM pre-computed tables for AES;
158# - reduce the number of key slots to 3 in the PSA core. This is not a
159#   huge limitation since PSA crypto is only used for AES-CMAC in hci_ipc.
160CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG=y
161CONFIG_MBEDTLS_AES_ROM_TABLES=y
162CONFIG_MBEDTLS_PSA_KEY_SLOT_COUNT=3
163