xref: /nrf52832-nimble/packages/NimBLE-latest/nimble/controller/syscfg.yml (revision 042d53a763ad75cb1465103098bb88c245d95138)
1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9#  http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied.  See the License for the
15# specific language governing permissions and limitations
16# under the License.
17#
18
19syscfg.defs:
20    BLE_DEVICE:
21        description: >
22            Used by package management system to include BLE hardware
23            drivers.
24        value: 1
25
26    BLE_LP_CLOCK:
27        description: >
28            Used by BSP packages to configure LP clock for controller.
29        value: 1
30
31    BLE_HW_WHITELIST_ENABLE:
32        description: >
33            Used to enable hardware white list
34        value: 1
35
36    BLE_LL_SYSVIEW:
37        description: >
38            Enable SystemView tracing module for controller.
39        value: 0
40
41    BLE_LL_PRIO:
42        description: 'The priority of the LL task'
43        type: 'task_priority'
44        value: 0
45
46    # Sleep clock accuracy (sca). This is the amount of drift in the system
47    # during when the device is sleeping (in parts per million).
48    #
49    # NOTE: 'the' master sca is an enumerated value based on the sca. Rather
50    # than have a piece of code calculate this value, the developer must set
51    # this value based on the value of the SCA using the following table:
52    #
53    #  SCA between 251 and 500 ppm (inclusive); master sca = 0
54    #  SCA between 151 and 250 ppm (inclusive); master sca = 1
55    #  SCA between 101 and 150 ppm (inclusive); master sca = 2
56    #  SCA between 76 and 100 ppm (inclusive); master sca = 3
57    #  SCA between 51 and 75 ppm (inclusive); master sca = 4
58    #  SCA between 31 and 50 ppm (inclusive); master sca = 5
59    #  SCA between 21 and 30 ppm (inclusive); master sca = 6
60    #  SCA between 0 and 20 ppm (inclusive); master sca = 7
61    #
62    #  For example:
63    #      if your clock drift is 101 ppm, your master should be set to 2.
64    #      if your clock drift is 20, your master sca should be set to 7.
65    #
66    #  The values provided below are merely meant to be an example and should
67    #  be replaced by values appropriate for your platform.
68    BLE_LL_OUR_SCA:
69        description: 'The system clock accuracy of the device.'
70        value: '60'    # in ppm
71
72    BLE_LL_MASTER_SCA:
73        description: 'Enumerated value based on our sca'
74        value: '4'
75
76    BLE_LL_TX_PWR_DBM:
77        description: 'Transmit power level.'
78        value: '0'
79
80    BLE_NUM_COMP_PKT_RATE:
81        description: >
82            Determines the maximum rate at which the controller will send the
83            number of completed packets event to the host. Rate is in os time
84            ticks.
85        value: '(2 * OS_TICKS_PER_SEC)'
86
87    BLE_LL_MFRG_ID:
88        description: >
89            Manufacturer ID. Should be set to unique ID per manufacturer.
90        value: '0xFFFF'
91
92    # Configuration items for the number of duplicate advertisers and the
93    # number of advertisers from which we have heard a scan response.
94    BLE_LL_NUM_SCAN_DUP_ADVS:
95        description: 'The number of duplicate advertisers stored.'
96        value: '8'
97    BLE_LL_NUM_SCAN_RSP_ADVS:
98        description: >
99            The number of advertisers from which we have heard a scan
100            response. Prevents sending duplicate events to host.
101        value: '8'
102
103    BLE_LL_WHITELIST_SIZE:
104        description: 'Size of the LL whitelist.'
105        value: '8'
106
107    BLE_LL_RESOLV_LIST_SIZE:
108        description: 'Size of the resolving list.'
109        value: '4'
110
111    # Data length management definitions for connections. These define the
112    # maximum size of the PDU's that will be sent and/or received in a
113    # connection.
114    BLE_LL_MAX_PKT_SIZE:
115        description: 'The maximum PDU size that can be sent/received'
116        value: '251'
117    BLE_LL_SUPP_MAX_RX_BYTES:
118        description: 'The maximum supported received PDU size'
119        value: 'MYNEWT_VAL_BLE_LL_MAX_PKT_SIZE'
120    BLE_LL_SUPP_MAX_TX_BYTES:
121        description: 'The maximum supported transmit PDU size'
122        value: 'MYNEWT_VAL_BLE_LL_MAX_PKT_SIZE'
123    BLE_LL_CONN_INIT_MAX_TX_BYTES:
124        description: >
125            Used to set the initial maximum transmit PDU size in a
126            connection. If this is set to a value greater than 27,
127            the controller will automatically attempt to do the
128            data length update procedure. The host can always tell
129            the controller to update this value.
130        value: '27'
131
132    # The number of slots that will be allocated to each connection
133    BLE_LL_CONN_INIT_SLOTS:
134        description: >
135            This is the number of "slots" allocated to a connection when scheduling
136            connections. Each slot is 1.25 msecs long. Note that a connection event may
137            last longer than the number of slots allocated here and may also end earlier
138            (depending on when the next scheduled event occurs and how much data needs
139            to be transferred in the connection). However, you will be guaranteed that
140            a connection event will be given this much time, if needed. Consecutively
141            scheduled items will be at least this far apart
142        value: '4'
143
144    BLE_LL_CONN_INIT_MIN_WIN_OFFSET:
145        description: >
146            This is the minimum number of "slots" for WindowOffset value used for
147            CONNECT_IND when creating new connection as a master. Each slot is 1.25
148            msecs long. Increasing this value will delay first connection event after
149            connection is created. However, older TI CC254x controllers cannot change
150            connection parameters later if WindowOffset was set to 0 in CONNECT_IND. To
151            ensure interoperability with such devices set this value to 2 (or more).
152        value: '0'
153
154    # Strict scheduling
155    BLE_LL_STRICT_CONN_SCHEDULING:
156        description: >
157            Forces the scheduler on a central to schedule connections in fixed
158            time intervals called periods. If set to 0, the scheduler is not forced
159            to do this. If set to 1, the scheduler will only schedule connections at
160            period boundaries. See comments in ble_ll_sched.h for more details.
161        value: '0'
162
163    BLE_LL_ADD_STRICT_SCHED_PERIODS:
164        description: >
165            The number of additional periods that will be allocated for strict
166            scheduling. The total # of periods allocated for strict scheduling
167            will be equal to the number of connections plus this number.
168        value: '0'
169
170    BLE_LL_USECS_PER_PERIOD:
171        description: >
172            The number of usecs per period.
173        value: '3250'
174
175    # The number of random bytes to store
176    BLE_LL_RNG_BUFSIZE:
177        description: >
178            The number of random bytes that the link layer will try to
179            always have available for the host to use. Decreasing this
180            value may cause host delays if the host needs lots of random
181            material often.
182        value: '32'
183
184    # Crystal setting time
185    BLE_XTAL_SETTLE_TIME:
186        description: >
187            The settling time of the high-frequency oscillator. This is
188            used to turn on/off the clock used for the radio (assuming
189            the HW supports this). This value is in microseconds.
190        value: '0'
191
192    # Configuration for LL supported features.
193    #
194    # There are a total 8 features that the LL can support. These can be found
195    # in v4.2, Vol 6 Part B Section 4.6.
196    #
197    # These feature definitions are used to inform a host or other controller
198    # about the LL features supported by the controller.
199    #
200    # NOTE: 'the' controller always supports extended reject indicate and thus
201    # is not listed here.
202
203
204    BLE_LL_CFG_FEAT_LE_ENCRYPTION:
205        description: >
206            This option enables/disables encryption support in the controller.
207            This option saves both both code and RAM.
208        value: '1'
209
210    BLE_LL_CFG_FEAT_CONN_PARAM_REQ:
211        description: >
212            This option enables/disables the connection parameter request
213            procedure.  This is implemented in the controller but is disabled
214            by default.
215        value: '1'
216
217    BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG:
218        description: >
219            This option allows a slave to initiate the feature exchange
220            procedure.  This feature is implemented but currently has no impact
221            on code or ram size
222        value: '1'
223
224    BLE_LL_CFG_FEAT_LE_PING:
225        description: >
226            This option allows a controller to send/receive LE pings.
227            Currently, this feature is not implemented by the controller so
228            turning it on or off has no effect.
229        value: 'MYNEWT_VAL_BLE_LL_CFG_FEAT_LE_ENCRYPTION'
230
231    BLE_LL_CFG_FEAT_DATA_LEN_EXT:
232        description: >
233            This option enables/disables the data length update procedure in
234            the controller. If enabled, the controller is allowed to change the
235            size of tx/rx pdu's used in a connection. This option has only
236            minor impact on code size and non on RAM.
237        value: '1'
238
239    BLE_LL_CFG_FEAT_LL_PRIVACY:
240        description: >
241            This option is used to enable/disable LL privacy.
242        value: '1'
243
244    BLE_LL_CFG_FEAT_EXT_SCAN_FILT:
245        description: >
246            This option is used to enable/disable the extended scanner filter
247            policy feature. Currently, this feature is not supported by the
248            nimble controller.
249        value: '0'
250
251    BLE_LL_CFG_FEAT_LE_CSA2:
252        description: >
253            This option is used to enable/disable support for LE Channel
254            Selection Algorithm #2.
255        value: '0'
256
257    BLE_LL_CFG_FEAT_LE_2M_PHY:
258        description: >
259            This option is used to enable/disable support for the 2Mbps PHY.
260        value: '0'
261
262    BLE_LL_CFG_FEAT_LE_CODED_PHY:
263        description: >
264            This option is used to enable/disable support for the coded PHY.
265        value: '0'
266
267    BLE_LL_CFG_FEAT_LL_EXT_ADV:
268        description: >
269            This option is used to enable/disable support for Extended
270            Advertising Feature. That means extended scanner, advertiser
271            and connect.
272        value: MYNEWT_VAL_BLE_EXT_ADV
273
274    BLE_LL_EXT_ADV_AUX_PTR_CNT:
275         description: >
276            This option configure a max number of scheduled outstanding auxiliary
277            packets for receive on secondary advertising channel.
278         value: 0
279
280    BLE_PUBLIC_DEV_ADDR:
281        description: >
282            Allows the target or app to override the public device address
283            used by the controller. If all zero, the controller will
284            attempt to retrieve the public device address from its
285            chip specific location. If non-zero, this address will
286            be used.
287        value: "(uint8_t[6]){0x00, 0x00, 0x00, 0x00, 0x00, 0x00}"
288
289    BLE_LL_DIRECT_TEST_MODE:
290        description: >
291             Enables HCI Test commands needed for Bluetooth SIG certification
292        value: 0
293
294    BLE_LL_VND_EVENT_ON_ASSERT:
295        description: >
296            This options enables controller to send a vendor-specific event on
297            an assertion in controller code. The event contains file name and
298            line number where assertion occured.
299        value: 0
300
301    BLE_LL_SYSINIT_STAGE:
302        description: >
303            Sysinit stage for the NimBLE controller.
304        value: 250
305
306syscfg.vals.BLE_LL_CFG_FEAT_LL_EXT_ADV:
307    BLE_LL_CFG_FEAT_LE_CSA2: 1
308    BLE_HW_WHITELIST_ENABLE: 0
309    BLE_LL_EXT_ADV_AUX_PTR_CNT: 5
310
311# Enable vendor event on assert in standalone build to make failed assertions in
312# controller code visible when connected to external host
313syscfg.vals.!BLE_HOST:
314    BLE_LL_VND_EVENT_ON_ASSERT: 1
315