1 /**************************************************************************/ /** 2 * @file 3 * @brief Consistency checks for SE Manager configuration options 4 ******************************************************************************* 5 * # License 6 * <b>Copyright 2020 Silicon Laboratories Inc. www.silabs.com</b> 7 ******************************************************************************* 8 * 9 * SPDX-License-Identifier: Zlib 10 * 11 * The licensor of this software is Silicon Laboratories Inc. 12 * 13 * This software is provided 'as-is', without any express or implied 14 * warranty. In no event will the authors be held liable for any damages 15 * arising from the use of this software. 16 * 17 * Permission is granted to anyone to use this software for any purpose, 18 * including commercial applications, and to alter it and redistribute it 19 * freely, subject to the following restrictions: 20 * 21 * 1. The origin of this software must not be misrepresented; you must not 22 * claim that you wrote the original software. If you use this software 23 * in a product, an acknowledgment in the product documentation would be 24 * appreciated but is not required. 25 * 2. Altered source versions must be plainly marked as such, and must not be 26 * misrepresented as being the original software. 27 * 3. This notice may not be removed or altered from any source distribution. 28 * 29 ******************************************************************************/ 30 31 #ifndef SL_SE_MANAGER_CHECK_CONFIG_H 32 #define SL_SE_MANAGER_CHECK_CONFIG_H 33 34 #if defined (SL_COMPONENT_CATALOG_PRESENT) 35 #include "sl_component_catalog.h" 36 #endif 37 38 #if defined(SL_SE_MANAGER_THREADING) \ 39 && !defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION) \ 40 && !defined(SLI_VSE_MAILBOX_COMMAND_SUPPORTED) 41 #error "Yield when waiting for SE commands to finish is currently required in RTOS mode." 42 #endif 43 #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION) \ 44 && !defined(SL_SE_MANAGER_THREADING) 45 #error "Yield when waiting for SE commands to finish currently requires RTOS mode. I.e. yield support is not available in bare metal mode." 46 #endif 47 48 #if (defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT) || defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)) \ 49 && !defined(SL_SE_MANAGER_THREADING) 50 #error "RTOS requires threading mode." 51 #endif 52 53 #if (defined(SLI_VSE_MAILBOX_COMMAND_SUPPORTED) && defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)) 54 #error "Yield support is not available on EFR32xG22 devices" 55 #endif 56 57 #if (SLI_SE_AES_CTR_NUM_BLOCKS_BUFFERED != 1) 58 #error "Using multiple blocks for key stream computation is not supported" 59 #endif 60 61 #endif // SL_SE_MANAGER_CHECK_CONFIG_H 62