Skip to content

Commit

Permalink
STM32L5 RNG : update for deprecated MCU version
Browse files Browse the repository at this point in the history
  • Loading branch information
JeanMarcR committed May 20, 2021
1 parent 7d1f5c4 commit f599a54
Showing 1 changed file with 14 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@
/* Health test control register information to use in CCM algorithm */
#define RNG_HTCFG_1 0x17590ABCU /*!< Magic number */
#define RNG_HTCFG 0x0000A2B3U /*!< Recommended value for NIST compliancy */
#define RNG_HTCFG_REVB 0x000CAA74U /*!< Recommended value for old MCU cut - deprecated */
/**
* @}
*/
Expand Down Expand Up @@ -210,10 +211,18 @@ HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng)
MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, hrng->Init.ClockErrorDetection | RNG_CR_CONDRST);

#if defined(RNG_VER_3_2) || defined(RNG_VER_3_1) || defined(RNG_VER_3_0)
if ( HAL_GetREVID() == 0x2000) { // Deprecated - old MCU
/*!< magic number must be written immediately before to RNG_HTCRG */
WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_1);
/* for best latency and to be compliant with NIST */
WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG);
WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_REVB);
}
else {
/*!< magic number must be written immediately before to RNG_HTCRG */
WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_1);
/* for best latency and to be compliant with NIST */
WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG);
}
#endif /* RNG_VER_3_2 || RNG_VER_3_1 || RNG_VER_3_0 */

/* Writing bit CONDRST=0 */
Expand Down Expand Up @@ -682,6 +691,10 @@ HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t
{
hrng->State = HAL_RNG_STATE_READY;
hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT;
if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) != RESET)
{
hrng->ErrorCode |= HAL_RNG_ERROR_SEED;
}
/* Process Unlocked */
__HAL_UNLOCK(hrng);
return HAL_ERROR;
Expand Down

0 comments on commit f599a54

Please sign in to comment.