1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2019-2021 Broadcom
6 /* Random Number Functions */
12 #define TF_RAND_LFSR_INIT_VALUE 0xACE1u
14 uint16_t lfsr = TF_RAND_LFSR_INIT_VALUE;
18 * Generates a 16 bit pseudo random number
25 bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5)) & 1;
26 return lfsr = (lfsr >> 1) | (bit << 15);
30 * Generates a 32 bit pseudo random number
37 return (rand16() << 16) | rand16();
41 * Resets the seed used by the pseudo random number generator
45 lfsr = TF_RAND_LFSR_INIT_VALUE;