Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:36

0001 /**
0002   ******************************************************************************
0003   * @file    stm32h7xx_hal_otfdec.h
0004   * @author  MCD Application Team
0005   * @brief   Header file of OTFDEC HAL module.
0006   ******************************************************************************
0007   * @attention
0008   *
0009   * Copyright (c) 2018 STMicroelectronics.
0010   * All rights reserved.
0011   *
0012   * This software is licensed under terms that can be found in the LICENSE file
0013   * in the root directory of this software component.
0014   * If no LICENSE file comes with this software, it is provided AS-IS.
0015   *
0016   ******************************************************************************
0017   */
0018 
0019 /* Define to prevent recursive inclusion -------------------------------------*/
0020 #ifndef STM32H7xx_HAL_OTFDEC_H
0021 #define STM32H7xx_HAL_OTFDEC_H
0022 
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026 
0027 /* Includes ------------------------------------------------------------------*/
0028 #include "stm32h7xx_hal_def.h"
0029 
0030 /** @addtogroup STM32H7xx_HAL_Driver
0031   * @{
0032   */
0033 
0034 #if defined(OTFDEC1)
0035 
0036 /** @addtogroup OTFDEC
0037   * @{
0038   */
0039 
0040 /* Exported types ------------------------------------------------------------*/
0041 
0042 /** @defgroup OTFDEC_Exported_Types OTFDEC Exported Types
0043   * @ingroup RTEMSBSPsARMSTM32H7
0044   * @{
0045   */
0046 
0047 /** @defgroup OTFDEC_Exported_Types_Group1 OTFDEC region configuration definitions
0048   * @ingroup RTEMSBSPsARMSTM32H7
0049   * @{
0050   */
0051 
0052 /**
0053   * @brief OTFDEC region configuration structure definition
0054   */
0055 typedef struct
0056 {
0057   uint32_t          Nonce[2];        /*!< OTFDEC region nonce */
0058 
0059   uint32_t          StartAddress;    /*!< OTFDEC region start address */
0060 
0061   uint32_t          EndAddress;      /*!< OTFDEC region end address */
0062 
0063   uint16_t          Version;         /*!< OTFDEC region firmware version */
0064 
0065 } OTFDEC_RegionConfigTypeDef;
0066 
0067 /**
0068   * @}
0069   */
0070 
0071 /** @defgroup OTFDEC_Exported_Types_Group2 OTFDEC Peripheral handle definitions
0072   * @ingroup RTEMSBSPsARMSTM32H7
0073   * @{
0074   */
0075 
0076 /**
0077   * @brief OTFDEC states structure definition
0078   */
0079 typedef enum
0080 {
0081   HAL_OTFDEC_STATE_RESET             = 0x00U,  /*!< OTFDEC not yet initialized or disabled */
0082   HAL_OTFDEC_STATE_READY             = 0x01U,  /*!< OTFDEC initialized and ready for use   */
0083   HAL_OTFDEC_STATE_BUSY              = 0x02U,  /*!< OTFDEC internal processing is ongoing  */
0084 } HAL_OTFDEC_StateTypeDef;
0085 
0086 /**
0087   * @brief OTFDEC handle structure definition
0088   */
0089 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0090 typedef struct __OTFDEC_HandleTypeDef
0091 #else
0092 typedef struct
0093 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0094 {
0095   OTFDEC_TypeDef             *Instance;  /*!< OTFDEC registers base address */
0096 
0097   HAL_OTFDEC_StateTypeDef    State;      /*!< OTFDEC state */
0098 
0099   HAL_LockTypeDef            Lock;       /*!< OTFDEC locking object */
0100 
0101   __IO uint32_t              ErrorCode;  /*!< OTFDEC error code */
0102 
0103 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0104   void (* ErrorCallback)(struct __OTFDEC_HandleTypeDef *hotfdec);     /*!< OTFDEC error callback */
0105 
0106   void (* MspInitCallback)(struct __OTFDEC_HandleTypeDef *hotfdec);   /*!< OTFDEC Msp Init callback */
0107 
0108   void (* MspDeInitCallback)(struct __OTFDEC_HandleTypeDef *hotfdec); /*!< OTFDEC Msp DeInit callback */
0109 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0110 
0111 } OTFDEC_HandleTypeDef;
0112 
0113 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0114 /**
0115   * @brief  HAL OTFDEC Callback ID enumeration definition
0116   */
0117 typedef enum
0118 {
0119   HAL_OTFDEC_ERROR_CB_ID       = 0x00U,  /*!< OTFDEC error callback ID      */
0120   HAL_OTFDEC_MSPINIT_CB_ID     = 0x01U,  /*!< OTFDEC Msp DeInit callback ID */
0121   HAL_OTFDEC_MSPDEINIT_CB_ID   = 0x02U   /*!< OTFDEC Msp DeInit callback ID */
0122 } HAL_OTFDEC_CallbackIDTypeDef;
0123 
0124 /**
0125   * @brief  HAL OTFDEC Callback pointer definition
0126   */
0127 typedef  void (*pOTFDEC_CallbackTypeDef)(OTFDEC_HandleTypeDef *hotfdec); /*!< pointer to a OTFDEC callback function */
0128 
0129 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0130 
0131 /**
0132   * @}
0133   */
0134 
0135 /**
0136   * @}
0137   */
0138 
0139 /* Exported constants --------------------------------------------------------*/
0140 /** @defgroup OTFDEC_Exported_Constants OTFDEC Exported Constants
0141   * @ingroup RTEMSBSPsARMSTM32H7
0142   * @{
0143   */
0144 
0145 /** @defgroup OTFDEC_Interrupts    OTFDEC Interrupts
0146   * @ingroup RTEMSBSPsARMSTM32H7
0147   * @{
0148   */
0149 #define OTFDEC_SEC_ERROR_INT     (OTFDEC_IER_SEIE                                  )  /*!< OTFDEC security error interrupt                  */
0150 #define OTFDEC_EXE_ERROR_INT     (               OTFDEC_IER_XONEIE                 )  /*!< OTFDEC execution error interrupt                 */
0151 #define OTFDEC_KEY_ERROR_INT     (                                  OTFDEC_IER_KEIE)  /*!< OTFDEC key error interrupt                       */
0152 #define OTFDEC_SEC_EXE_ERROR_INT (OTFDEC_IER_SEIE|OTFDEC_IER_XONEIE                )  /*!< OTFDEC security and execution errors interrupts  */
0153 #define OTFDEC_SEC_KEY_ERROR_INT (OTFDEC_IER_SEIE|                  OTFDEC_IER_KEIE)  /*!< OTFDEC security and key errors interrupts        */
0154 #define OTFDEC_EXE_KEY_ERROR_INT (                OTFDEC_IER_XONEIE|OTFDEC_IER_KEIE)  /*!< OTFDEC execution and key errors interrupts       */
0155 #define OTFDEC_ALL_INT           (OTFDEC_IER_SEIE|OTFDEC_IER_XONEIE|OTFDEC_IER_KEIE)  /*!< OTFDEC all interrupts                            */
0156 /**
0157   * @}
0158   */
0159 
0160 /** @defgroup OTFDEC_Region_Enable   OTFDEC Region Enable
0161   * @ingroup RTEMSBSPsARMSTM32H7
0162   * @{
0163   */
0164 #define OTFDEC_REG_CONFIGR_REG_DISABLE   0x00000000U                /*!< OTFDEC region encryption or on-the-fly decryption disable */
0165 #define OTFDEC_REG_CONFIGR_REG_ENABLE    OTFDEC_REG_CONFIGR_REG_EN  /*!< OTFDEC region encryption or on-the-fly decryption enable  */
0166 /**
0167   * @}
0168   */
0169 
0170 /** @defgroup OTFDEC_Region_Configuration_Lock    OTFDEC Region Configuration Lock
0171   * @ingroup RTEMSBSPsARMSTM32H7
0172   * @{
0173   */
0174 #define OTFDEC_REG_CONFIGR_LOCK_DISABLE   0x00000000U                     /*!< OTFDEC region configuration lock disable */
0175 #define OTFDEC_REG_CONFIGR_LOCK_ENABLE    OTFDEC_REG_CONFIGR_CONFIGLOCK   /*!< OTFDEC region configuration lock enable  */
0176 /**
0177   * @}
0178   */
0179 
0180 /** @defgroup OTFDEC_Region_Operating_Mode    OTFDEC Region Operating Mode
0181   * @ingroup RTEMSBSPsARMSTM32H7
0182   * @{
0183   */
0184 #define OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY              0x00000000U                /*!< Only instruction accesses are decrypted                                   */
0185 #define OTFDEC_REG_MODE_DATA_ACCESSES_ONLY                     OTFDEC_REG_CONFIGR_MODE_0  /*!< Only data accesses are decrypted                                          */
0186 #define OTFDEC_REG_MODE_INSTRUCTION_OR_DATA_ACCESSES           OTFDEC_REG_CONFIGR_MODE_1  /*!< All read accesses are decrypted                                           */
0187 #define OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY_WITH_CIPHER  OTFDEC_REG_CONFIGR_MODE    /*!< Only instruction accesses are decrypted with proprietary cipher activated */
0188 /**
0189   * @}
0190   */
0191 
0192 /** @defgroup OTFDEC_Error_Definition   OTFDEC Error Definition
0193   * @ingroup RTEMSBSPsARMSTM32H7
0194   * @{
0195   */
0196 #define  HAL_OTFDEC_ERROR_NONE             ((uint32_t)0x00000000U)    /*!< No error                         */
0197 #define  HAL_OTFDEC_SECURITY_ERROR         ((uint32_t)0x00000001U)    /*!< Security error                   */
0198 #define  HAL_OTFDEC_EXECUTE_ERROR          ((uint32_t)0x00000002U)    /*!< Execute-only Execute-Never error */
0199 #define  HAL_OTFDEC_KEY_ERROR              ((uint32_t)0x00000004U)    /*!< Key error                        */
0200 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0201 #define HAL_OTFDEC_ERROR_INVALID_CALLBACK  ((uint32_t)0x00000008U)   /*!< Invalid Callback error            */
0202 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0203 /**
0204   * @}
0205   */
0206 
0207 /** @defgroup OTFDEC_Regions_Index   OTFDEC Regions Index
0208   * @ingroup RTEMSBSPsARMSTM32H7
0209   * @{
0210   */
0211 #define  OTFDEC_REGION1            ((uint32_t)0x00000000U)    /*!< OTFDEC region 1 */
0212 #define  OTFDEC_REGION2            ((uint32_t)0x00000001U)    /*!< OTFDEC region 2 */
0213 #define  OTFDEC_REGION3            ((uint32_t)0x00000002U)    /*!< OTFDEC region 3 */
0214 #define  OTFDEC_REGION4            ((uint32_t)0x00000003U)    /*!< OTFDEC region 4 */
0215 /**
0216   * @}
0217   */
0218 
0219 /**
0220   * @}
0221   */
0222 
0223 /* Exported macro ------------------------------------------------------------*/
0224 /** @defgroup OTFDEC_Exported_Macros OTFDEC Exported Macros
0225   * @ingroup RTEMSBSPsARMSTM32H7
0226   * @{
0227   */
0228 
0229 /** @brief  Reset OTFDEC handle state.
0230   * @param  __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains
0231   *         the configuration information for OTFDEC module
0232   * @retval None
0233   */
0234 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0235 #define __HAL_OTFDEC_RESET_HANDLE_STATE(__HANDLE__)                            \
0236   do{                                                                          \
0237     (__HANDLE__)->State = HAL_OTFDEC_STATE_RESET;                              \
0238     (__HANDLE__)->MspInitCallback = NULL;                                      \
0239     (__HANDLE__)->MspDeInitCallback = NULL;                                    \
0240   } while(0)
0241 #else
0242 #define __HAL_OTFDEC_RESET_HANDLE_STATE(__HANDLE__)                            \
0243   ((__HANDLE__)->State = HAL_OTFDEC_STATE_RESET)
0244 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0245 
0246 /**
0247   * @brief  Enable OTFDEC peripheral interrupts combination
0248   * @param  __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains
0249   *         the configuration information for OTFDEC module
0250   * @param  __INTERRUPT__ mask on enabled interrupts
0251   *          This parameter can be one of the following values:
0252   *            @arg @ref OTFDEC_SEC_ERROR_INT        OTFDEC security error interrupt
0253   *            @arg @ref OTFDEC_EXE_ERROR_INT        OTFDEC execution error interrupt
0254   *            @arg @ref OTFDEC_KEY_ERROR_INT        OTFDEC key error interrupt
0255   *            @arg @ref OTFDEC_SEC_EXE_ERROR_INT    OTFDEC security and execution errors interrupts
0256   *            @arg @ref OTFDEC_SEC_KEY_ERROR_INT    OTFDEC security and key errors interrupts
0257   *            @arg @ref OTFDEC_EXE_KEY_ERROR_INT    OTFDEC execution and key errors interrupts
0258   *            @arg @ref OTFDEC_ALL_INT              OTFDEC all interrupts
0259   * @retval None
0260   */
0261 #define __HAL_OTFDEC_ENABLE_IT(__HANDLE__, __INTERRUPT__)  SET_BIT(((__HANDLE__)->Instance->IER), (__INTERRUPT__))
0262 
0263 /**
0264   * @brief  Disable OTFDEC peripheral interrupts combination
0265   * @param  __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains
0266   *         the configuration information for OTFDEC module
0267   * @param  __INTERRUPT__ mask on disabled interrupts
0268   *          This parameter can be one of the following values:
0269   *            @arg @ref OTFDEC_SEC_ERROR_INT        OTFDEC security error interrupt
0270   *            @arg @ref OTFDEC_EXE_ERROR_INT        OTFDEC execution error interrupt
0271   *            @arg @ref OTFDEC_KEY_ERROR_INT        OTFDEC key error interrupt
0272   *            @arg @ref OTFDEC_SEC_EXE_ERROR_INT    OTFDEC security and execution errors interrupts
0273   *            @arg @ref OTFDEC_SEC_KEY_ERROR_INT    OTFDEC security and key errors interrupts
0274   *            @arg @ref OTFDEC_EXE_KEY_ERROR_INT    OTFDEC execution and key errors interrupts
0275   *            @arg @ref OTFDEC_ALL_INT              OTFDEC all interrupts
0276   * @retval None
0277   */
0278 #define __HAL_OTFDEC_DISABLE_IT(__HANDLE__, __INTERRUPT__)  CLEAR_BIT(((__HANDLE__)->Instance->IER), (__INTERRUPT__))
0279 
0280 /** @brief  Check whether the specified combination of OTFDEC interrupt flags is set or not.
0281   * @param  __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains
0282   *         the configuration information for OTFDEC module
0283   * @param  __FLAG__ mask on combination of interrupts flags
0284   *          This parameter can be one of the following values:
0285   *            @arg @ref OTFDEC_SEC_ERROR_INT        OTFDEC security error interrupt flag
0286   *            @arg @ref OTFDEC_EXE_ERROR_INT        OTFDEC execution error interrupt flag
0287   *            @arg @ref OTFDEC_KEY_ERROR_INT        OTFDEC key error interrupt flag
0288   *            @arg @ref OTFDEC_SEC_EXE_ERROR_INT    OTFDEC security and execution errors interrupts flags
0289   *            @arg @ref OTFDEC_SEC_KEY_ERROR_INT    OTFDEC security and key errors interrupts flags
0290   *            @arg @ref OTFDEC_EXE_KEY_ERROR_INT    OTFDEC execution and key errors interrupts flag
0291   *            @arg @ref OTFDEC_ALL_INT              OTFDEC all interrupts flags
0292   * @retval The state of __FLAG__ (TRUE or FALSE).
0293   */
0294 #define __HAL_OTFDEC_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
0295 
0296 /** @brief  Clear the specified combination of OTFDEC interrupt flags.
0297   * @param  __HANDLE__ pointer to an OTFDEC_HandleTypeDef structure that contains
0298   *         the configuration information for OTFDEC module
0299   * @param  __FLAG__ mask on combination of interrupts flags
0300   *          This parameter can be one of the following values:
0301   *            @arg @ref OTFDEC_SEC_ERROR_INT        OTFDEC security error interrupt flag
0302   *            @arg @ref OTFDEC_EXE_ERROR_INT        OTFDEC execution error interrupt flag
0303   *            @arg @ref OTFDEC_KEY_ERROR_INT        OTFDEC key error interrupt flag
0304   *            @arg @ref OTFDEC_SEC_EXE_ERROR_INT    OTFDEC security and execution errors interrupts flags
0305   *            @arg @ref OTFDEC_SEC_KEY_ERROR_INT    OTFDEC security and key errors interrupts flags
0306   *            @arg @ref OTFDEC_EXE_KEY_ERROR_INT    OTFDEC execution and key errors interrupts flag
0307   *            @arg @ref OTFDEC_ALL_INT              OTFDEC all interrupts flags
0308   * @retval None
0309   */
0310 #define __HAL_OTFDEC_CLEAR_FLAG(__HANDLE__, __FLAG__) SET_BIT((__HANDLE__)->Instance->ICR, (__FLAG__))
0311 
0312 /**
0313   * @}
0314   */
0315 
0316 /* Exported functions --------------------------------------------------------*/
0317 /** @defgroup OTFDEC_Exported_Functions OTFDEC Exported Functions
0318   * @ingroup RTEMSBSPsARMSTM32H7
0319   * @{
0320   */
0321 
0322 /** @addtogroup OTFDEC_Exported_Functions_Group1 Initialization and de-initialization functions
0323   * @{
0324   */
0325 HAL_StatusTypeDef HAL_OTFDEC_Init(OTFDEC_HandleTypeDef *hotfdec);
0326 HAL_StatusTypeDef HAL_OTFDEC_DeInit(OTFDEC_HandleTypeDef *hotfdec);
0327 void HAL_OTFDEC_MspInit(OTFDEC_HandleTypeDef *hotfdec);
0328 void HAL_OTFDEC_MspDeInit(OTFDEC_HandleTypeDef *hotfdec);
0329 
0330 #if (USE_HAL_OTFDEC_REGISTER_CALLBACKS == 1)
0331 /* Callbacks Register/UnRegister functions  ***********************************/
0332 HAL_StatusTypeDef HAL_OTFDEC_RegisterCallback(OTFDEC_HandleTypeDef *hotfdec, HAL_OTFDEC_CallbackIDTypeDef CallbackID,
0333                                               pOTFDEC_CallbackTypeDef pCallback);
0334 HAL_StatusTypeDef HAL_OTFDEC_UnRegisterCallback(OTFDEC_HandleTypeDef *hotfdec, HAL_OTFDEC_CallbackIDTypeDef CallbackID);
0335 #endif /* USE_HAL_OTFDEC_REGISTER_CALLBACKS */
0336 /**
0337   * @}
0338   */
0339 
0340 
0341 /** @addtogroup OTFDEC_Exported_Functions_Group2 OTFDEC IRQ handler management
0342   * @{
0343   */
0344 void HAL_OTFDEC_IRQHandler(OTFDEC_HandleTypeDef *hotfdec);
0345 void HAL_OTFDEC_ErrorCallback(OTFDEC_HandleTypeDef *hotfdec);
0346 /**
0347   * @}
0348   */
0349 
0350 /** @addtogroup OTFDEC_Exported_Functions_Group3 Peripheral Control functions
0351   * @{
0352   */
0353 HAL_StatusTypeDef HAL_OTFDEC_RegionKeyLock(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex);
0354 HAL_StatusTypeDef HAL_OTFDEC_RegionSetKey(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, uint32_t *pKey);
0355 HAL_StatusTypeDef HAL_OTFDEC_RegionSetMode(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex, uint32_t mode);
0356 HAL_StatusTypeDef HAL_OTFDEC_RegionConfig(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex,
0357                                           OTFDEC_RegionConfigTypeDef *Config, uint32_t lock);
0358 uint32_t HAL_OTFDEC_KeyCRCComputation(uint32_t *pKey);
0359 HAL_StatusTypeDef HAL_OTFDEC_RegionEnable(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex);
0360 HAL_StatusTypeDef HAL_OTFDEC_RegionDisable(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex);
0361 /**
0362   * @}
0363   */
0364 
0365 /** @addtogroup @addtogroup OTFDEC_Exported_Functions_Group4 Peripheral State and Status functions
0366   * @{
0367   */
0368 HAL_OTFDEC_StateTypeDef HAL_OTFDEC_GetState(OTFDEC_HandleTypeDef *hotfdec);
0369 uint32_t HAL_OTFDEC_RegionGetKeyCRC(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex);
0370 HAL_StatusTypeDef HAL_OTFDEC_RegionGetConfig(OTFDEC_HandleTypeDef *hotfdec, uint32_t RegionIndex,
0371                                              OTFDEC_RegionConfigTypeDef *Config);
0372 /**
0373   * @}
0374   */
0375 
0376 /**
0377   * @}
0378   */
0379 
0380 /* Private types -------------------------------------------------------------*/
0381 /** @defgroup OTFDEC_Private_Types OTFDEC Private Types
0382   * @ingroup RTEMSBSPsARMSTM32H7
0383   * @{
0384   */
0385 
0386 /**
0387   * @}
0388   */
0389 
0390 /* Private variables ---------------------------------------------------------*/
0391 /** @defgroup OTFDEC_Private_Variables OTFDEC Private Variables
0392   * @ingroup RTEMSBSPsARMSTM32H7
0393   * @{
0394   */
0395 
0396 /**
0397   * @}
0398   */
0399 
0400 /* Private constants ---------------------------------------------------------*/
0401 /** @defgroup OTFDEC_Private_Constants OTFDEC Private Constants
0402   * @ingroup RTEMSBSPsARMSTM32H7
0403   * @{
0404   */
0405 /**
0406   * @}
0407   */
0408 
0409 /* Private macros ------------------------------------------------------------*/
0410 /** @defgroup OTFDEC_Private_Macros OTFDEC Private Macros
0411   * @ingroup RTEMSBSPsARMSTM32H7
0412   * @{
0413   */
0414 
0415 /**
0416   * @brief Verify the OTFDEC peripheral interrupts parameter.
0417   * @param __INT__ OTFDEC peripheral set of interrupts parameter
0418   * @retval SET (__INT__ is valid) or RESET (__INT__ is invalid)
0419   */
0420 #define IS_OTFDEC_INTERRUPTS(__INT__) (((__INT__) == OTFDEC_SEC_ERROR_INT)     || \
0421                                        ((__INT__) == OTFDEC_EXE_ERROR_INT)     || \
0422                                        ((__INT__) == OTFDEC_KEY_ERROR_INT)     || \
0423                                        ((__INT__) == OTFDEC_SEC_EXE_ERROR_INT) || \
0424                                        ((__INT__) == OTFDEC_SEC_KEY_ERROR_INT) || \
0425                                        ((__INT__) == OTFDEC_EXE_KEY_ERROR_INT) || \
0426                                        ((__INT__) == OTFDEC_ALL_INT)  )
0427 
0428 /**
0429   * @brief Verify the OTFDEC region configuration lock parameter.
0430   * @param __LOCK__ OTFDEC region lock parameter.
0431   * @retval SET (__LOCK__ is valid) or RESET (__LOCK__ is invalid)
0432   */
0433 #define IS_OTFDEC_REGION_CONFIG_LOCK(__LOCK__) (((__LOCK__) == OTFDEC_REG_CONFIGR_LOCK_DISABLE) || \
0434                                                 ((__LOCK__) == OTFDEC_REG_CONFIGR_LOCK_ENABLE)  )
0435 
0436 /**
0437   * @brief Verify the OTFDEC region operating mode.
0438   * @param __MODE__ OTFDEC region operating mode parameter.
0439   * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
0440   */
0441 #define IS_OTFDEC_REGION_OPERATING_MODE(__MODE__) \
0442   (((__MODE__)== OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY)    || \
0443    ((__MODE__) == OTFDEC_REG_MODE_DATA_ACCESSES_ONLY)           || \
0444    ((__MODE__) == OTFDEC_REG_MODE_INSTRUCTION_OR_DATA_ACCESSES) || \
0445    ((__MODE__) == OTFDEC_REG_MODE_INSTRUCTION_ACCESSES_ONLY_WITH_CIPHER))
0446 
0447 /**
0448   * @brief Verify the OTFDEC region index.
0449   * @param __INDEX__ OTFDEC region index
0450   * @retval SET (__INDEX__ is valid) or RESET (__INDEX__ is invalid)
0451   */
0452 #define IS_OTFDEC_REGIONINDEX(__INDEX__) (((__INDEX__) == OTFDEC_REGION1)     || \
0453                                           ((__INDEX__) == OTFDEC_REGION2)     || \
0454                                           ((__INDEX__) == OTFDEC_REGION3)     || \
0455                                           ((__INDEX__) == OTFDEC_REGION4)  )
0456 
0457 /**
0458   * @brief Verify the OTFDEC configuration attributes.
0459   * @param __ATTRIBUTE__ OTFDEC region index
0460   * @retval SET (__ATTRIBUTE__ is valid) or RESET (__ATTRIBUTE__ is invalid)
0461   */
0462 #define IS_OTFDEC_ATTRIBUTE(__ATTRIBUTE__) (((__ATTRIBUTE__) == OTFDEC_ATTRIBUTE_PRIV)   || \
0463                                             ((__ATTRIBUTE__) == OTFDEC_ATTRIBUTE_NPRIV)  )
0464 
0465 /**
0466   * @}
0467   */
0468 
0469 /* Private functions ---------------------------------------------------------*/
0470 /** @defgroup OTFDEC_Private_Functions OTFDEC Private Functions
0471   * @ingroup RTEMSBSPsARMSTM32H7
0472   * @{
0473   */
0474 
0475 /**
0476   * @}
0477   */
0478 
0479 /**
0480   * @}
0481   */
0482 
0483 #endif /* OTFDEC1 */
0484 
0485 /**
0486   * @}
0487   */
0488 
0489 #ifdef __cplusplus
0490 }
0491 #endif
0492 
0493 #endif /* STM32H7xx_HAL_OTFDEC_H */