1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 #ifndef __REG_TRNG_H__
5 #define __REG_TRNG_H__
6 
7 #include "plat_types.h"
8 
9 struct TRNG_T
10 {
11 	uint8 reserved1[0x100];           //0x0-0xfc
12     __IO uint32_t RNG_IMR;            // 0x100
13     __I  uint32_t RNG_ISR;            // 0x104
14     __O  uint32_t RNG_ICR;            // 0x108
15     __IO uint32_t TRNG_CONFIG;        // 0x10C
16     __I  uint32_t TRNG_VALID;         //0x110
17     __I  uint32_t EHR_DATA[6];        //0x114-0x128
18     __IO uint32_t RND_SOURCE_ENABLE;  //0x12c
19     __IO uint32_t SAMPLE_CNT1;        //0x130
20     __IO uint32_t AUTOCORR_STATISTIC; //0x134
21     __I  uint32_t TRNG_DEBUG_CONTROL; //0x138
22     uint8 reserved2[0x4];             //0x13c
23     __O  uint32_t TRNG_SW_RESET;      //0x140
24     uint8 reserved3[0x70];            //0x144-0x1b4
25     __I  uint32_t TRNG_BUSY;          //0x1b8
26     __O  uint32_t RST_BITS_COUNTER;   //0x1bc
27     uint8 reserved4[0x1c];            //0x1c0-0x1dc
28     __I  uint32_t RNG_BIST_CNTR[3];   //0x1e0-0x1e8
29 };
30 
31 
32 #define RND_SOURCE_EN    (1 << 0)
33 #define TRNG_VALID_BIT   (1 << 0)
34 #define TRNG_BUSY_BIT    (1 << 0)
35 #define RND_SRC_SEL_MASK (0x3)
36 
37 #endif
38