| # |
| # Copyright (c) 2021 Project CHIP Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| menuconfig CHIP |
| bool "Connected Home over IP protocol stack" |
| default n |
| select CPLUSPLUS |
| imply LIB_CPLUSPLUS |
| imply REQUIRES_FULL_LIBC |
| imply CBPRINTF_LIBC_SUBSTS |
| imply POSIX_API if !ARCH_POSIX |
| imply EVENTFD if !ARCH_POSIX |
| imply REBOOT |
| imply ENTROPY_GENERATOR |
| imply NET_UDP |
| imply NET_IPV6 |
| imply NET_CONFIG_NEED_IPV6 |
| imply NET_SOCKETS |
| imply NETWORKING |
| imply HWINFO |
| imply FLASH |
| imply FLASH_MAP |
| imply NVS |
| imply SETTINGS |
| help |
| This option enables Connected Home over IP libraries. |
| |
| if CHIP |
| |
| # Device and firmware identifers |
| |
| config CHIP_DEVICE_VENDOR_ID |
| int "Device vendor ID" |
| default 65521 # 0xFFF1 |
| range 0 65535 |
| help |
| Identifier of the device manufacturer, assigned by Connectivity Standards |
| Alliance. It is used in various CHIP areas, such as the Basic Information |
| cluster or OTA (Over-the-air update) image header. |
| |
| config CHIP_DEVICE_VENDOR_NAME |
| string "Human-readable vendor name" |
| help |
| A human-readable vendor name which provides a simple string |
| containing identification of device's vendor for the Content APP. |
| This information should be included in the Matter Basic Cluster. |
| |
| config CHIP_DEVICE_PRODUCT_ID |
| int "Device product ID" |
| default 32768 # 0x8000 |
| range 0 65535 |
| help |
| Identifier of the product, assigned by the device manufacturer. It is used |
| in various CHIP areas, such as the Basic Information cluster or OTA |
| (Over-the-air update) image header. |
| |
| config CHIP_DEVICE_PRODUCT_NAME |
| string "Human-readable product name" |
| default "not-specified" |
| help |
| A human-readable product name which provides a simple string |
| containing identification of the product for the Content APP. |
| |
| config CHIP_DEVICE_HARDWARE_VERSION |
| int "Integer representation of hardware version" |
| default 0 |
| help |
| A hardware version number specifies the version number |
| of the hardware of the device. The meaning of its value, |
| and the versioning scheme, are vendor defined. |
| |
| config CHIP_DEVICE_HARDWARE_VERSION_STRING |
| string "user-friendly string representation of hardware version" |
| default "prerelease" |
| help |
| A hardware version string parameter specifies the version |
| of the hardware of the device as a more user-friendly value |
| than that represented by the hardware version integer value. |
| The meaning of its value, and the versioning scheme, are |
| vendor defined. |
| |
| config CHIP_DEVICE_SOFTWARE_VERSION |
| int "Device software version" |
| default 0 |
| range 0 4294967295 |
| help |
| A number identifying the software version. It is used in various CHIP |
| areas, such as the Basic Information cluster or OTA (Over-the-air update) |
| image header. Note that due to the rollback protection a device will only |
| accept a software update whose version is greater than the current one. |
| |
| config CHIP_DEVICE_SOFTWARE_VERSION_STRING |
| string "Device software version string" |
| default "prerelease" |
| help |
| A string between 1 and 64 characters that provides a user-friendly |
| description of the numeric software version specified in |
| CHIP_DEVICE_SOFTWARE_VERSION. It is used in various CHIP areas, such as |
| the Basic Information cluster or OTA (Over-the-air update) image header. |
| |
| config CHIP_DEVICE_MANUFACTURING_DATE |
| string "Manufacturing date in ISO 8601" |
| default "2022-01-01" |
| help |
| A manufacturing date specifies the date that the device was manufactured. |
| The format used for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD. |
| |
| config CHIP_DEVICE_SERIAL_NUMBER |
| string "Serial number of device" |
| default "11223344556677889900" |
| help |
| A serial number parameter defines an unique number of manufactured device. |
| Maximum length of serial number is 32 characters. |
| |
| config CHIP_DEVICE_ROTATING_DEVICE_UID |
| string "A rotating device id unique id" |
| default "91a9c12a7c80700a31ddcfa7fce63e44" |
| help |
| A device rotating id unique id which will be generated if |
| this config is not set in prj.conf file. |
| |
| config CHIP_DEVICE_TYPE |
| int "Device type" |
| default 65535 |
| range 0 65535 |
| help |
| Type of device that uses the CHIP Device Type Identifier. The default value means invalid device type. |
| |
| config CHIP_DEVICE_DISCRIMINATOR |
| hex "Device pairing discriminator" |
| default 0xF00 |
| help |
| A 12-bit value matching the field of the same name in |
| the setup code. Discriminator is used during |
| a discovery process. |
| |
| config CHIP_DEVICE_SPAKE2_PASSCODE |
| int "Spake2+ passcode" |
| default 20202021 |
| range 1 99999998 |
| help |
| A pairing passcode is a 27-bit unsigned integer which serves |
| as a proof of possession during commissioning. |
| Its value shall be restricted to the values 0x0000001 to 0x5F5E0FE |
| (00000001 to 99999998 in decimal), excluding the invalid Passcode values: |
| - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, |
| 66666666, 77777777, 88888888, 99999999, 12345678, 87654321. |
| |
| config CHIP_DEVICE_SPAKE2_IT |
| int "Spake2+ iteration count" |
| default 1000 |
| help |
| The Spake2 iteration count is associated with the ephemeral |
| PAKE passcode verifier to be used for the commissioning. |
| The iteration count is used as a crypto parameter to process |
| spake2 verifier. |
| |
| config CHIP_DEVICE_SPAKE2_SALT |
| string "Spake2+ salt in string format" |
| default "U1BBS0UyUCBLZXkgU2FsdA==" |
| help |
| The spake2 salt is random data that is used as an additional input |
| to a one-way function that “hashes” data. |
| A new salt should be randomly generated for each password. |
| The minimum length of spake2 salt is 16 Bytes. |
| The maximum length of spake2 salt is 32 Bytes. |
| |
| config CHIP_DEVICE_SPAKE2_TEST_VERIFIER |
| string "Testing spake2+ verifier" |
| default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==" |
| help |
| The spake 2 verifier generated using default SPAKE2 salt, |
| iteration count and passcode. This value can be used for development |
| or testing purposes. |
| Generated with: |
| spake2p gen-verifier -o - -i 1000 -s "U1BBS0UyUCBLZXkgU2FsdA==" -p 20202021 |
| |
| config CHIP_DEVICE_ENABLE_KEY |
| string "Enable Key for triggering test actions on device" |
| default "00112233445566778899AABBCCDDEEFF" |
| help |
| The Enable Key is a 128-bit value that triggers test action |
| while invoking the TestEventTrigger Command. |
| Pattern: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" |
| This value is used during Certification Tests, |
| and should not be present on production devices. |
| |
| # Matter optional features and parameters |
| |
| config CHIP_ENABLE_PAIRING_AUTOSTART |
| bool "Enable pairing autostart" |
| default n |
| help |
| Open pairing window automatically at application boot time. |
| |
| config CHIP_OTA_REQUESTOR |
| bool "Enable OTA requestor" |
| help |
| Enables OTA (Over-the-air) Requestor role that allows a device to perform |
| Device Firmware Upgrade by quering and downloading a new firmware image |
| from an external OTA Provider node. |
| |
| config CHIP_ROTATING_DEVICE_ID |
| bool "Enable rotating device ID support" |
| help |
| Enables rotating device identifier that provides a non-trackable identifier |
| which is unique per device and rotates at pre-defined moments. |
| |
| config CHIP_COMMISSIONABLE_DEVICE_TYPE |
| bool "Enable the device type subtype in commissionable node discovery record" |
| depends on CHIP_ENABLE_DNSSD_SRP |
| help |
| Enables including device type subtype in the commissionable node discovery record, |
| which allows filtering of the results to find the nodes that match the device type. |
| |
| config CHIP_EXTENDED_DISCOVERY |
| bool "Enable extended discovery" |
| help |
| Enables the device to advertise commissionable service when not in the |
| commissioning mode. |
| |
| config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL |
| int "Interval of saving node operation time to flash in hours unit" |
| default 10 |
| range 1 4294967295 |
| help |
| Interval in hours with which the node operation time is saved to the flash |
| memory. Selected value is a trade off between performing frequent saves to know |
| precisely operation time in case of device reboot and maximizing flash memory |
| lifetime. |
| |
| config CHIP_CRYPTO_PSA |
| bool "Use PSA crypto API for cryptographic operations" |
| help |
| Use the backend for the Matter crypto layer that is based on PSA crypto |
| API instead of the default, based on legacy mbedTLS APIs. |
| |
| config CHIP_LIB_SHELL |
| bool "Enable CHIP shell library" |
| default n |
| imply SHELL |
| help |
| Link the application with the library containing CHIP shell commands. |
| |
| config CHIP_PROJECT_CONFIG |
| string "Project configuration file for CHIP" |
| help |
| Project configuration file for CHIP. If specified, CHIP generic |
| configuration files will include the project configuration file which can |
| be used to override any CHIP default or platform-specific settings. |
| |
| # Thread network features |
| |
| config CHIP_ENABLE_DNSSD_SRP |
| bool "Enable support for service registration" |
| default y if NET_L2_OPENTHREAD |
| imply OPENTHREAD_ECDSA |
| imply OPENTHREAD_SRP_CLIENT |
| help |
| Enables DNS-SD SRP client support |
| |
| config CHIP_ENABLE_DNS_CLIENT |
| bool "Enable support for DNS client" |
| default y |
| imply OPENTHREAD_DNS_CLIENT |
| help |
| Enables DNS client support used for resolving and browsing services. |
| |
| config CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT |
| bool "Enable sleepy end device support" |
| default n |
| depends on OPENTHREAD_MTD |
| imply OPENTHREAD_MTD_SED |
| help |
| Enables Thread Sleepy End Device support in Matter. |
| |
| if CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT |
| |
| config CHIP_SED_IDLE_INTERVAL |
| int "Sleepy End Device idle interval (ms)" |
| default 1000 |
| help |
| SED wake interval in milliseconds while the device is idle, meaning that |
| there is no active exchange to or from the device, and its commissioning |
| window is closed. |
| |
| config CHIP_SED_ACTIVE_INTERVAL |
| int "Sleepy End Device active interval (ms)" |
| default 200 |
| help |
| SED wake interval in milliseconds while the device is active, meaning that |
| there is an active exchange to or from the device, or its commissioning |
| window is open. |
| |
| endif # CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT |
| |
| config CHIP_THREAD_SSED |
| bool "Enable Thread Synchronized Sleepy End Device support" |
| depends on OPENTHREAD_CSL_RECEIVER && CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT |
| help |
| Enables Thread Synchronized Sleepy End Device support in Matter. |
| |
| config CHIP_OPENTHREAD_CONFIG |
| string "Custom OpenThread configuration file" |
| help |
| This option can be used to replace Zephyr-supplied OpenThread |
| configuration file with a custom one. |
| |
| # Platform additions and configuration |
| |
| config CHIP_CERTIFICATION_DECLARATION_STORAGE |
| bool "Enable storing Certification Declaration" |
| depends on CHIP_FACTORY_DATA |
| help |
| Enables storing Certification Declaration in Zephyr settings |
| instead of using hardcoded value from firmware. It also adds |
| support for including new Certification Declaration into a firmware |
| update image package sent via OTA Software Update. |
| |
| if CHIP_CERTIFICATION_DECLARATION_STORAGE |
| |
| config CHIP_CERTIFiCATION_DECLARATION_OTA_IMAGE_ID |
| int "Certification declaration OTA image id" |
| default 205 #0xcd |
| help |
| The image id of Certification Declaration image |
| for sending it via OTA Software Update purposes. |
| |
| endif |
| |
| config CHIP_FACTORY_RESET_ERASE_NVS |
| bool "Erase NVS flash pages on factory reset" |
| depends on SETTINGS_NVS |
| help |
| When factory reset is requested, erase flash pages occupied by non-volatile storage |
| instead of removing Matter-related settings only. This provides a more robust |
| factory reset mechanism and allows to regain the original storage performance if any |
| firmware issue has brought it to an unexpected state. For this reason, it is |
| advisable to set this option if all configuration, including device-specific |
| entries, is supposed to be cleared on a factory reset. |
| |
| config CHIP_MALLOC_SYS_HEAP |
| bool "Memory allocator based on Zephyr sys_heap" |
| imply SYS_HEAP_RUNTIME_STATS |
| help |
| Enable memory allocation functions, imitating with the default malloc, |
| calloc, realloc and free, based on sys_heap from Zephyr RTOS. |
| |
| if CHIP_MALLOC_SYS_HEAP |
| |
| config CHIP_MALLOC_SYS_HEAP_OVERRIDE |
| bool "Override default allocator with custom one based on Zephyr sys_heap" |
| default y |
| help |
| Replace the default memory allocation functions, such as malloc, calloc, |
| realloc, free and their reentrant versions, with their counterparts based |
| on sys_heap from Zephyr RTOS. |
| |
| config CHIP_MALLOC_SYS_HEAP_SIZE |
| int "Heap size used by memory allocator based on Zephyr sys_heap" |
| default 16384 # 16kB |
| help |
| This value controls how much of the device RAM is reserved for the heap |
| used by the memory allocation functions based on sys_heap from Zephyr |
| RTOS. |
| |
| endif |
| |
| module = MATTER |
| module-str = Matter |
| source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" |
| |
| # Build system options |
| |
| config APP_LINK_WITH_CHIP |
| bool "Link 'app' with Connected Home over IP" |
| default y |
| help |
| Add Connected Home over IP header files to the 'app' include path |
| and link the 'app' with Connected Home over IP libraries. |
| |
| config CHIP_PW_RPC |
| bool "Enable Pigweed RPC library" |
| default n |
| help |
| Link the application with the library containing Pigweed RPC functionalities. |
| |
| config CHIP_BUILD_TESTS |
| bool "Build CHIP unit tests" |
| default n |
| help |
| This option enables building CHIP unit tests. |
| |
| config CHIP_OTA_IMAGE_BUILD |
| bool "Generate OTA image" |
| help |
| Enable building Matter OTA (Over-the-air update) image. |
| |
| if CHIP_OTA_IMAGE_BUILD |
| |
| config CHIP_OTA_IMAGE_FILE_NAME |
| string "OTA image file name" |
| default "matter.ota" |
| help |
| File name of the generated Matter OTA image. |
| |
| config CHIP_OTA_IMAGE_EXTRA_ARGS |
| string "OTA image creator extra arguments" |
| help |
| This option allows one to pass optional arguments to the ota_image_tool.py |
| script, used for building OTA image. |
| |
| endif |
| |
| endif |