blob: af6292e186c41f510f3f3c6c35b5d835fb656e9a [file] [log] [blame] [edit]
#
# Copyright (c) 2024-2025 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.
#
rsource "../cmake/Kconfig.matter.common"
rsource "../cmake/Kconfig.matter.nxp"
rsource "../cmake/Kconfig.openthread.common"
rsource "../../../third_party/nxp/nxp_matter_support/cmake/Kconfig"
if CHIP
choice CHIP_NXP_PLATFORM_SELECTION
prompt "CHIP NXP platform selection"
config CHIP_NXP_PLATFORM_RW61X
bool "RW61x platform"
depends on MCUX_HW_DEVICE_RW612 || MCUX_HW_DEVICE_RW610
help
NXP RW61x platform.
config CHIP_NXP_PLATFORM_RT1170
bool "RT1170 platform"
depends on MCUX_HW_DEVICE_MIMXRT1171 || MCUX_HW_DEVICE_MIMXRT1172 || MCUX_HW_DEVICE_MIMXRT1173 || MCUX_HW_DEVICE_MIMXRT1175 || MCUX_HW_DEVICE_MIMXRT1176
help
NXP RT1170 platform.
config CHIP_NXP_PLATFORM_RT1060
bool "RT1060 platform"
depends on MCUX_HW_DEVICE_MIMXRT1061 || MCUX_HW_DEVICE_MIMXRT1062
help
NXP RT1060 platform.
config CHIP_NXP_PLATFORM_MCXW71
bool "mcxw71 platform"
depends on MCUX_HW_DEVICE_MCXW716C
help
NXP mcxw71 platform.
config CHIP_NXP_PLATFORM_MCXW72
bool "mcxw72 platform"
depends on MCUX_HW_DEVICE_MCXW727C
help
NXP mcxw72 platform.
endchoice # CHIP_NXP_PLATFORM_SELECTION
config CHIP_NXP_PLATFORM_FOLDER_NAME
string "NXP platform folder name"
default "rt/rw61x" if CHIP_NXP_PLATFORM_RW61X
default "rt/rt1170" if CHIP_NXP_PLATFORM_RT1170
default "rt/rt1060" if CHIP_NXP_PLATFORM_RT1060
default "mcxw71" if CHIP_NXP_PLATFORM_MCXW71
default "mcxw72" if CHIP_NXP_PLATFORM_MCXW72
default "not specified"
help
Defines the platform folder name to be used.
config CHIP_NXP_DEVICE_LAYER
string "NXP device layer"
default "nxp/mcxw71" if CHIP_NXP_PLATFORM_MCXW71
default "nxp/common"
# Invisible symbol to get the platform family name
config CHIP_NXP_PLATFORM_FAMILY
string
default "mcxw71" if CHIP_NXP_PLATFORM_MCXW71 || CHIP_NXP_PLATFORM_MCXW72
default "rt" if CHIP_NXP_PLATFORM_RW61X || CHIP_NXP_PLATFORM_RT1060 || CHIP_NXP_PLATFORM_RT1170
config CHIP_NXP_CRYPTO_IMPL
string "NXP Crypto Implementation chosen"
default "se05x" if CHIP_SE05X
default ""
help
Defines crypto implementation to be used
choice CHIP_NVM_COMPONENT
prompt "NVM component selection"
default CHIP_NVM_COMPONENT_NVS
config CHIP_NVM_COMPONENT_NVS
bool "NVS"
help
Use NVS component to store CHIP data.
config CHIP_NVM_COMPONENT_LITTLEFS
bool "LittleFS"
help
Use LittleFS component to store CHIP data.
config CHIP_NVM_COMPONENT_KEYSTORAGE
bool "Key Storage"
help
Use the KeyStorage component to store CHIP data.
config CHIP_NVM_COMPONENT_NVMFWK
bool "NVM Framework"
help
Use the NVM Framework component to store CHIP data.
endchoice
choice CHIP_CRYPTO
prompt "CHIP Crypto selection"
default CHIP_CRYPTO_PLATFORM if CHIP_NXP_PLATFORM_MCXW71 || CHIP_NXP_PLATFORM_MCXW72 || CHIP_SE05X
default CHIP_CRYPTO_MBEDTLS if CHIP_NXP_PLATFORM_RW61X || CHIP_NXP_PLATFORM_RT1170 || CHIP_NXP_PLATFORM_RT1060
config CHIP_CRYPTO_MBEDTLS
bool "CHIP MbedTLS crypto"
help
Enables the implementation of the Matter cryptographic operations that is
based on the mbedTLS crypto API.
config CHIP_CRYPTO_PLATFORM
bool "CHIP platform crypto"
help
Enables the implementation of the Matter cryptographic operations that is
based on the platform crypto API.
config CHIP_CRYPTO_PSA
bool "CHIP PSA crypto"
help
Enables the implementation of the Matter cryptographic operations that is
based on the PSA crypto API.
endchoice
config CHIP_TASK_STACK_SIZE
int "CHIP task stack size"
default 13000 if CHIP_SE05X # Increase is do to the additional middle-ware APDU buffers
default 10240
help
Set the stack size for the CHIP task.
config CHIP_USE_GENERATED_CONFIG
bool "Use generated config"
default y
help
Use the generated macro configs for CHIP configuration.
config BT
bool "Enable BLE"
default y
help
Enable BLE support.
config NET_L2_OPENTHREAD
bool "Enable Thread support"
default n
help
Enable OT support.
config CHIP_DEVICE_USE_ZEPHYR_BLE
bool "Use Zephyr BLE implementation"
depends on BT
default y if CHIP_NXP_PLATFORM_RW61X || CHIP_NXP_PLATFORM_RT1060 || CHIP_NXP_PLATFORM_RT1170
help
Use Zephyr implementation for BLE manager.
config CHIP_WIFI
bool "Enable NXP Wi-Fi support"
help
Enable Matter-over-Wi-Fi.
config CHIP_ETHERNET
bool "Enable NXP ethernet support"
help
Enable Matter-over-ethernet.
config CHIP_WIFI_CONNECTION_RECOVERY_MINIMUM_INTERVAL
int "Define the minimum connection recovery time interval in milliseconds"
depends on CHIP_WIFI
default 500
help
Specifies the minimum connection recovery interval (in milliseconds).
config CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL
int "Define the maximum connection recovery time interval in milliseconds"
depends on CHIP_WIFI
default 3600000 # 1 hour
help
Specifies the maximum connection recovery interval (in milliseconds).
config CHIP_WIFI_CONNECTION_RECOVERY_MAX_RETRIES_NUMBER
int "Define the maximum amount of connection recovery occurrences"
depends on CHIP_WIFI
default 0
help
Specifies the maximum number of connection recovery attempts.
If set to 0, no limitation is applied and attempts
to recover the connection are performed indefinitely.
config CHIP_WIFI_CONNECTION_RECOVERY_JITTER
int "Define the connection recovery jitter in milliseconds"
depends on CHIP_WIFI
default 2000
help
Specifies the maximum connection recovery jitter interval (in milliseconds).
Once the wait time reaches the current maximum value (defined by CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL),
a random jitter interval is added to it to avoid periodicity. The random jitter is selected
within range [-JITTER; +JITTER].
# Secure Element Configurations
config CHIP_SE05X
bool "Enable Secure Element support"
select SE05X_LIB
help
Enable SE05x Secure element for offloading crypto operations.
if CHIP_SE05X
config CHIP_SE05X_SPAKE_VERIFIER
bool "Enable SE05x Secure element for offloading spake verifier"
help
Enable SE05x Secure element for offloading spake verifier.
config CHIP_SE05X_SPAKE_PROVER
bool "Enable SE05x Secure element for offloading spake prover"
help
Enable SE05x Secure element for offloading spake prover.
config CHIP_SE05X_RND_GEN
bool "Enable SE05x Secure element for offloading random number generation"
help
Enable SE05x Secure element for offloading random number generation.
config CHIP_SE05X_GENERATE_EC_KEY
bool "Enable SE05x Secure element for EC key Generate"
default y
help
Enable SE05x Secure element for EC key Generate.
config CHIP_SE05X_ECDSA_VERIFY
bool "Enable SE05x Secure element for ECDSA Verify"
default y
help
Enable SE05x Secure element for ECDSA Verify.
config CHIP_SE05X_PBKDF2_SHA256
bool "Enable SE05x Secure element for PBKDF2_SHA256"
help
Enable SE05x Secure element for PBKDF2_SHA256.
config CHIP_SE05X_HKDF_SHA256
bool "Enable SE05x Secure element for HKDF_SHA256"
help
Enable SE05x Secure element for HKDF_SHA256.
config CHIP_SE05X_HMAC_SHA256
bool "Enable SE05x Secure element for HMAC_SHA256"
help
Enable SE05x Secure element for HMAC_SHA256.
config CHIP_SE05X_DEVICE_ATTESTATION
bool "Enable SE05x Secure element for offloading Device attestation Sign"
help
Enable SE05x Secure element for offloading Device attestation Sign.
endif # CHIP_SE05X
# Thread network features
if NET_L2_OPENTHREAD
endif # NET_L2_OPENTHREAD
config CHIP_IPV4
bool "IPv4 support for Matter"
default n if NET_L2_OPENTHREAD && !CHIP_WIFI
default y
help
If disabled, it allows to build NXP SDK application
with IPv4 support independently of the Matter stack still
running over IPv6.
# App specific
config NETWORK_LAYER_BLE
bool "Should be replaced by CONFIG_BT. Keep it for backwards compatibility"
default y if BT
help
Will be deprecated once application files replace CONFIG_NETWORK_LAYER_BLE with CONFIG_BT
config OPERATIONAL_KEYSTORE
bool "Use custom implementation of operational keystore"
default y if CHIP_NXP_PLATFORM_MCXW71 || CHIP_NXP_PLATFORM_MCXW72 || CHIP_NXP_PLATFORM_RW61X
default y if CHIP_SE05X
help
"Use custom implementation of operational keystore"
config LOW_POWER
bool "Should be replaced by CONFIG_NXP_USE_LOW_POWER. Keep it for backwards compatibility"
default y if NXP_USE_LOW_POWER
help
Will be deprecated once application files replace CONFIG_LOW_POWER with CONFIG_NXP_USE_LOW_POWER
choice THREAD_DEVICE_TYPE_SELECTION
prompt "Thread device type selection based on ConnectivityManager::ThreadDeviceType enum"
default ROUTER if CHIP_NXP_PLATFORM_RW61X || CHIP_NXP_PLATFORM_RT1170 || CHIP_NXP_PLATFORM_RT1060
default FULL_END_DEVICE
config ROUTER
bool "Router"
config FULL_END_DEVICE
bool "Full end device"
config MINIMAL_END_DEVICE
bool "Minimal end device"
config SLEEPY_END_DEVICE
bool "Sleepy end device"
config SYNCHRONIZED_SLEEPY_END_DEVICE
bool "Synchronized sleepy end device"
endchoice
config THREAD_DEVICE_TYPE
string "Thread device type registered with the connectivity manager"
default "kThreadDeviceType_Router" if ROUTER
default "kThreadDeviceType_FullEndDevice" if FULL_END_DEVICE
default "kThreadDeviceType_MinimalEndDevice" if MINIMAL_END_DEVICE
default "kThreadDeviceType_SleepyEndDevice" if SLEEPY_END_DEVICE
default "kThreadDeviceType_SynchronizedSleepyEndDevice" if SYNCHRONIZED_SLEEPY_END_DEVICE
help
Thread device type registered with the connectivity manager
config CHIP_OTA_IMAGE_PROCESSOR_HEADER
string "Header for OTA image processor implementation"
default "platform/nxp/common/ota/OTAImageProcessorImpl.h"
help
Header for OTA image processor implementation.
(Macro value is in quotes.)
config CHIP_OTA_POSTED_OPERATIONS_IN_IDLE
bool "Use Posted Operations in Idle task for OTA Image Processing"
default y if CHIP_NXP_PLATFORM_RW61X || CHIP_NXP_PLATFORM_RT1060 || CHIP_NXP_PLATFORM_RT1170
depends on CHIP_OTA_REQUESTOR
help
When processing the OTA image, the write/erase operations will be posted and only resumed in the context of the Idle task.
if CHIP_OTA_REQUESTOR
config CHIP_OTA_ENCRYPTION
bool "OTA with encryption"
help
When enabled, the OTA image processor expects the image to be encrypted with AES,
so it will attempt to decrypt each block before storing it in flash.
config CHIP_OTA_ENCRYPTION_KEY
string "OTA encryption key"
depends on CHIP_OTA_ENCRYPTION
default "1234567890ABCDEFA1B2C3D4E5F6F1B4"
help
Defines the key used for encrypting the OTA image.
This key is reused to perform an AES decryption of the OTA image.
endif # CHIP_OTA_REQUESTOR
endif # CHIP