This driver makes use of the nRF RNG peripheral, so it can be used only for SoCs that are equipped with one, and not all nRF SoCs are. The option enabling the driver should then depend on `HAS_HW_NRF_RNG`, which indicates the presence of this peripheral in a given SoC. This patch removes also entries disabling this driver in default configurations for nRF9160 SoC, as these were needed only because of the invalid dependency of the ENTROPY_NRF5_RNG option. A minor adjustment of Kconfig files of the nrf52_bsim board was required as well, so that this board's configuration can properly handle this corrected dependency. Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
83 lines
2.5 KiB
Text
83 lines
2.5 KiB
Text
# Kconfig.nrf5 - nRF5 entropy generator driver configuration
|
|
#
|
|
# Copyright (c) 2018 Nordic Semiconductor ASA
|
|
# Copyright (c) 2017 Exati Tecnologia Ltda.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config ENTROPY_NRF_FORCE_ALT
|
|
bool
|
|
depends on SOC_COMPATIBLE_NRF
|
|
help
|
|
This option can be enabled to force an alternative implementation
|
|
of the entropy driver.
|
|
|
|
if !ENTROPY_NRF_FORCE_ALT
|
|
|
|
menuconfig ENTROPY_NRF5_RNG
|
|
bool "nRF5 RNG driver"
|
|
depends on HAS_HW_NRF_RNG
|
|
select ENTROPY_HAS_DRIVER
|
|
default y
|
|
help
|
|
This option enables the RNG peripheral, which is a random number
|
|
generator, based on internal thermal noise, that provides a
|
|
random 8-bit value to the host when read.
|
|
|
|
if ENTROPY_NRF5_RNG
|
|
|
|
config ENTROPY_NRF5_BIAS_CORRECTION
|
|
bool "Enable bias correction (uniform distribution)"
|
|
help
|
|
This option enables the RNG bias correction, which guarantees a
|
|
uniform distribution of 0 and 1. When this option is enabled, the time
|
|
to generate a byte cannot be guaranteed.
|
|
|
|
config ENTROPY_NRF5_THR_POOL_SIZE
|
|
int "Thread-mode random number pool size"
|
|
range ENTROPY_NRF5_THR_THRESHOLD 256
|
|
default 8
|
|
help
|
|
Buffer length in bytes used to store entropy bytes generated by the
|
|
hardware to make them ready for thread mode consumers.
|
|
Please note, that size of the pool must be a power of 2.
|
|
|
|
config ENTROPY_NRF5_THR_THRESHOLD
|
|
int "Thread-mode random number pool low-water threshold"
|
|
range 4 255
|
|
help
|
|
Low water-mark threshold in bytes to trigger entropy generation for
|
|
thread mode consumers. As soon as the number of available bytes in the
|
|
buffer goes below this number hardware entropy generation will be
|
|
started.
|
|
|
|
config ENTROPY_NRF5_ISR_POOL_SIZE
|
|
int "ISR-mode random number pool size"
|
|
range ENTROPY_NRF5_ISR_THRESHOLD 256
|
|
default 16
|
|
help
|
|
Buffer length in bytes used to store entropy bytes generated by the
|
|
hardware to make them ready for ISR consumers.
|
|
Please note, that size of the pool must be a power of 2.
|
|
|
|
config ENTROPY_NRF5_ISR_THRESHOLD
|
|
int "ISR-mode random number pool low-water threshold"
|
|
range 12 255
|
|
help
|
|
Low water-mark threshold in bytes to trigger entropy generation for
|
|
ISR consumers. As soon as the number of available bytes in the
|
|
buffer goes below this number hardware entropy generation will be
|
|
started.
|
|
|
|
config ENTROPY_NRF5_PRI
|
|
int "RNG interrupt priority"
|
|
range 0 2 if SOC_SERIES_NRF51X
|
|
range 0 5 if SOC_COMPATIBLE_NRF52X
|
|
default 2 if SOC_SERIES_NRF51X
|
|
default 5 if SOC_COMPATIBLE_NRF52X
|
|
help
|
|
nRF5X RNG IRQ priority.
|
|
|
|
endif # ENTROPY_NRF5_RNG
|
|
|
|
endif # !ENTROPY_NRF_FORCE_ALT
|