mirror of
https://github.com/apache/nuttx.git
synced 2026-10-03 12:18:06 +00:00
The part has a hardware random number generator and nothing registers it, so up_randompool_initialize() is never seeded from hardware. There is no CAAM, TRNG or RNG driver anywhere in arch/arm/src/imxrt, and the RT117x headers describe the block only as an address-map comment. imxrt_caam.c brings up job ring zero and instantiates the RNG state handle when the boot ROM has not, retrying with a longer entropy sample until the self test passes. imxrt_rng.c registers /dev/random and /dev/urandom on top, and is the i.MX9 driver's sibling: same health checks, same FIPS 140-2 continuous test, same refusal to return a short read and call it entropy. The instantiation descriptor posts no job ring completion, so the state handle is what reports it, and the ring is taken back to a known state to latch it. Job ring zero is started and the cache and watchdog bits set first: RDSTA and JRSTART both read zero out of reset on this part. Scoped to RT117x, which is the family that carries CAAM. Built for imxrt1170-evk:nsh with the driver on, and for imxrt1060-evk:nsh to confirm the shared clock-gate header still builds without it. Run on an FMU-v6X-RT (i.MX RT1176): /dev/random and /dev/urandom both return, the first read after a cold boot included, and five consecutive reads are distinct. Signed-off-by: Royyan Zahir <royzah@gmail.com> |
||
|---|---|---|
| .. | ||
| arm | ||
| arm64 | ||
| avr | ||
| ceva | ||
| dummy | ||
| hc | ||
| mips | ||
| misoc | ||
| or1k | ||
| renesas | ||
| risc-v | ||
| sim | ||
| sparc | ||
| tricore | ||
| x86 | ||
| x86_64 | ||
| xtensa | ||
| z16 | ||
| z80 | ||
| CMakeLists.txt | ||
| Kconfig | ||