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