diff --git a/drivers/st/crypto/stm32_rng.c b/drivers/st/crypto/stm32_rng.c index a9dc43f8d..1342fd454 100644 --- a/drivers/st/crypto/stm32_rng.c +++ b/drivers/st/crypto/stm32_rng.c @@ -187,6 +187,10 @@ int stm32_rng_read(uint8_t *out, uint32_t size) count = 4U; while (len != 0U) { + if ((mmio_read_32(stm32_rng.base + RNG_SR) & RNG_SR_DRDY) == 0U) { + break; + } + data32 = mmio_read_32(stm32_rng.base + RNG_DR); count--;