blob: 4fd9b7ec36d17c1f7cfcc1ac3d78f6bbe70fb405 [file] [log] [blame]
#
# 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