Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
| CC_RNG | APPLICATION | 0x50845000 | HF | S | NSA | No |
CRYPTOCELL RNG engine |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| RNG_IMR | 0x100 |
Interrupt mask register. Each bit of this register holds the mask of a single interrupt source. |
|
| RNG_ISR | 0x104 |
Interrupt status register. Each bit of this register holds the interrupt status of a single interrupt source. If corresponding RNG_IMR bit is unmasked, an interrupt is generated. |
|
| RNG_ICR | 0x108 |
Interrupt clear register. Writing a 1 bit into a field in this register will clear the corresponding bit in RNG_ISR. |
|
| TRNG_CONFIG | 0x10C |
TRNG ring oscillator length configuration |
|
| TRNG_VALID | 0x110 |
This register indicates if TRNG entropy collection is valid. |
|
| EHR_DATA[n] | 0x114 |
The entropy holding registers (EHR) hold 192-bits random data collected by the TRNG. The initial EHR_DATA[0] register holds the least significant bits [31:0] of the random data value. |
|
| NOISE_SOURCE | 0x12C |
This register controls the ring oscillator circuit used as a noise source. |
|
| SAMPLE_CNT | 0x130 |
Sample count defining the number of CPU clock cycles between two consecutive noise source samples. |
|
| AUTOCORR_STATISTIC | 0x134 |
Statistics counter for autocorrelation test activations. Statistics collection is stopped if one of the counters reach its limit of all ones. |
|
| TRNG_DEBUG | 0x138 |
Debug register for the TRNG. This register is used to bypass TRNG tests in hardware. |
|
| RNG_SW_RESET | 0x140 |
Reset the RNG engine. |
|
| RNG_BUSY | 0x1B8 |
Status register for RNG engine activity. |
|
| TRNG_RESET | 0x1BC |
Reset the TRNG, including internal counter of collected bits and registers EHR_DATA and TRNG_VALID. |
|
| RNG_HW_FLAGS | 0x1C0 |
Hardware configuration of RNG engine. Reset value holds the supported features. |
|
| RNG_CLK | 0x1C4 |
Control clock for the RNG engine. |
|
| RNG_DMA | 0x1C8 |
Writing to this register enables the RNG DMA engine. |
|
| RNG_DMA_ROSC_LEN | 0x1CC |
This register defines which ring oscillator length configuration should be used when using the RNG DMA engine. |
|
| RNG_DMA_SRAM_ADDR | 0x1D0 |
This register defines the start address in TRNG SRAM for the TRNG data to be collected by the RNG DMA engine. |
|
| RNG_DMA_SAMPLES_NUM | 0x1D4 |
This register defines the number of 192-bits samples that the RNG DMA engine collects per run. |
|
| RNG_WATCHDOG_VAL | 0x1D8 |
This register defines the maximum number of CPU clock cycles per TRNG collection of 192-bits samples. If the number of cycles for a collection exceeds this threshold the WATCHDOG interrupt is triggered. |
|
| RNG_DMA_BUSY | 0x1DC |
Status register for RNG DMA engine activity. |