# RV32M1 entropy generator driver configuration

# Copyright 2019 NXP
# SPDX-License-Identifier: Apache-2.0

config ENTROPY_RV32M1_TRNG
	bool "RV32M1 TRNG driver"
	depends on ENTROPY_GENERATOR && SOC_OPENISA_RV32M1_RISCV32
	select ENTROPY_HAS_DRIVER
	help
	  This option enables the true random number generator (TRNG)
	  driver based on the RV32M1 TRNG driver.

# Don't use use the RV32M1 TRNG as a random source since it can be quite slow.
# Instead, use the software implemented xoroshiro RNG.
choice RNG_GENERATOR_CHOICE
	default XOROSHIRO_RANDOM_GENERATOR if ENTROPY_RV32M1_TRNG
endchoice
