blob: 27598c7095c9aa866e48ec19a085a8252500f0a9 [file] [log] [blame]
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +03001#
2# Copyright (c) 2021 Project CHIP Authors
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17menuconfig CHIP
Damian Królik774d06c2023-01-19 16:03:14 +010018 bool "Matter protocol stack"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030019 default n
Axel Le Bourhis28676c82024-01-25 17:17:34 +010020 select CPP
21 imply REQUIRES_FULL_LIBCPP
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030022 imply REQUIRES_FULL_LIBC
Damian Królikbfe87de2023-01-09 19:04:19 +010023 imply NEWLIB_LIBC_NANO
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030024 imply CBPRINTF_LIBC_SUBSTS
Axel Le Bourhisa578c142024-09-17 18:56:00 +020025 imply POSIX_API if !ARCH_POSIX && !CHIP_NRF_PLATFORM
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030026 imply EVENTFD if !ARCH_POSIX
27 imply REBOOT
28 imply ENTROPY_GENERATOR
29 imply NET_UDP
30 imply NET_IPV6
31 imply NET_CONFIG_NEED_IPV6
32 imply NET_SOCKETS
Axel Le Bourhisa578c142024-09-17 18:56:00 +020033 imply NET_SOCKETS_POSIX_NAMES if !ARCH_POSIX && CHIP_NRF_PLATFORM
Kamil Kasperczykdcca2432022-04-05 12:46:55 +020034 imply NETWORKING
Damian Królik63803aa2022-12-23 09:50:48 +010035 imply HWINFO
36 imply FLASH
37 imply FLASH_MAP
38 imply NVS
39 imply SETTINGS
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030040 help
Damian Królik774d06c2023-01-19 16:03:14 +010041 Enables Matter libraries required for the Matter protocol stack to work.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +030042
43if CHIP
44
QuentinCaldeira-eaton3cb0ae92024-07-22 10:51:15 +020045config CHIP_APP_LOG_LEVEL
46 int "Logging level in application"
47 default LOG_DEFAULT_LEVEL
48 depends on LOG
49 help
50 Sets the logging level in the Matter application. Use this configuration
51 option only within the application. To set the logging level for the
52 Matter stack, use the MATTER_LOG_LEVEL configuration option.
53
Damian Królik63803aa2022-12-23 09:50:48 +010054# Device and firmware identifers
55
Damian Królik93bc7f72022-01-18 14:25:38 +010056config CHIP_DEVICE_VENDOR_ID
Damian Królik774d06c2023-01-19 16:03:14 +010057 int "Device Vendor ID"
C Freeman482e6fd2022-02-09 15:50:07 -050058 default 65521 # 0xFFF1
Damian Królik93bc7f72022-01-18 14:25:38 +010059 range 0 65535
60 help
Damian Królik774d06c2023-01-19 16:03:14 +010061 Provides the 16-bit numeric identifier of the device manufacturer,
62 assigned by Connectivity Standards Alliance. The identifier is exposed as
63 an attribute of the Basic Informationcluster, and included in the header
64 of the generated Matter Over-the-air (OTA) update image.
Damian Królik93bc7f72022-01-18 14:25:38 +010065
Damian Królik63803aa2022-12-23 09:50:48 +010066config CHIP_DEVICE_VENDOR_NAME
Damian Królik774d06c2023-01-19 16:03:14 +010067 string "Device vendor name"
Damian Królik63803aa2022-12-23 09:50:48 +010068 help
Damian Królik774d06c2023-01-19 16:03:14 +010069 Provides a human-readable name of the device manufacturer. The name is
70 exposed as an attribute of the Basic Information cluster.
Damian Królik63803aa2022-12-23 09:50:48 +010071
Damian Królik93bc7f72022-01-18 14:25:38 +010072config CHIP_DEVICE_PRODUCT_ID
Damian Królik774d06c2023-01-19 16:03:14 +010073 int "Product ID"
C Freeman482e6fd2022-02-09 15:50:07 -050074 default 32768 # 0x8000
Damian Królik93bc7f72022-01-18 14:25:38 +010075 range 0 65535
76 help
Damian Królik774d06c2023-01-19 16:03:14 +010077 Provides the 16-bit numeric identifier of the product, assigned by the
78 device manufacturer. The identifier is exposed as an attribute of the
79 Basic Information cluster, and included in the header of the generated
80 Matter over-the-air (OTA) update image.
Damian Królik93bc7f72022-01-18 14:25:38 +010081
Damian Królik63803aa2022-12-23 09:50:48 +010082config CHIP_DEVICE_PRODUCT_NAME
Damian Królik774d06c2023-01-19 16:03:14 +010083 string "Product name"
Damian Królik63803aa2022-12-23 09:50:48 +010084 default "not-specified"
85 help
Damian Królik774d06c2023-01-19 16:03:14 +010086 Provides a human-readable product name, such as the model number, assigned
87 by the device manufacturer. The name is exposed as an attribute of the
88 Basic Information cluster.
Damian Królik63803aa2022-12-23 09:50:48 +010089
90config CHIP_DEVICE_HARDWARE_VERSION
Damian Królik774d06c2023-01-19 16:03:14 +010091 int "Hardware version"
Damian Królik63803aa2022-12-23 09:50:48 +010092 default 0
93 help
Damian Królik774d06c2023-01-19 16:03:14 +010094 Provides the 16-bit hardware version number, assigned by the device
95 manufacturer. The number is exposed as an attribute of the Basic
96 Information cluster.
Damian Królik63803aa2022-12-23 09:50:48 +010097
98config CHIP_DEVICE_HARDWARE_VERSION_STRING
Damian Królik774d06c2023-01-19 16:03:14 +010099 string "Hardware version string"
Damian Królik63803aa2022-12-23 09:50:48 +0100100 default "prerelease"
101 help
Damian Królik774d06c2023-01-19 16:03:14 +0100102 Provides a human-readable representation of the hardware version number.
103 This must be an ASCII string of a length between 1 and 64 characters. The
104 hardware version string is exposed as an attribute of the Basic
105 Information cluster.
Damian Królik63803aa2022-12-23 09:50:48 +0100106
Łukasz Dudabdd33bd2024-05-06 14:35:46 +0200107if "$(APPVERSION)"=""
Damian Królik93bc7f72022-01-18 14:25:38 +0100108config CHIP_DEVICE_SOFTWARE_VERSION
Damian Królik774d06c2023-01-19 16:03:14 +0100109 int "Software version"
Damian Królik93bc7f72022-01-18 14:25:38 +0100110 default 0
111 range 0 4294967295
112 help
Damian Królik774d06c2023-01-19 16:03:14 +0100113 Provides the 32-bit software version number. The number is exposed as an
114 attribute of the Basic Information cluster, and included in the header of
115 the generated Matter Over-the-air (OTA) update image. The exact numbering
116 scheme is up to the device manufacturer. However, when using the Matter
117 OTA mechanism, only updates to higher versions than the current one are
118 accepted.
Damian Królik93bc7f72022-01-18 14:25:38 +0100119
120config CHIP_DEVICE_SOFTWARE_VERSION_STRING
Damian Królik774d06c2023-01-19 16:03:14 +0100121 string "Software version string"
Damian Królik93bc7f72022-01-18 14:25:38 +0100122 default "prerelease"
123 help
Damian Królik774d06c2023-01-19 16:03:14 +0100124 Provides a human-readable representation of the software version number.
125 This must be an ASCII string of a length between 1 and 64 characters. The
126 software version string is exposed as an attribute of the Basic
127 Information cluster, and included in the header of the generated Matter
128 over-the-air (OTA) update image.
Łukasz Dudabdd33bd2024-05-06 14:35:46 +0200129endif
Damian Królik93bc7f72022-01-18 14:25:38 +0100130
Damian Królik63803aa2022-12-23 09:50:48 +0100131config CHIP_DEVICE_MANUFACTURING_DATE
Damian Królik774d06c2023-01-19 16:03:14 +0100132 string "Manufacturing date (ISO 8601 format)"
Damian Królik63803aa2022-12-23 09:50:48 +0100133 default "2022-01-01"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300134 help
Damian Królik774d06c2023-01-19 16:03:14 +0100135 Provides the device manufacturing date in the ISO 8601 format: YYYY-MM-DD.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300136
Damian Królik63803aa2022-12-23 09:50:48 +0100137config CHIP_DEVICE_SERIAL_NUMBER
Damian Królik774d06c2023-01-19 16:03:14 +0100138 string "Device serial number"
Damian Królik63803aa2022-12-23 09:50:48 +0100139 default "11223344556677889900"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300140 help
Damian Królik774d06c2023-01-19 16:03:14 +0100141 Provides a human-readable representation of the device serial number that
142 uniquely identifies the device. This must be an ASCII string of no more
143 than 32 characters.
Damian Królik63803aa2022-12-23 09:50:48 +0100144
145config CHIP_DEVICE_ROTATING_DEVICE_UID
Damian Królik774d06c2023-01-19 16:03:14 +0100146 string "Rotating device ID unique ID (HEX format)"
Damian Królik63803aa2022-12-23 09:50:48 +0100147 default "91a9c12a7c80700a31ddcfa7fce63e44"
148 help
Damian Królik774d06c2023-01-19 16:03:14 +0100149 Provides a unique identifier of the device. This ID is used to derive the
150 rotating device identifier, which allows commissioners to discover the
151 device in a privacy-preserving way. The identifier must be a string of at
152 least 16 bytes encoded in HEX.
Damian Królik63803aa2022-12-23 09:50:48 +0100153
154config CHIP_DEVICE_TYPE
Damian Królik774d06c2023-01-19 16:03:14 +0100155 int "Primary device type"
Damian Królik63803aa2022-12-23 09:50:48 +0100156 default 65535
157 range 0 65535
158 help
Damian Królik774d06c2023-01-19 16:03:14 +0100159 Provides the primary device type implemented by the node. This must be one
160 of the device type identifiers defined in the Matter Device Library
161 specification.
Damian Królik63803aa2022-12-23 09:50:48 +0100162
163config CHIP_DEVICE_DISCRIMINATOR
164 hex "Device pairing discriminator"
165 default 0xF00
166 help
Damian Królik774d06c2023-01-19 16:03:14 +0100167 Provides a 12-bit identifier that is used to discover the device during
168 the commissioning.
Damian Królik63803aa2022-12-23 09:50:48 +0100169
170config CHIP_DEVICE_SPAKE2_PASSCODE
Damian Królik774d06c2023-01-19 16:03:14 +0100171 int "SPAKE2+ passcode"
Damian Królik63803aa2022-12-23 09:50:48 +0100172 default 20202021
173 range 1 99999998
174 help
Damian Królik774d06c2023-01-19 16:03:14 +0100175 Provides a pairing passcode. This is a 27-bit unsigned integer that serves
176 as a proof of possession during the commissioning. The passcode must be
177 a value between 1 and 99999998, excluding the following invalid passcodes:
178 00000000, 11111111, 22222222, 33333333, 44444444, 55555555,
Damian Królik63803aa2022-12-23 09:50:48 +0100179 66666666, 77777777, 88888888, 99999999, 12345678, 87654321.
180
181config CHIP_DEVICE_SPAKE2_IT
Damian Królik774d06c2023-01-19 16:03:14 +0100182 int "SPAKE2+ iteration count"
Damian Królik63803aa2022-12-23 09:50:48 +0100183 default 1000
184 help
Damian Królik774d06c2023-01-19 16:03:14 +0100185 Provides the SPAKE2+ iteration count, which is one of the input parameters
186 for the PBKDF operation, used to generate the SPAKE2+ verifier.
Damian Królik63803aa2022-12-23 09:50:48 +0100187
188config CHIP_DEVICE_SPAKE2_SALT
Damian Królik774d06c2023-01-19 16:03:14 +0100189 string "SPAKE2+ salt (base64 format)"
Damian Królik63803aa2022-12-23 09:50:48 +0100190 default "U1BBS0UyUCBLZXkgU2FsdA=="
191 help
Damian Królik774d06c2023-01-19 16:03:14 +0100192 Provides the SPAKE2+ salt, which is one of the input parameters for the
193 PBKDF operation, used to generate the SPAKE2+ verifier. The salt must be
194 of a length between 16 and 32 bytes and it should be randomly generated
195 for each SPAKE2+ passcode.
Damian Królik63803aa2022-12-23 09:50:48 +0100196
197config CHIP_DEVICE_SPAKE2_TEST_VERIFIER
Damian Królik774d06c2023-01-19 16:03:14 +0100198 string "SPAKE2+ verifier for testing purposes (base64 format)"
Damian Królik63803aa2022-12-23 09:50:48 +0100199 default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw=="
200 help
Damian Królik774d06c2023-01-19 16:03:14 +0100201 Provides the SPAKE2+ verifier that was generated using the configured
202 SPAKE2+ passcode, iteration count and salt. This configuration option can
203 be used for development or testing purposes. The default value was
204 generated using the following command:
205 ./scripts/tools/spake2p/spake2p.py gen-verifier -i 1000 -s U1BBS0UyUCBLZXkgU2FsdA== -p 20202021
Damian Królik63803aa2022-12-23 09:50:48 +0100206
207config CHIP_DEVICE_ENABLE_KEY
Damian Królik774d06c2023-01-19 16:03:14 +0100208 string "Enable Key for triggering test actions (HEX format)"
Damian Królik63803aa2022-12-23 09:50:48 +0100209 default "00112233445566778899AABBCCDDEEFF"
210 help
Damian Królik774d06c2023-01-19 16:03:14 +0100211 Provides the Enable Key, which is a 16-byte value encoded in HEX that
212 must be provided in the TestEventTrigger command to trigger a requested
213 test action. This value is used during certification tests, and should not
214 be present on devices in production environment.
Damian Królik63803aa2022-12-23 09:50:48 +0100215
Arkadiusz Bałys5f1a60b2023-05-16 07:15:22 +0200216config CHIP_DEVICE_PRODUCT_FINISH
217 string "Description of the product's external case finish method"
218 default "other"
219 help
220 provides a description of the product's external case finish method.
221 Possible values:
222 other; matte; satin; polished; rugged; fabric
223
224config CHIP_DEVICE_PRODUCT_COLOR
225 string "Description of the product's primary color"
226 help
227 provides a description of the product's primary color.
228 Possible values:
229 black; navy; green; teal; maroon; purple; olive; gray; blue; lime;
230 aqua; red; fuchsia; yellow; white; nickel; chrome; brass; cooper;
231 silver; gold.
232
Damian Królik63803aa2022-12-23 09:50:48 +0100233# Matter optional features and parameters
234
235config CHIP_ENABLE_PAIRING_AUTOSTART
Damian Królik774d06c2023-01-19 16:03:14 +0100236 bool "Open commissioning window on boot"
Damian Królik63803aa2022-12-23 09:50:48 +0100237 default n
238 help
Damian Królik774d06c2023-01-19 16:03:14 +0100239 Opens the commissioning window automatically at application boot time if
240 the node is not yet commissioned.
Damian Królik63803aa2022-12-23 09:50:48 +0100241
242config CHIP_OTA_REQUESTOR
Damian Królik774d06c2023-01-19 16:03:14 +0100243 bool "OTA Software Update Requestor"
Damian Królik63803aa2022-12-23 09:50:48 +0100244 help
Damian Królik774d06c2023-01-19 16:03:14 +0100245 Enables over-the-air (OTA) Requestor role that allows the node to perform
Damian Królik63803aa2022-12-23 09:50:48 +0100246 Device Firmware Upgrade by quering and downloading a new firmware image
Damian Królik774d06c2023-01-19 16:03:14 +0100247 from a peer OTA Provider node.
Damian Królik63803aa2022-12-23 09:50:48 +0100248
249config CHIP_ROTATING_DEVICE_ID
Damian Królik774d06c2023-01-19 16:03:14 +0100250 bool "Generate rotating device ID"
Damian Królik63803aa2022-12-23 09:50:48 +0100251 help
Damian Królik774d06c2023-01-19 16:03:14 +0100252 Enables the rotating device identifier that provides a non-trackable
253 identifier. The identifier is unique per device and rotates at pre-defined
254 moments.
Damian Królik63803aa2022-12-23 09:50:48 +0100255
256config CHIP_COMMISSIONABLE_DEVICE_TYPE
Damian Królik774d06c2023-01-19 16:03:14 +0100257 bool "Include device type subtype in commissionable node discovery record"
Damian Królik63803aa2022-12-23 09:50:48 +0100258 help
Damian Królik774d06c2023-01-19 16:03:14 +0100259 Includes the device type subtype in the commissionable node discovery
260 record. This allows a commissioner to find the node when looking for
261 a specific device type.
Damian Królik63803aa2022-12-23 09:50:48 +0100262
263config CHIP_EXTENDED_DISCOVERY
Damian Królik774d06c2023-01-19 16:03:14 +0100264 bool "Extended discovery"
Damian Królik63803aa2022-12-23 09:50:48 +0100265 help
Damian Królik774d06c2023-01-19 16:03:14 +0100266 Enables advertising of the commissionable node service even if the node
267 does not have the commissioning window open.
Damian Królik63803aa2022-12-23 09:50:48 +0100268
269config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL
Damian Królik774d06c2023-01-19 16:03:14 +0100270 int "Total operational time save interval (hours unit)"
Damian Królik63803aa2022-12-23 09:50:48 +0100271 default 10
272 range 1 4294967295
273 help
Damian Królik774d06c2023-01-19 16:03:14 +0100274 Provides an interval in hours with which the node operational time is
275 saved to the flash memory. The provided value is a trade-off between
276 performing frequent saves to know the precise operational time (in case of
277 device reboot) and maximizing the flash memory lifetime.
Damian Królik63803aa2022-12-23 09:50:48 +0100278
279config CHIP_CRYPTO_PSA
280 bool "Use PSA crypto API for cryptographic operations"
281 help
Damian Królik774d06c2023-01-19 16:03:14 +0100282 Enables the implementation of the Matter cryptographic operations that is
283 based on the PSA crypto API (instead of the default implementation, which
284 is based on the legacy mbedTLS APIs).
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300285
Damian Królik5a845c62023-02-02 10:51:40 +0100286config CHIP_PERSISTENT_SUBSCRIPTIONS
287 bool "Persistent subscriptions"
288 help
289 Persists Matter subscriptions on the publisher node. This feature allows
290 a Matter node to faster get back to the previous operation after it went
291 offline, for example, due to a power outage. That is, the node can use the
292 persisted subscription information to quickly re-establish the previous
293 subscriptions instead of waiting for the subscriber node to realize that
294 the publisher is alive again.
295
Damian Królik2049ef52023-08-29 18:21:07 +0200296config CHIP_STATISTICS
297 bool "Resource usage statistics"
298 help
299 Enables tracking the current and the top usage of critical resources used
300 by the Matter stack, such as packet buffers, timers or exchange contexts.
301
Kamil Kasperczyk2f0c6912021-06-25 00:33:52 +0200302config CHIP_LIB_SHELL
Damian Królik774d06c2023-01-19 16:03:14 +0100303 bool "Matter shell commands"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300304 default n
Kamil Kasperczyk2f0c6912021-06-25 00:33:52 +0200305 imply SHELL
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300306 help
Damian Królik774d06c2023-01-19 16:03:14 +0100307 Enables linking the application with the library that contains Matter
308 shell commands.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300309
Damian Królik63803aa2022-12-23 09:50:48 +0100310config CHIP_PROJECT_CONFIG
Damian Królik774d06c2023-01-19 16:03:14 +0100311 string "Project configuration file for Matter"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300312 help
Damian Królik774d06c2023-01-19 16:03:14 +0100313 Provides a path to the project configuration file for Matter. The path can
314 be either absolute or relative to the application directory. If specified,
315 Matter's generic configuration files will include the project
316 configuration file that can be used to override any of Matter's default or
317 platform-specific settings.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300318
Damian Królik63803aa2022-12-23 09:50:48 +0100319# Thread network features
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300320
321config CHIP_ENABLE_DNSSD_SRP
Damian Królik774d06c2023-01-19 16:03:14 +0100322 bool "OpenThread Service Registration Protocol"
Kamil Kasperczyk5a23ad52024-04-26 15:52:29 +0200323 default y
324 depends on NET_L2_OPENTHREAD
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300325 imply OPENTHREAD_ECDSA
326 imply OPENTHREAD_SRP_CLIENT
327 help
Damian Królik774d06c2023-01-19 16:03:14 +0100328 Enables using the OpenThread SRP client for the Matter service
329 advertising.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300330
Kamil Kasperczyk13888a62021-07-13 11:15:30 +0200331config CHIP_ENABLE_DNS_CLIENT
Damian Królik774d06c2023-01-19 16:03:14 +0100332 bool "OpenThread DNS client"
Kamil Kasperczyk5a23ad52024-04-26 15:52:29 +0200333 default y
334 depends on NET_L2_OPENTHREAD
Kamil Kasperczyk13888a62021-07-13 11:15:30 +0200335 imply OPENTHREAD_DNS_CLIENT
336 help
Damian Królik774d06c2023-01-19 16:03:14 +0100337 Enables using the OpenThread DNS client for the Matter service discovery.
Kamil Kasperczyk13888a62021-07-13 11:15:30 +0200338
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200339config CHIP_ENABLE_ICD_SUPPORT
340 bool "Matter Intermittently Connected Devices support"
Kamil Kasperczykd591d1f2021-11-04 15:01:46 +0100341 default n
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200342 imply OPENTHREAD_MTD_SED if NET_L2_OPENTHREAD
Kamil Kasperczykd591d1f2021-11-04 15:01:46 +0100343 help
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200344 Enables the Intermittently Connected Device (ICD) support in Matter.
Kamil Kasperczykd591d1f2021-11-04 15:01:46 +0100345
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200346if CHIP_ENABLE_ICD_SUPPORT
Damian Królike8daffa2022-06-16 02:25:50 +0200347
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200348config CHIP_ICD_SLOW_POLL_INTERVAL
349 int "Intermittently Connected Device slow polling interval (ms)"
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100350 default 30000 if CHIP_ICD_LIT_SUPPORT
Damian Królike8daffa2022-06-16 02:25:50 +0200351 default 1000
352 help
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200353 Provides the Intermittently Connected Device slow polling interval in milliseconds while the
354 device is in the idle mode. It determines the fastest frequency at which the device will be able
355 to receive the messages in the idle mode.
Damian Królike8daffa2022-06-16 02:25:50 +0200356
Kamil Kasperczykc552dda2024-09-03 08:41:22 +0200357config CHIP_ICD_SIT_SLOW_POLL_LIMIT
358 int "Intermittently Connected Device slow polling interval limit for device in SIT mode (ms)"
359 default 15000
360 range 0 15000
361 help
362 Provides the limit for Intermittently Connected Device slow polling interval in milliseconds while the
363 device is in the SIT mode. By spec, this value cannot exceed 15 s (spec 9.16.1.5). This value can be
364 used for the LIT device, to limit the slow poll interval used while temporarily working in the SIT mode.
365
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200366config CHIP_ICD_FAST_POLLING_INTERVAL
367 int "Intermittently Connected Device fast polling interval (ms)"
Damian Królike8daffa2022-06-16 02:25:50 +0200368 default 200
369 help
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200370 Provides the Intermittently Connected Device fast polling interval in milliseconds while the
371 device is in the active mode. It determines the fastest frequency at which the device will be able
372 to receive the messages in the active mode. The CHIP_ICD_FAST_POLLING_INTERVAL shall be smaller than
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100373 CHIP_ICD_ACTIVE_MODE_DURATION.
Damian Królike8daffa2022-06-16 02:25:50 +0200374
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100375config CHIP_ICD_IDLE_MODE_DURATION
376 int "Intermittently Connected Device idle mode duration (s)"
377 default 300 if CHIP_ICD_LIT_SUPPORT
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200378 default 120
379 help
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100380 Provides the Intermittently Connected Device idle mode duration in seconds.
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200381 It determines the maximum amount of time the device can stay in the idle mode, which means the
382 device may be unreachable and not able to receive messages.
383
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100384config CHIP_ICD_ACTIVE_MODE_DURATION
385 int "Intermittently Connected Device active mode duration (ms)"
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200386 default 300
387 help
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100388 Provides the Intermittently Connected Device active mode duration in milliseconds.
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200389 It determines the minimum amount of time the device shall stay in the active mode.
390
391config CHIP_ICD_ACTIVE_MODE_THRESHOLD
392 int "Intermittently Connected Device active mode threshold (ms)"
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100393 default 5000 if CHIP_ICD_LIT_SUPPORT
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200394 default 300
395 help
396 Provides the Intermittently Connected Device active mode threshold in milliseconds.
397 It determines the minimum amount of time the device shall stay in the active mode after the network activity.
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100398 For LIT devices it cannot be set to a value smaller than 5000 ms.
399
400config CHIP_ICD_LIT_SUPPORT
Kamil Kasperczyk4e152832024-09-18 08:30:33 +0200401 bool "Intermittently Connected Device Long Idle Time support"
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100402 imply CHIP_ICD_CHECK_IN_SUPPORT
403 imply CHIP_ICD_UAT_SUPPORT
404 help
405 Enables the Intermittently Connected Device Long Idle Time support in Matter.
406 It also implies the ICD Check-In and UAT features support that are mandatory for LIT device.
407
408config CHIP_ICD_CHECK_IN_SUPPORT
Kamil Kasperczyk4e152832024-09-18 08:30:33 +0200409 bool "Intermittently Connected Device Check-In protocol support"
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100410 help
411 Enables the Check-In protocol support in Matter. It allows an ICD device to notify the registered
412 ICD clients that it is available for communication.
413
414config CHIP_ICD_UAT_SUPPORT
Kamil Kasperczyk4e152832024-09-18 08:30:33 +0200415 bool "Intermittently Connected Device User Active Mode Trigger support"
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100416 help
417 Enables the User Active Mode Trigger (UAT) support in Matter. It allows the User to use application specific
418 means (e.g. button press) to trigger an ICD device to enter the active mode and become responsive.
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200419
Kamil Kasperczyk4e152832024-09-18 08:30:33 +0200420config CHIP_ICD_DSLS_SUPPORT
421 bool "Intermittenttly Connected Device Dynamic SIT LIT support"
422 depends on CHIP_ICD_LIT_SUPPORT
423 help
424 Enables the Dynamic SIT LIT support in Matter. It allows the application to dynamically switch between
425 SIT and LIT modes, as long as the requirements for these modes are met (e.g. device has at least one active ICD client).
426
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200427config CHIP_ICD_CLIENTS_PER_FABRIC
428 int "Intermittently Connected Device number of clients per fabric"
429 default 2
Kamil Kasperczyk91ba8b62024-02-14 10:28:02 +0100430 depends on CHIP_ICD_CHECK_IN_SUPPORT
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200431 help
432 Provides the Intermittently Connected Device number of clients per fabric. It determines the maximum number
433 of clients per fabric that can be registered to receive notification from a device if their subscription is lost.
434
435endif # CHIP_ENABLE_ICD_SUPPORT
Damian Królike8daffa2022-06-16 02:25:50 +0200436
Kamil Kasperczyk10bb2fd2022-04-28 03:21:18 +0200437config CHIP_THREAD_SSED
Arkadiusz Bałyse6a1e8e2022-11-25 15:50:18 +0100438 bool "Enable Thread Synchronized Sleepy End Device support"
Kamil Kasperczyk97fb6662023-09-13 12:33:41 +0200439 depends on OPENTHREAD_CSL_RECEIVER && CHIP_ENABLE_ICD_SUPPORT
Arkadiusz Bałyse6a1e8e2022-11-25 15:50:18 +0100440 help
Damian Królik774d06c2023-01-19 16:03:14 +0100441 Enables the Thread Synchronized Sleepy End Device support in Matter.
Kamil Kasperczyk10bb2fd2022-04-28 03:21:18 +0200442
Damian Królik63803aa2022-12-23 09:50:48 +0100443config CHIP_OPENTHREAD_CONFIG
444 string "Custom OpenThread configuration file"
Kamil Kasperczyk5a23ad52024-04-26 15:52:29 +0200445 depends on NET_L2_OPENTHREAD
Damian Królik79fe72a2021-11-23 10:26:03 +0100446 help
Damian Królik774d06c2023-01-19 16:03:14 +0100447 Provides a path to an OpenThread configuration file. The path can be
448 either absolute or relative to the application directory. When this option
449 is specified, it replaces the OpenThread configuration file supplied by
450 Zephyr.
Damian Królik79fe72a2021-11-23 10:26:03 +0100451
Damian Królik63803aa2022-12-23 09:50:48 +0100452# Platform additions and configuration
Kamil Kasperczyk6bb25d52022-01-12 23:07:33 +0100453
Damian Królik63803aa2022-12-23 09:50:48 +0100454config CHIP_CERTIFICATION_DECLARATION_STORAGE
Damian Królik774d06c2023-01-19 16:03:14 +0100455 bool "Certification Declaration settings storage"
Damian Królik63803aa2022-12-23 09:50:48 +0100456 depends on CHIP_FACTORY_DATA
Kamil Kasperczyk914ba3e2022-01-20 10:02:33 +0100457 help
Damian Królik774d06c2023-01-19 16:03:14 +0100458 Enables storing of the Certification Declaration in Zephyr settings
459 instead of using the hardcoded value from firmware. This option also adds
Damian Królik63803aa2022-12-23 09:50:48 +0100460 support for including new Certification Declaration into a firmware
Damian Królik774d06c2023-01-19 16:03:14 +0100461 update image package that is sent as part of the OTA software update.
Kamil Kasperczyk914ba3e2022-01-20 10:02:33 +0100462
Damian Królik63803aa2022-12-23 09:50:48 +0100463if CHIP_CERTIFICATION_DECLARATION_STORAGE
Kamil Kasperczyk914ba3e2022-01-20 10:02:33 +0100464
Damian Królik63803aa2022-12-23 09:50:48 +0100465config CHIP_CERTIFiCATION_DECLARATION_OTA_IMAGE_ID
Damian Królik774d06c2023-01-19 16:03:14 +0100466 int "Certification declaration OTA image ID"
Damian Królik63803aa2022-12-23 09:50:48 +0100467 default 205 #0xcd
Kamil Kasperczyk1798b152021-12-22 08:57:20 +0100468 help
Damian Królik774d06c2023-01-19 16:03:14 +0100469 Provides the image ID of the Certification Declaration image for sending
470 it as part of the OTA software update.
Kamil Kasperczyk1798b152021-12-22 08:57:20 +0100471
Damian Królik63803aa2022-12-23 09:50:48 +0100472endif
Damian Królik9bd50492022-10-26 19:25:16 +0200473
Damian Królik6d609972022-11-04 08:42:18 +0100474config CHIP_FACTORY_RESET_ERASE_NVS
475 bool "Erase NVS flash pages on factory reset"
476 depends on SETTINGS_NVS
477 help
Damian Królik774d06c2023-01-19 16:03:14 +0100478 Erases flash pages occupied by non-volatile storage when a factory reset
479 is requested, instead of removing Matter-related settings only. Enabling
480 this option provides a more robust factory reset mechanism and allows to
481 regain the original storage performance if any firmware issue has brought
482 it to an unexpected state. For this reason, set this option if the entire
483 configuration is supposed to be cleared on a factory reset, including
484 device-specific entries.
Damian Królik6d609972022-11-04 08:42:18 +0100485
Damian Królikf86c68c2022-04-04 12:56:01 +0200486config CHIP_MALLOC_SYS_HEAP
487 bool "Memory allocator based on Zephyr sys_heap"
488 imply SYS_HEAP_RUNTIME_STATS
489 help
Damian Królik774d06c2023-01-19 16:03:14 +0100490 Enables memory allocation functions that imitate the default malloc,
Damian Królikf86c68c2022-04-04 12:56:01 +0200491 calloc, realloc and free, based on sys_heap from Zephyr RTOS.
492
493if CHIP_MALLOC_SYS_HEAP
494
495config CHIP_MALLOC_SYS_HEAP_OVERRIDE
Damian Królik774d06c2023-01-19 16:03:14 +0100496 bool "Override default allocator with memory allocator based on Zephyr sys_heap"
Damian Królikf86c68c2022-04-04 12:56:01 +0200497 default y
498 help
Damian Królik774d06c2023-01-19 16:03:14 +0100499 Replaces the default memory allocation functions (such as malloc, calloc,
500 realloc, free, and their reentrant versions) with their counterparts based
Damian Królikf86c68c2022-04-04 12:56:01 +0200501 on sys_heap from Zephyr RTOS.
502
503config CHIP_MALLOC_SYS_HEAP_SIZE
504 int "Heap size used by memory allocator based on Zephyr sys_heap"
Kamil Kasperczyk5dc74632023-03-07 18:02:45 +0100505 default 12288 # 12kB
Damian Królikf86c68c2022-04-04 12:56:01 +0200506 help
Damian Królik774d06c2023-01-19 16:03:14 +0100507 Provides a value that controls how much of the device RAM is reserved for
508 the heap used by the memory allocation functions based on sys_heap from
509 Zephyr RTOS.
Damian Królikf86c68c2022-04-04 12:56:01 +0200510
Kamil Kasperczyk61463822023-11-03 14:56:15 +0100511config CHIP_MALLOC_SYS_HEAP_WATERMARKS_SUPPORT
512 bool "Enable support for heap watermarks based on Zephyr sys_heap"
513 help
514 Enables support for getting current heap high watermark and resetting
515 watermarks.
516
Damian Królikf86c68c2022-04-04 12:56:01 +0200517endif
518
Damian Królik63803aa2022-12-23 09:50:48 +0100519module = MATTER
520module-str = Matter
521source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"
522
523# Build system options
524
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300525config APP_LINK_WITH_CHIP
Damian Królik774d06c2023-01-19 16:03:14 +0100526 bool "Link application with Matter libraries"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300527 default y
528 help
Damian Królik774d06c2023-01-19 16:03:14 +0100529 Adds Matter directories to the 'app' target include paths and links the
530 'app' target with Matter libraries.
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300531
Damian Królik63803aa2022-12-23 09:50:48 +0100532config CHIP_PW_RPC
Damian Królik774d06c2023-01-19 16:03:14 +0100533 bool "Pigweed RPC library"
Damian Królik63803aa2022-12-23 09:50:48 +0100534 default n
535 help
Damian Królik774d06c2023-01-19 16:03:14 +0100536 Links the application with the libraries containing Pigweed RPC
537 functionalities.
Damian Królik63803aa2022-12-23 09:50:48 +0100538
539config CHIP_BUILD_TESTS
Damian Królik774d06c2023-01-19 16:03:14 +0100540 bool "Build Matter unit tests"
Damian Królik63803aa2022-12-23 09:50:48 +0100541 default n
542 help
Damian Królik774d06c2023-01-19 16:03:14 +0100543 Enables building Matter unit tests.
Damian Królik63803aa2022-12-23 09:50:48 +0100544
Damian Królik93bc7f72022-01-18 14:25:38 +0100545config CHIP_OTA_IMAGE_BUILD
546 bool "Generate OTA image"
547 help
Damian Królik774d06c2023-01-19 16:03:14 +0100548 Enables building Matter over-the-air (OTA) update image.
Damian Królik46684212022-02-27 11:40:14 +0100549
550if CHIP_OTA_IMAGE_BUILD
551
552config CHIP_OTA_IMAGE_FILE_NAME
553 string "OTA image file name"
554 default "matter.ota"
555 help
Damian Królik774d06c2023-01-19 16:03:14 +0100556 Provides the file name of the generated Matter OTA image.
Damian Królik93bc7f72022-01-18 14:25:38 +0100557
558config CHIP_OTA_IMAGE_EXTRA_ARGS
559 string "OTA image creator extra arguments"
Damian Królik93bc7f72022-01-18 14:25:38 +0100560 help
Damian Królik774d06c2023-01-19 16:03:14 +0100561 Provides optional arguments to the ota_image_tool.py script, used for
562 building Matter OTA image.
Damian Królik46684212022-02-27 11:40:14 +0100563
Damian Królik46684212022-02-27 11:40:14 +0100564endif
Damian Królik93bc7f72022-01-18 14:25:38 +0100565
Kamil Kasperczyk0b0d1162024-04-17 08:09:30 +0200566config CHIP_BLE_EXT_ADVERTISING
567 bool "Bluetooth LE extended advertising"
568 help
569 Enable Bluetooth LE extended advertising, which allows the device to advertise
570 Matter service over Bluetooth LE for a period of time longer than 15 minutes.
571 If this config is true,
572 CHIP_DEVICE_CONFIG_DISCOVERY_TIMEOUT_SECS define can be set up to 172800 seconds (48h).
573
574config CHIP_BLE_ADVERTISING_DURATION
575 int "Bluetooth LE advertising duration in minutes"
576 range 15 2880 if CHIP_BLE_EXT_ADVERTISING
577 range 0 15
578 default 15
579 help
580 Specify how long the device will advertise Matter service over Bluetooth LE in minutes.
581 If CHIP_BLE_EXT_ADVERTISING is set to false, the maximum duration time is 15 minutes,
582 else the maximum duration time can be extended to 2880 minutes (48h).
583
Andrei Litvinbba766b2024-09-13 15:24:56 -0400584config USE_CHIP_DATA_MODEL_INTERFACE
585 bool "Use a DataModel::Provider interface for data access"
586 help
587 This enables a level of indiraction in the CHIP interaction model engine in
588 accessing underlying data and executing operations such as
589 wildcard-expansion, read, write and invoke.
590
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300591endif