19#define TRNG_CR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0000))
20#define TRNG_MSEL (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0004))
21#define TRNG_SR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0008))
22#define TRNG_DR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x000C))
23#define TRNG_VERSION (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0010))
24#define TRNG_RESEED (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0040))
25#define TRNG_HT_CR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0060))
26#define TRNG_HT_SR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0070))
27#define RO_SRC_EN1 (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0080))
28#define RO_SRC_EN2 (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0084))
29#define SCLK_FREQ (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x0088))
31#define TERO_CR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00B0))
32#define TERO_THOLD (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00B4))
33#define TERO_CNT(i) (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00C0 + 4 * i))
34#define TERO_SR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00D0))
35#define TERO_DR (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00D4))
36#define TERO_RCR(i) (*(volatile uint32_t *)(TRNG_BASE_ADDR + 0x00E0 + 4 * i))
39#define TRNG_RO_FREQ_4 (0)
40#define TRNG_RO_FREQ_8 (1)
41#define TRNG_RO_FREQ_16 (2)
42#define TRNG_RO_FREQ_32 (3)
45#define TRNG_GLOBAL_INT_OFFSET (24)
46#define TRNG_READ_EMPTY_INT_OFFSET (17)
47#define TRNG_DATA_INT_OFFSET (16)
48#define TRNG_RO_ENTROPY_OFFSET (4)
49#define TRNG_TERO_THRESHOLD_OFFSET (24)
50#define TRNG_TERO_ENTROPY_OFFSET (8)
94uint32_t
get_rand(uint8_t *rand, uint32_t bytes);
uint32_t trng_set_freq(uint8_t freq)
uint32_t get_hrng(uint8_t *dst, uint32_t size)
uint32_t get_rand(uint8_t *rand, uint32_t bytes)
uint32_t get_rand_fast(uint8_t *rand, uint32_t bytes)
void trng_global_int_disable(void)
void tero_set_osc_sel(uint8_t cfg)
void trng_global_int_enable(void)
uint32_t tero_set_stop_threshold(uint8_t threshold_value)
void tero_set_osc_times_lower_limit(uint16_t value)
void trng_empty_read_int_enable(void)
void trng_set_mode(uint8_t with_post_processing)
void trng_empty_read_int_disable(void)
void tero_set_osc_times_upper_limit(uint16_t value)
uint32_t trng_ro_sub_entropy_config(uint8_t sn, uint16_t cfg)
uint32_t trng_get_version(void)
uint32_t trng_ro_entropy_config(uint8_t cfg)
void trng_data_int_enable(void)
void trng_data_int_disable(void)
uint32_t get_rand_internal(uint8_t *a, uint32_t bytes)
TRNG_RET_CODE
Definition: trng.h:53
@ TRNG_SUCCESS
Definition: trng.h:54
@ TRNG_INVALID_INPUT
Definition: trng.h:56
@ TRNG_BUFFER_NULL
Definition: trng.h:55
@ TRNG_HT_ERROR
Definition: trng.h:58
@ TRNG_INVALID_CONFIG
Definition: trng.h:57
@ TRNG_ERROR
Definition: trng.h:59
void tero_set_output_osc_times(void)
void tero_set_output_rng(void)
uint32_t tero_entropy_config(uint8_t cfg)
uint32_t get_tero_rand(uint8_t *a, uint32_t bytes)