/* * * Copyright (c) 2020-2022 Project CHIP Authors * Copyright (c) 2019 Google LLC. * * 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. */ /** * @file * Platform-specific configuration overrides for CHIP on * Silcon Labs Silabs platforms. */ #pragma once #include #include #if (SL_MATTER_GN_BUILD == 0) #if defined(CHIP_CONFIG_ENABLE_ICD_SERVER) && (CHIP_CONFIG_ENABLE_ICD_SERVER == 1) #include "sl_matter_icd_config.h" #endif // defined(CHIP_CONFIG_ENABLE_ICD_SERVER) && (CHIP_CONFIG_ENABLE_ICD_SERVER == 1) #endif // SL_MATTER_GN_BUILD // ==================== General Platform Adaptations ==================== #define CHIP_CONFIG_ABORT() abort() #define CHIP_CONFIG_PERSISTED_STORAGE_KEY_TYPE uint32_t #define CHIP_CONFIG_PERSISTED_STORAGE_ENC_MSG_CNTR_ID 1 #define CHIP_CONFIG_PERSISTED_STORAGE_MAX_KEY_LENGTH 2 #define CHIP_CONFIG_LIFETIIME_PERSISTED_COUNTER_KEY SilabsConfig::kConfigKey_LifeTimeCounter // ==================== Security Adaptations ==================== // FIXME: Silabs set to MBED-TLS (But this is third-party repo in CHIP, not SDK) // FIXME: Silabs currently set to CHIP (Does this use Entropy.cpp ?) #if CHIP_HAVE_CONFIG_H #include #endif #if (CHIP_CRYPTO_PLATFORM == 1) && !defined(SL_MBEDTLS_USE_TINYCRYPT) #include "psa/crypto.h" #if !defined(CHIP_CONFIG_SHA256_CONTEXT_SIZE) #define CHIP_CONFIG_SHA256_CONTEXT_SIZE (sizeof(psa_hash_operation_t)) #endif #if !defined(CHIP_CONFIG_SHA256_CONTEXT_ALIGN) #define CHIP_CONFIG_SHA256_CONTEXT_ALIGN psa_hash_operation_t #endif #endif // (CHIP_CRYPTO_PLATFORM == 1) && !defined(SL_MBEDTLS_USE_TINYCRYPT) // ==================== General Configuration Overrides ==================== #ifndef CHIP_CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS #define CHIP_CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS 8 #endif // CHIP_CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS #ifndef CHIP_CONFIG_MAX_EXCHANGE_CONTEXTS #define CHIP_CONFIG_MAX_EXCHANGE_CONTEXTS 20 #endif // CHIP_CONFIG_MAX_EXCHANGE_CONTEXTS #ifndef CHIP_LOG_FILTERING #define CHIP_LOG_FILTERING 0 #endif // CHIP_LOG_FILTERING #ifndef CHIP_CONFIG_MAX_INTERFACES #define CHIP_CONFIG_MAX_INTERFACES 4 #endif // CHIP_CONFIG_MAX_INTERFACES #ifndef CHIP_CONFIG_MAX_LOCAL_ADDR_UDP_ENDPOINTS #define CHIP_CONFIG_MAX_LOCAL_ADDR_UDP_ENDPOINTS 4 #endif // CHIP_CONFIG_MAX_LOCAL_ADDR_UDP_ENDPOINTS /** * @def CHIP_CONFIG_MAX_FABRICS * * @brief * Maximum number of fabrics the device can participate in. Each fabric can * provision the device with its unique operational credentials and manage * its own access control lists. */ #ifndef CHIP_CONFIG_MAX_FABRICS #define CHIP_CONFIG_MAX_FABRICS 5 // 4 fabrics + 1 for rotation slack #endif #if defined(CHIP_CONFIG_ENABLE_ICD_SERVER) && CHIP_CONFIG_ENABLE_ICD_SERVER #ifndef CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC #define CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC SL_IDLE_MODE_DURATION_S #endif // CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC #ifndef CHIP_CONFIG_ICD_ACTIVE_MODE_DURATION_MS #define CHIP_CONFIG_ICD_ACTIVE_MODE_DURATION_MS SL_ACTIVE_MODE_DURATION_MS #endif // CHIP_CONFIG_ICD_ACTIVE_MODE_DURATION_MS #ifndef CHIP_CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS #define CHIP_CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS SL_ACTIVE_MODE_THRESHOLD #endif // CHIP_CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS #ifndef CHIP_CONFIG_ICD_CLIENTS_SUPPORTED_PER_FABRIC #define CHIP_CONFIG_ICD_CLIENTS_SUPPORTED_PER_FABRIC SL_ICD_SUPPORTED_CLIENTS_PER_FABRIC #endif // CHIP_CONFIG_ICD_CLIENTS_SUPPORTED_PER_FABRIC #endif // defined(CHIP_CONFIG_ENABLE_ICD_SERVER) && CHIP_CONFIG_ENABLE_ICD_SERVER /** * @brief CHIP_SHELL_MAX_LINE_SIZE * * @brief Platform maximum line for the Matter Shell */ #ifndef CHIP_SHELL_MAX_LINE_SIZE #define CHIP_SHELL_MAX_LINE_SIZE 256 #endif // CHIP_SHELL_MAX_LINE_SIZE // ==================== CMSISOS Configuration Overrides ==================== #ifndef CHIP_CONFIG_CMSISOS_USE_STATIC_TASK #define CHIP_CONFIG_CMSISOS_USE_STATIC_TASK 1 #endif #ifndef CHIP_CONFIG_CMSISOS_USE_STATIC_QUEUE #define CHIP_CONFIG_CMSISOS_USE_STATIC_QUEUE 1 #endif #ifndef CHIP_SHELL_MAX_TOKENS #define CHIP_SHELL_MAX_TOKENS 40 #endif // CHIP_SHELL_MAX_TOKENS