blob: 7e3c2a6077d5ce97bc435ffa6ba708ae8bf15d6c [file] [log] [blame]
#
# Copyright (c) 2022 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.
#
# The purpose of this file is to define new default values of settings used when building Matter samples.
# This file only changes defaults and thus all symbols here must be promptless
# and safeguarded so that they only are applied when building Matter.
if CHIP
# ==============================================================================
# System configuration
# ==============================================================================
choice LIBC_IMPLEMENTATION
default NEWLIB_LIBC
endchoice
config ASSERT
default y
config ASSERT_NO_COND_INFO
default y
config ASSERT_NO_MSG_INFO
default y
config HW_STACK_PROTECTION
default y
config FPU
default y
config POSIX_MAX_FDS
default 16
config MAIN_STACK_SIZE
default 6144
config INIT_STACKS
default y
config SYSTEM_WORKQUEUE_STACK_SIZE
default 2560 if CHIP_WIFI
config HEAP_MEM_POOL_SIZE
default 80000 if CHIP_WIFI
config CHIP_MALLOC_SYS_HEAP_SIZE
default 30720 if CHIP_WIFI
default 8192 if NET_L2_OPENTHREAD
# We use sys_heap based allocators, so make sure we don't reserve unused libc heap anyway
config COMMON_LIBC_MALLOC_ARENA_SIZE
default -1
config NVS_LOOKUP_CACHE_SIZE
default 512
# ==============================================================================
# Zephyr networking configuration
# ==============================================================================
config NET_IPV6_MLD
default y
config NET_IPV6_NBR_CACHE
default y if CHIP_WIFI
default n if NET_L2_OPENTHREAD
config NET_IF_UNICAST_IPV6_ADDR_COUNT
default 6
config NET_IF_MCAST_IPV6_ADDR_COUNT
default 14
config NET_IF_IPV6_PREFIX_COUNT
default NET_IF_UNICAST_IPV6_ADDR_COUNT if CHIP_WIFI
config NET_PKT_RX_COUNT
default 8
config NET_PKT_TX_COUNT
default 8
config NET_BUF_RX_COUNT
default 16
config NET_BUF_TX_COUNT
default 16
config NET_SOCKETS_POLL_MAX
default 6 if CHIP_WIFI
# ==============================================================================
# Bluetooth Low Energy configuration
# ==============================================================================
config BT
default y
config BT_PERIPHERAL
default y
config BT_PERIPHERAL_PREF_MIN_INT
default 36
config BT_PERIPHERAL_PREF_MAX_INT
default 36
# Increase BT timeout to 5 s to improve connection reliability and avoid fast drop outs.
config BT_PERIPHERAL_PREF_TIMEOUT
default 500
config BT_GAP_AUTO_UPDATE_CONN_PARAMS
default y
# Decrease connection parameters update time, as some Matter controllers request
# enabling IP networking faster than BT connection parameters are updated, what may result
# in commissioning instabilities.
config BT_CONN_PARAM_UPDATE_TIMEOUT
default 1000
config BT_GATT_DYNAMIC_DB
default y
config BT_DEVICE_NAME_DYNAMIC
default y
config BT_DEVICE_NAME_MAX
default 15
config BT_MAX_CONN
default 1
config BT_L2CAP_TX_MTU
default 247
config BT_BUF_ACL_RX_SIZE
default 251
config BT_BUF_ACL_TX_SIZE
default 251
config BT_RX_STACK_SIZE
default 1200
# Increase maximum data length of PDU supported in the Controller
config BT_CTLR_DATA_LENGTH_MAX
default 251 if SOC_SERIES_NRF52X
config BT_CTLR_ECDH
default n
config BT_CTLR_LE_ENC
default n
config BT_DEVICE_NAME_GATT_WRITABLE
default n
config BT_GATT_CACHING
default n
# Disable 2M PHY due to interoperability issues.
config BT_CTLR_PHY_2M
default n
config MPSL_FEM_NRF21540_RUNTIME_PA_GAIN_CONTROL
default y if MPSL_FEM
# ==============================================================================
# NFC configuration
# ==============================================================================
config CHIP_NFC_COMMISSIONING
default y
# Disable not needed NFC callback to save flash
config NFC_THREAD_CALLBACK
default n
# ==============================================================================
# DFU configuration
# ==============================================================================
config CHIP_OTA_REQUESTOR
default y
# All boards except nRF7002DK use QSPI NOR external flash
config CHIP_QSPI_NOR
default y if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840
# nRF7002DK uses SPI NOR external flash
config CHIP_SPI_NOR
default y if BOARD_NRF7002DK_NRF5340_CPUAPP
config BOOT_IMAGE_ACCESS_HOOKS
default y if SOC_SERIES_NRF53X
config UPDATEABLE_IMAGE_NUMBER
default 2 if SOC_SERIES_NRF53X
# ==============================================================================
# OpenThread configuration
# ==============================================================================
config NET_L2_OPENTHREAD
default y if !WIFI_NRF700X
if NET_L2_OPENTHREAD
# Increase the default RX stack size
config IEEE802154_NRF5_RX_STACK_SIZE
default 1024
config OPENTHREAD_THREAD_STACK_SIZE
default 6144 if PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON
default 4096
config OPENTHREAD_DEFAULT_TX_POWER
default 20 if MPSL_FEM
default 3 if SOC_SERIES_NRF53X
default 8 if SOC_SERIES_NRF52X
endif # NET_L2_OPENTHREAD
# ==============================================================================
# Wi-Fi configuration
# ==============================================================================
if CHIP_WIFI
choice WPA_SUPP_LOG_LEVEL_CHOICE
default WPA_SUPP_LOG_LEVEL_ERR
endchoice
# it saves us 20kB of FLASH
config WPA_SUPP_NO_DEBUG
default y
config NRF700X_LOG_VERBOSE
default n
choice WIFI_NRF700X_LOG_LEVEL_CHOICE
default WIFI_NRF700X_LOG_LEVEL_OFF
endchoice
config NRF_WIFI_LOW_POWER
default n
config NRF700X_RX_NUM_BUFS
default 16
config NRF700X_MAX_TX_TOKENS
default 10
config NRF700X_MAX_TX_AGGREGATION
default 1
# it saves 25kB of FLASH
config WPA_SUPP_ADVANCED_FEATURES
default n
endif # CHIP_WIFI
# ==============================================================================
# Crypto configuration
# ==============================================================================
choice OPENTHREAD_SECURITY
default OPENTHREAD_NRF_SECURITY_PSA_CHOICE if CHIP_CRYPTO_PSA
default OPENTHREAD_NRF_SECURITY_CHOICE
endchoice
choice RNG_GENERATOR_CHOICE
default XOSHIRO_RANDOM_GENERATOR if SOC_SERIES_NRF53X
endchoice
config OBERON_BACKEND
default y
config MBEDTLS_ENABLE_HEAP
default y
config MBEDTLS_HEAP_SIZE
default 8192
# Enable PSA Crypto dependencies for Matter
config CHIP_CRYPTO_PSA
default y if !CHIP_WIFI
imply PSA_WANT_ALG_SPAKE2P_MATTER
if CHIP_CRYPTO_PSA
config PSA_CRYPTO_DRIVER_CC3XX
default n
config PSA_WANT_ALG_SHA_224
default n
# Extend the maximum number of PSA key slots to fit Matter requirements
config MBEDTLS_PSA_KEY_SLOT_COUNT
default 64
if PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON
# Do not use CC3XX hash driver when both Oberon and CC3xx are enabled.
config PSA_USE_CC3XX_HASH_DRIVER
default n
endif # PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON
# Spake2+ support
config MBEDTLS_MD_C
default y
endif # CHIP_CRYPTO_PSA
if !CHIP_CRYPTO_PSA
config NRF_SECURITY_ADVANCED
default y
config MBEDTLS_AES_C
default y
config MBEDTLS_CTR_DRBG_C
default y
config MBEDTLS_CIPHER_MODE_CTR
default y
config MBEDTLS_SHA1_C
default y if CHIP_WIFI
config MBEDTLS_SHA256_C
default y
config MBEDTLS_PK_C
default y
config MBEDTLS_PKCS5_C
default y
config MBEDTLS_PK_WRITE_C
default y
config MBEDTLS_X509_CREATE_C
default y
config MBEDTLS_X509_CSR_WRITE_C
default y
config MBEDTLS_ECP_C
default y
config MBEDTLS_ECP_DP_SECP256R1_ENABLED
default y
endif # !CHIP_CRYPTO_PSA
config MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
default n if CHIP_WIFI
config MBEDTLS_SSL_OUT_CONTENT_LEN
default 900 if CHIP_WIFI
# Disable unneeded crypto operations
config MBEDTLS_SHA384_C
default n
config MBEDTLS_SHA512_C
default n
config MBEDTLS_CIPHER_MODE_XTS
default n
config MBEDTLS_CHACHA20_C
default n
config MBEDTLS_POLY1305_C
default n
config MBEDTLS_CHACHAPOLY_C
default n
config MBEDTLS_GCM_C
default n
config MBEDTLS_RSA_C
default n
config MBEDTLS_SSL_SRV_C
default n
config MBEDTLS_SSL_COOKIE_C
default n
# ==============================================================================
# Logging configuration
# ==============================================================================
config LOG
default y
if LOG
choice LOG_MODE
default LOG_MODE_MINIMAL
endchoice
choice MATTER_LOG_LEVEL_CHOICE
default MATTER_LOG_LEVEL_DBG
endchoice
config CHIP_APP_LOG_LEVEL
default 4 # debug
config LOG_DEFAULT_LEVEL
default 1 # error
config CHIP_LOG_SIZE_OPTIMIZATION
default y
# disable synchronous printk to avoid blocking IRQs which
# may affect time sensitive components
config PRINTK_SYNC
default n
endif # LOG
# ==============================================================================
# Shell configuration
# ==============================================================================
config SHELL
default y
if SHELL
config SHELL_STACK_SIZE
default 2616 if CHIP_WIFI
config SHELL_MINIMAL
default y if !CHIP_MEMORY_PROFILING
config KERNEL_SHELL
default n if !CHIP_MEMORY_PROFILING
config SENSOR_SHELL
default n
config DEVICE_SHELL
default n
config DATE_SHELL
default n
config DEVMEM_SHELL
default n
config MCUBOOT_SHELL
default n
config CLOCK_CONTROL_NRF_SHELL
default n
config FLASH_SHELL
default n
config HWINFO_SHELL
default n
config OPENTHREAD_SHELL
default n if !CHIP_MEMORY_PROFILING
endif # SHELL
endif # CHIP