blob: 4514080e84cf53fcd4cfb6c60166cf27b040e767 [file]
#
# 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 "../../common/cmake/Kconfig"
rsource "../cmake/Kconfig.matter.nxp"
rsource "Kconfig.openthread.common"
rsource "../../../third_party/nxp/nxp_matter_support/cmake/Kconfig"
# See config/common/cmake/Kconfig for full definition
config CHIP
select CHIP_SDK_DEPENDENCIES
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_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 "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/common"
# Invisible symbol to get the platform family name
config CHIP_NXP_PLATFORM_FAMILY
string
default "mcxw72" if 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
config CHIP_USE_GENERATED_CONFIG
bool "Use generated config"
default y
help
Use the generated macro configs for CHIP configuration.
# Define BT config for FreeRTOS compatibility with Zephyr (already defined in Zephyr module)
# to enable shared code and Kconfig across both platforms.
config BT
bool "Enable BLE"
default y
help
Enable BLE 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.
# 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_DEVICE_ATTESTATION
bool "Enable SE05x Secure element for offloading Device attestation Sign"
default y if CHIP_FACTORY_DATA
help
Enable SE05x Secure element for offloading Device attestation Sign.
config CHIP_SE05X_SPAKE_VERIFIER_USE_TP_VALUES
bool "Enable SE05x Secure element for offloading spake verifier and use the trust provisioned w0 and L values"
depends on CHIP_SE05X_SPAKE_VERIFIER
depends on CHIP_FACTORY_DATA
default y if CHIP_FACTORY_DATA
default n
help
Enable SE05x Secure element for offloading spake verifier and use the trust provisioned w0 and L values. This
should be enable only if factory data is configured.
config CHIP_SE05X_SPAKE_VERIFIER_TP_SET_NO
int "SE05x Trust Provisioned spake verifier set number"
default 1
range 1 3
help
SE05x Trust Provisioned spake verifier set number.
config CHIP_SE05X_SPAKE_VERIFIER_TP_ITER_CNT
int "SE05x Trust Provisioned spake verifier iteration count"
default 1000
help
SE05x Trust Provisioned spake verifier iteration count.
endif # CHIP_SE05X
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
if CHIP_BUILD_TESTS
config NXP_CUSTOM_UNIT_TESTS_DIR
string "Path to custom NXP test directory"
help
Provide a path to the location of NXP custom Matter tests
endif # CHIP_BUILD_TESTS
# Define Debug config for FreeRTOS compatibility with Zephyr (already defined in Zephyr module)
# to enable shared code and Kconfig across both platforms.
config DEBUG
bool "Build Matter stack with debugging enabled"
help
Build Matter stack with debugging enabled.
config CHIP_NXP_MULTIPLE_BLE_CONNECTIONS
bool "Use Multiple BLE connections after commissioning"
depends on CHIP_NXP_PLATFORM_MCXW72
help
Enable app usage of Multiple BLE connections after commissioning.
config CHIP_NXP_BLE_PAIRING
bool "Enable BLE Pairing"
default y if CHIP_NXP_MULTIPLE_BLE_CONNECTIONS
help
Enable BLE Pairing for Multiple BLE connections after commissioning.
config CHIP_NXP_BLE_BONDING
bool "Enable BLE Bonding"
default y if CHIP_NXP_MULTIPLE_BLE_CONNECTIONS
help
Enable BLE Bonding for Multiple BLE connections after commissioning.
config NXP_USE_SMU2_STATIC
bool "Use SMU2"
depends on CHIP_NXP_PLATFORM_MCXW72
help
Enable app usage of SMU2.
config NXP_USE_SMU2_DYNAMIC
bool "Use extra SMU2 after commissioning"
depends on CHIP_NXP_PLATFORM_MCXW72
help
Enable app usage of extra SMU2 after commissioning.
config NXP_USE_LOW_POWER
bool "Enable low power support"
help
Enables low power support
if NXP_USE_LOW_POWER
config NXP_USE_POWER_DOWN
bool "Use PowerDown to reduce power consumption"
help
Uses PowerDown to reduce power consumption during idle times
if NXP_USE_POWER_DOWN
config NXP_POWER_DOWN_POLL_THRESHOLD
int "Data poll interval threshold, in seconds, for power down"
depends on NXP_USE_POWER_DOWN
range 1 60
help
Minimum data poll interval, in seconds, from which the device will
start using power down as a low power state, instead of deep sleep
endif # NXP_USE_POWER_DOWN
endif # NXP_USE_LOW_POWER
config NXP_USE_PLAIN_DAC_KEY
bool "Store DAC private key in plaintext"
help
Store DAC private key in plaintext.
endif # CHIP