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