1 /*
2  * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "trng.h"
9 #include "cc3xx_rng.h"
10 #include "device_definition.h"
11 
bl1_trng_generate_random(uint8_t * output,size_t output_size)12 int32_t bl1_trng_generate_random(uint8_t *output, size_t output_size)
13 {
14     if (output_size == 0) {
15         return 0;
16     }
17 
18     if (output == NULL) {
19         return -1;
20     }
21 
22     return cc3xx_lowlevel_rng_get_random(output, output_size);
23 }
24 
fih_delay_random_uchar(void)25 unsigned char fih_delay_random_uchar(void) {
26     /* Perform a hardware delay here, then return 0 so no software delay is
27      * used.
28      */
29     kmu_random_delay(&KMU_DEV_S, KMU_DELAY_LIMIT_32_CYCLES);
30     return 0;
31 }
32