| # |
| # 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 |