diff options
Diffstat (limited to 'bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h')
-rw-r--r-- | bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h | 489 |
1 files changed, 248 insertions, 241 deletions
diff --git a/bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h b/bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h index 054cce6e09..65797e6887 100644 --- a/bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h +++ b/bsps/arm/stm32h7/include/stm32h7xx_hal_rng_ex.h @@ -1,252 +1,259 @@ -/**
- ******************************************************************************
- * @file stm32h7xx_hal_rng_ex.h
- * @author MCD Application Team
- * @brief Header file of RNG HAL Extension module.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef STM32H7xx_HAL_RNG_EX_H
-#define STM32H7xx_HAL_RNG_EX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32h7xx_hal_def.h"
-
-/** @addtogroup STM32H7xx_HAL_Driver
- * @{
- */
-
-#if defined (RNG)
-#if defined (RNG_CR_CONDRST)
-
-/** @defgroup RNGEx RNGEx
+/** + ****************************************************************************** + * @file stm32h7xx_hal_rng_ex.h + * @author MCD Application Team + * @brief Header file of RNG HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32H7xx_HAL_RNG_EX_H +#define STM32H7xx_HAL_RNG_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal_def.h" + +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +#if defined(RNG) +#if defined(RNG_CR_CONDRST) + +/** @defgroup RNG_Ex RNG_Ex * @ingroup RTEMSBSPsARMSTM32H7 - * @brief RNG Extension HAL module driver
- * @{
- */
-
-/* Exported types ------------------------------------------------------------*/
-/** @defgroup RNGEx_Exported_Types RNGEx Exported Types
+ * @brief RNG Extension HAL module driver + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup RNG_Ex_Exported_Types RNG_Ex Exported Types * @ingroup RTEMSBSPsARMSTM32H7 - * @brief RNGEx Exported types
- * @{
- */
-
-/**
- * @brief RNGEX Configuration Structure definition
- */
-
-typedef struct
-{
- uint32_t Config1; /*!< Config1 must be a value between 0 and 0x3F */
- uint32_t Config2; /*!< Config2 must be a value between 0 and 0x7 */
- uint32_t Config3; /*!< Config3 must be a value between 0 and 0xF */
- uint32_t ClockDivider; /*!< Clock Divider factor.This parameter can
- be a value of @ref RNGEX_Clock_Divider_Factor */
- uint32_t NistCompliance; /*!< NIST compliance.This parameter can be a
- value of @ref RNGEX_NIST_Compliance */
-} RNG_ConfigTypeDef;
-
-/**
- * @}
- */
-
-/* Exported constants --------------------------------------------------------*/
-/** @defgroup RNGEX_Exported_Constants RNGEX Exported Constants
+ * @brief RNG_Ex Exported types + * @{ + */ + +/** + * @brief RNG_Ex Configuration Structure definition + */ + +typedef struct +{ + uint32_t Config1; /*!< Config1 must be a value between 0 and 0x3F */ + uint32_t Config2; /*!< Config2 must be a value between 0 and 0x7 */ + uint32_t Config3; /*!< Config3 must be a value between 0 and 0xF */ + uint32_t ClockDivider; /*!< Clock Divider factor.This parameter can + be a value of @ref RNG_Ex_Clock_Divider_Factor */ + uint32_t NistCompliance; /*!< NIST compliance.This parameter can be a + value of @ref RNG_Ex_NIST_Compliance */ +} RNG_ConfigTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RNG_Ex_Exported_Constants RNG_Ex Exported Constants * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/** @defgroup RNGEX_Clock_Divider_Factor Value used to configure an internal
+ * @{ + */ + +/** @defgroup RNG_Ex_Clock_Divider_Factor Value used to configure an internal * @ingroup RTEMSBSPsARMSTM32H7 - * programmable divider acting on the incoming RNG clock
- * @{
- */
-#define RNG_CLKDIV_BY_1 (0x00000000UL) /*!< No clock division */
-#define RNG_CLKDIV_BY_2 (RNG_CR_CLKDIV_0)
-/*!< 2 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_4 (RNG_CR_CLKDIV_1)
-/*!< 4 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_8 (RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
-/*!< 8 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_16 (RNG_CR_CLKDIV_2)
-/*!< 16 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_32 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0)
-/*!< 32 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_64 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1)
-/*!< 64 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_128 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
-/*!< 128 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_256 (RNG_CR_CLKDIV_3)
-/*!< 256 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_512 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_0)
-/*!< 512 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_1024 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1)
-/*!< 1024 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_2048 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
-/*!< 2048 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_4096 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2)
-/*!< 4096 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_8192 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0)
-/*!< 8192 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_16384 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1)
-/*!< 16384 RNG clock cycles per internal RNG clock */
-#define RNG_CLKDIV_BY_32768 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
-/*!< 32768 RNG clock cycles per internal RNG clock */
-/**
- * @}
- */
-
-/** @defgroup RNGEX_NIST_Compliance NIST Compliance configuration
+ * programmable divider acting on the incoming RNG clock + * @{ + */ +#define RNG_CLKDIV_BY_1 (0x00000000UL) /*!< No clock division */ +#define RNG_CLKDIV_BY_2 (RNG_CR_CLKDIV_0) +/*!< 2 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_4 (RNG_CR_CLKDIV_1) +/*!< 4 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_8 (RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0) +/*!< 8 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_16 (RNG_CR_CLKDIV_2) +/*!< 16 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_32 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0) +/*!< 32 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_64 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1) +/*!< 64 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_128 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0) +/*!< 128 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_256 (RNG_CR_CLKDIV_3) +/*!< 256 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_512 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_0) +/*!< 512 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_1024 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1) +/*!< 1024 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_2048 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0) +/*!< 2048 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_4096 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2) +/*!< 4096 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_8192 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0) +/*!< 8192 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_16384 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1) +/*!< 16384 RNG clock cycles per internal RNG clock */ +#define RNG_CLKDIV_BY_32768 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0) +/*!< 32768 RNG clock cycles per internal RNG clock */ +/** + * @} + */ + +/** @defgroup RNG_Ex_NIST_Compliance NIST Compliance configuration * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-#define RNG_NIST_COMPLIANT (0x00000000UL) /*!< NIST compliant configuration*/
-#define RNG_CUSTOM_NIST (RNG_CR_NISTC) /*!< Custom NIST configuration */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/* Private types -------------------------------------------------------------*/
-/** @defgroup RNGEx_Private_Types RNGEx Private Types
+ * @{ + */ +#define RNG_NIST_COMPLIANT (0x00000000UL) /*!< NIST compliant configuration*/ +#define RNG_CUSTOM_NIST (RNG_CR_NISTC) /*!< Custom NIST configuration */ + +/** + * @} + */ + +/** + * @} + */ + +/* Private types -------------------------------------------------------------*/ +/** @defgroup RNG_Ex_Private_Types RNG_Ex Private Types * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/**
- * @}
- */
-
-/* Private variables ---------------------------------------------------------*/
-/** @defgroup RNGEx_Private_Variables RNGEx Private Variables
+ * @{ + */ + +/** + * @} + */ + +/* Private variables ---------------------------------------------------------*/ +/** @defgroup RNG_Ex_Private_Variables RNG_Ex Private Variables * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/**
- * @}
- */
-
-/* Private constants ---------------------------------------------------------*/
-/** @defgroup RNGEx_Private_Constants RNGEx Private Constants
+ * @{ + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup RNG_Ex_Private_Constants RNG_Ex Private Constants * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/**
- * @}
- */
-
-/* Private macros ------------------------------------------------------------*/
-/** @defgroup RNGEx_Private_Macros RNGEx Private Macros
+ * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup RNG_Ex_Private_Macros RNG_Ex Private Macros * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-#define IS_RNG_CLOCK_DIVIDER(__CLOCK_DIV__) (((__CLOCK_DIV__) == RNG_CLKDIV_BY_1) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_2) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_4) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_8) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_16) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_32) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_64) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_128) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_256) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_512) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_1024) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_2048) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_4096) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_8192) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_16384) || \
- ((__CLOCK_DIV__) == RNG_CLKDIV_BY_32768))
-
-
-#define IS_RNG_NIST_COMPLIANCE(__NIST_COMPLIANCE__) (((__NIST_COMPLIANCE__) == RNG_NIST_COMPLIANT) || \
- ((__NIST_COMPLIANCE__) == RNG_CUSTOM_NIST))
-
-#define IS_RNG_CONFIG1(__CONFIG1__) ((__CONFIG1__) <= 0x3FUL)
-
-#define IS_RNG_CONFIG2(__CONFIG2__) ((__CONFIG2__) <= 0x07UL)
-
-#define IS_RNG_CONFIG3(__CONFIG3__) ((__CONFIG3__) <= 0xFUL)
-
-
-/**
- * @}
- */
-
-/* Private functions ---------------------------------------------------------*/
-/** @defgroup RNGEx_Private_Functions RNGEx Private Functions
+ * @{ + */ + +#define IS_RNG_CLOCK_DIVIDER(__CLOCK_DIV__) (((__CLOCK_DIV__) == RNG_CLKDIV_BY_1) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_2) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_4) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_8) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_16) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_32) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_64) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_128) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_256) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_512) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_1024) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_2048) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_4096) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_8192) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_16384) || \ + ((__CLOCK_DIV__) == RNG_CLKDIV_BY_32768)) + + +#define IS_RNG_NIST_COMPLIANCE(__NIST_COMPLIANCE__) (((__NIST_COMPLIANCE__) == RNG_NIST_COMPLIANT) || \ + ((__NIST_COMPLIANCE__) == RNG_CUSTOM_NIST)) + +#define IS_RNG_CONFIG1(__CONFIG1__) ((__CONFIG1__) <= 0x3FUL) + +#define IS_RNG_CONFIG2(__CONFIG2__) ((__CONFIG2__) <= 0x07UL) + +#define IS_RNG_CONFIG3(__CONFIG3__) ((__CONFIG3__) <= 0xFUL) + + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @defgroup RNG_Ex_Private_Functions RNG_Ex Private Functions * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/**
- * @}
- */
-
-/* Exported functions --------------------------------------------------------*/
-/** @defgroup RNGEx_Exported_Functions RNGEx Exported Functions
+ * @{ + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup RNG_Ex_Exported_Functions RNG_Ex Exported Functions * @ingroup RTEMSBSPsARMSTM32H7 - * @{
- */
-
-/** @addtogroup RNGEx_Exported_Functions_Group1
- * @{
- */
-HAL_StatusTypeDef HAL_RNGEx_SetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf);
-HAL_StatusTypeDef HAL_RNGEx_GetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf);
-HAL_StatusTypeDef HAL_RNGEx_LockConfig(RNG_HandleTypeDef *hrng);
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#endif /* CONDRST */
-#endif /* RNG */
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* STM32H7xx_HAL_RNGEX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+ * @{ + */ + +/** @addtogroup RNG_Ex_Exported_Functions_Group1 + * @{ + */ +HAL_StatusTypeDef HAL_RNGEx_SetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf); +HAL_StatusTypeDef HAL_RNGEx_GetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf); +HAL_StatusTypeDef HAL_RNGEx_LockConfig(RNG_HandleTypeDef *hrng); + +/** + * @} + */ + +/** @addtogroup RNG_Ex_Exported_Functions_Group2 + * @{ + */ +HAL_StatusTypeDef HAL_RNGEx_RecoverSeedError(RNG_HandleTypeDef *hrng); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* RNG_CR_CONDRST */ +#endif /* RNG */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* STM32H7xx_HAL_RNG_EX_H */ + |