xref: /rk3399_rockchip-uboot/include/rockchip/rkce_reg.h (revision 8f7f431fc3314b4d44fc6ab0ecd2b6ae4ecaa9b9)
100565589SLin Jinhan /* SPDX-License-Identifier: GPL-2.0 */
200565589SLin Jinhan 
300565589SLin Jinhan /* Copyright (c) 2025 Rockchip Electronics Co., Ltd. */
400565589SLin Jinhan 
500565589SLin Jinhan #ifndef __RKCE_REG_H
600565589SLin Jinhan #define __RKCE_REG_H
700565589SLin Jinhan 
800565589SLin Jinhan #include <linux/types.h>
900565589SLin Jinhan 
1000565589SLin Jinhan /****************************************************************************************/
1100565589SLin Jinhan /*                                                                                      */
1200565589SLin Jinhan /*                               Module Structure Section                               */
1300565589SLin Jinhan /*                                                                                      */
1400565589SLin Jinhan /****************************************************************************************/
1500565589SLin Jinhan /* RKCE Register Structure Define */
1600565589SLin Jinhan struct RKCE_REG {
1700565589SLin Jinhan 	uint32_t CLK_CTL;                            /* Address Offset: 0x0000 */
1800565589SLin Jinhan 	uint32_t RST_CTL;                            /* Address Offset: 0x0004 */
1900565589SLin Jinhan 	uint32_t RESERVED0008[126];                  /* Address Offset: 0x0008 */
2000565589SLin Jinhan 	uint32_t TD_ADDR;                            /* Address Offset: 0x0200 */
2100565589SLin Jinhan 	uint32_t TD_LOAD_CTRL;                       /* Address Offset: 0x0204 */
2200565589SLin Jinhan 	uint32_t FIFO_ST;                            /* Address Offset: 0x0208 */
2300565589SLin Jinhan 	uint32_t RESERVED020C;                       /* Address Offset: 0x020C */
2400565589SLin Jinhan 	uint32_t SYMM_INT_EN;                        /* Address Offset: 0x0210 */
2500565589SLin Jinhan 	uint32_t SYMM_INT_ST;                        /* Address Offset: 0x0214 */
2600565589SLin Jinhan 	uint32_t SYMM_TD_ID;                         /* Address Offset: 0x0218 */
2700565589SLin Jinhan 	uint32_t SYMM_TD_ST;                         /* Address Offset: 0x021C */
2800565589SLin Jinhan 	uint32_t SYMM_ST_DBG;                        /* Address Offset: 0x0220 */
2900565589SLin Jinhan 	uint32_t SYMM_CONTEXT_SIZE;                  /* Address Offset: 0x0224 */
3000565589SLin Jinhan 	uint32_t SYMM_TD_ADDR_DBG;                   /* Address Offset: 0x0228 */
3100565589SLin Jinhan 	uint32_t SYMM_TD_GRANT_DBG;                  /* Address Offset: 0x022C */
3200565589SLin Jinhan 	uint32_t HASH_INT_EN;                        /* Address Offset: 0x0230 */
3300565589SLin Jinhan 	uint32_t HASH_INT_ST;                        /* Address Offset: 0x0234 */
3400565589SLin Jinhan 	uint32_t HASH_TD_ID;                         /* Address Offset: 0x0238 */
3500565589SLin Jinhan 	uint32_t HASH_TD_ST;                         /* Address Offset: 0x023C */
3600565589SLin Jinhan 	uint32_t HASH_ST_DBG;                        /* Address Offset: 0x0240 */
3700565589SLin Jinhan 	uint32_t HASH_CONTEXT_SIZE;                  /* Address Offset: 0x0244 */
3800565589SLin Jinhan 	uint32_t HASH_TD_ADDR_DBG;                   /* Address Offset: 0x0248 */
3900565589SLin Jinhan 	uint32_t HASH_TD_GRANT_DBG;                  /* Address Offset: 0x024C */
4000565589SLin Jinhan 	uint32_t SYMM_TD_POP_ADDR;                   /* Address Offset: 0x0250 */
4100565589SLin Jinhan 	uint32_t HASH_TD_POP_ADDR;                   /* Address Offset: 0x0254 */
4200565589SLin Jinhan 	uint32_t TD_POP_CTRL;                        /* Address Offset: 0x0258 */
4300565589SLin Jinhan 	uint32_t RESERVED025C[5];                    /* Address Offset: 0x025C */
4400565589SLin Jinhan 	uint32_t KL_TO_CE_PADDR;                     /* Address Offset: 0x0270 */
4500565589SLin Jinhan 	uint32_t KL_KD_ADDR;                         /* Address Offset: 0x0274 */
4600565589SLin Jinhan 	uint32_t RESERVED0278[94];                   /* Address Offset: 0x0278 */
4700565589SLin Jinhan 	uint32_t ECC_CTL;                            /* Address Offset: 0x03F0 */
4800565589SLin Jinhan 	uint32_t ECC_INT_EN;                         /* Address Offset: 0x03F4 */
4900565589SLin Jinhan 	uint32_t ECC_INT_ST;                         /* Address Offset: 0x03F8 */
5000565589SLin Jinhan 	uint32_t ECC_ABN_ST;                         /* Address Offset: 0x03FC */
5100565589SLin Jinhan 	uint32_t ECC_CURVE_WIDE;                     /* Address Offset: 0x0400 */
5200565589SLin Jinhan 	uint32_t ECC_MAX_CURVE_WIDE;                 /* Address Offset: 0x0404 */
5300565589SLin Jinhan 	uint32_t ECC_DATA_ENDIAN;                    /* Address Offset: 0x0408 */
5400565589SLin Jinhan 	uint32_t RESERVED040C[17];                   /* Address Offset: 0x040C */
5500565589SLin Jinhan 	uint32_t KL_APB_CMD;                         /* Address Offset: 0x0450 */
5600565589SLin Jinhan 	uint32_t KL_APB_PADDR;                       /* Address Offset: 0x0454 */
5700565589SLin Jinhan 	uint32_t KL_APB_PWDATA;                      /* Address Offset: 0x0458 */
5800565589SLin Jinhan 	uint32_t RESERVED045C[2];                    /* Address Offset: 0x045C */
5900565589SLin Jinhan 	uint32_t KL_KD_VID;                          /* Address Offset: 0x0464 */
6000565589SLin Jinhan 	uint32_t KL_KD_MODE;                         /* Address Offset: 0x0468 */
6100565589SLin Jinhan 	uint32_t RESERVED046C[5];                    /* Address Offset: 0x046C */
6200565589SLin Jinhan 	uint32_t PKA_RAM_CTL;                        /* Address Offset: 0x0480 */
6300565589SLin Jinhan 	uint32_t PKA_RAM_ST;                         /* Address Offset: 0x0484 */
6400565589SLin Jinhan 	uint32_t RESERVED0488[6];                    /* Address Offset: 0x0488 */
6500565589SLin Jinhan 	uint32_t PKA_DEBUG_CTL;                      /* Address Offset: 0x04A0 */
6600565589SLin Jinhan 	uint32_t PKA_DEBUG_ST;                       /* Address Offset: 0x04A4 */
6700565589SLin Jinhan 	uint32_t PKA_DEBUG_MONITOR;                  /* Address Offset: 0x04A8 */
6800565589SLin Jinhan 	uint32_t RESERVED04AC[85];                   /* Address Offset: 0x04AC */
6900565589SLin Jinhan 	uint32_t KT_ST;                              /* Address Offset: 0x0600 */
7000565589SLin Jinhan 	uint32_t RESERVED0604;                       /* Address Offset: 0x0604 */
7100565589SLin Jinhan 	uint32_t KL_INTER_COPY;                      /* Address Offset: 0x0608 */
7200565589SLin Jinhan 	uint32_t RESERVED060C[4];                    /* Address Offset: 0x060C */
7300565589SLin Jinhan 	uint32_t LOCKSTEP_EN;                        /* Address Offset: 0x061C */
7400565589SLin Jinhan 	uint32_t RESERVED0620[2];                    /* Address Offset: 0x0620 */
7500565589SLin Jinhan 	uint32_t LOCKSTEP_IJERR;                     /* Address Offset: 0x0628 */
7600565589SLin Jinhan 	uint32_t RESERVED062C[5];                    /* Address Offset: 0x062C */
7700565589SLin Jinhan 	uint32_t KL_OTP_KEY_REQ;                     /* Address Offset: 0x0640 */
7800565589SLin Jinhan 	uint32_t KL_KEY_CLEAR;                       /* Address Offset: 0x0644 */
7900565589SLin Jinhan 	uint32_t KL_OTP_KEY_LEN;                     /* Address Offset: 0x0648 */
8000565589SLin Jinhan 	uint32_t KL_HW_DRNG_REQ;                     /* Address Offset: 0x064C */
8100565589SLin Jinhan 	uint32_t RESERVED0650[12];                   /* Address Offset: 0x0650 */
8200565589SLin Jinhan 	uint32_t AES_VER;                            /* Address Offset: 0x0680 */
8300565589SLin Jinhan 	uint32_t DES_VER;                            /* Address Offset: 0x0684 */
8400565589SLin Jinhan 	uint32_t SM4_VER;                            /* Address Offset: 0x0688 */
8500565589SLin Jinhan 	uint32_t HASH_VER;                           /* Address Offset: 0x068C */
8600565589SLin Jinhan 	uint32_t HMAC_VER;                           /* Address Offset: 0x0690 */
8700565589SLin Jinhan 	uint32_t RESERVED0694;                       /* Address Offset: 0x0694 */
8800565589SLin Jinhan 	uint32_t PKA_VER;                            /* Address Offset: 0x0698 */
8900565589SLin Jinhan 	uint32_t EXTRA_FEATURE;                      /* Address Offset: 0x069C */
9000565589SLin Jinhan 	uint32_t RESERVED06A0[20];                   /* Address Offset: 0x06A0 */
9100565589SLin Jinhan 	uint32_t CE_VER;                             /* Address Offset: 0x06F0 */
9200565589SLin Jinhan 	uint32_t RESERVED06F4[67];                   /* Address Offset: 0x06F4 */
9300565589SLin Jinhan 	uint32_t PKA_MEM_MAP0;                       /* Address Offset: 0x0800 */
9400565589SLin Jinhan 	uint32_t PKA_MEM_MAP1;                       /* Address Offset: 0x0804 */
9500565589SLin Jinhan 	uint32_t PKA_MEM_MAP2;                       /* Address Offset: 0x0808 */
9600565589SLin Jinhan 	uint32_t PKA_MEM_MAP3;                       /* Address Offset: 0x080C */
9700565589SLin Jinhan 	uint32_t PKA_MEM_MAP4;                       /* Address Offset: 0x0810 */
9800565589SLin Jinhan 	uint32_t PKA_MEM_MAP5;                       /* Address Offset: 0x0814 */
9900565589SLin Jinhan 	uint32_t PKA_MEM_MAP6;                       /* Address Offset: 0x0818 */
10000565589SLin Jinhan 	uint32_t PKA_MEM_MAP7;                       /* Address Offset: 0x081C */
10100565589SLin Jinhan 	uint32_t PKA_MEM_MAP8;                       /* Address Offset: 0x0820 */
10200565589SLin Jinhan 	uint32_t PKA_MEM_MAP9;                       /* Address Offset: 0x0824 */
10300565589SLin Jinhan 	uint32_t PKA_MEM_MAP10;                      /* Address Offset: 0x0828 */
10400565589SLin Jinhan 	uint32_t PKA_MEM_MAP11;                      /* Address Offset: 0x082C */
10500565589SLin Jinhan 	uint32_t PKA_MEM_MAP12;                      /* Address Offset: 0x0830 */
10600565589SLin Jinhan 	uint32_t PKA_MEM_MAP13;                      /* Address Offset: 0x0834 */
10700565589SLin Jinhan 	uint32_t PKA_MEM_MAP14;                      /* Address Offset: 0x0838 */
10800565589SLin Jinhan 	uint32_t PKA_MEM_MAP15;                      /* Address Offset: 0x083C */
10900565589SLin Jinhan 	uint32_t PKA_MEM_MAP16;                      /* Address Offset: 0x0840 */
11000565589SLin Jinhan 	uint32_t PKA_MEM_MAP17;                      /* Address Offset: 0x0844 */
11100565589SLin Jinhan 	uint32_t PKA_MEM_MAP18;                      /* Address Offset: 0x0848 */
11200565589SLin Jinhan 	uint32_t PKA_MEM_MAP19;                      /* Address Offset: 0x084C */
11300565589SLin Jinhan 	uint32_t PKA_MEM_MAP20;                      /* Address Offset: 0x0850 */
11400565589SLin Jinhan 	uint32_t PKA_MEM_MAP21;                      /* Address Offset: 0x0854 */
11500565589SLin Jinhan 	uint32_t PKA_MEM_MAP22;                      /* Address Offset: 0x0858 */
11600565589SLin Jinhan 	uint32_t PKA_MEM_MAP23;                      /* Address Offset: 0x085C */
11700565589SLin Jinhan 	uint32_t PKA_MEM_MAP24;                      /* Address Offset: 0x0860 */
11800565589SLin Jinhan 	uint32_t PKA_MEM_MAP25;                      /* Address Offset: 0x0864 */
11900565589SLin Jinhan 	uint32_t PKA_MEM_MAP26;                      /* Address Offset: 0x0868 */
12000565589SLin Jinhan 	uint32_t PKA_MEM_MAP27;                      /* Address Offset: 0x086C */
12100565589SLin Jinhan 	uint32_t PKA_MEM_MAP28;                      /* Address Offset: 0x0870 */
12200565589SLin Jinhan 	uint32_t PKA_MEM_MAP29;                      /* Address Offset: 0x0874 */
12300565589SLin Jinhan 	uint32_t PKA_MEM_MAP30;                      /* Address Offset: 0x0878 */
12400565589SLin Jinhan 	uint32_t PKA_MEM_MAP31;                      /* Address Offset: 0x087C */
12500565589SLin Jinhan 	uint32_t PKA_OPCODE;                         /* Address Offset: 0x0880 */
12600565589SLin Jinhan 	uint32_t N_NP_T0_T1_ADDR;                    /* Address Offset: 0x0884 */
12700565589SLin Jinhan 	uint32_t PKA_STATUS;                         /* Address Offset: 0x0888 */
12800565589SLin Jinhan 	uint32_t RESERVED088C;                       /* Address Offset: 0x088C */
12900565589SLin Jinhan 	uint32_t PKA_L0;                             /* Address Offset: 0x0890 */
13000565589SLin Jinhan 	uint32_t PKA_L1;                             /* Address Offset: 0x0894 */
13100565589SLin Jinhan 	uint32_t PKA_L2;                             /* Address Offset: 0x0898 */
13200565589SLin Jinhan 	uint32_t PKA_L3;                             /* Address Offset: 0x089C */
13300565589SLin Jinhan 	uint32_t PKA_L4;                             /* Address Offset: 0x08A0 */
13400565589SLin Jinhan 	uint32_t PKA_L5;                             /* Address Offset: 0x08A4 */
13500565589SLin Jinhan 	uint32_t PKA_L6;                             /* Address Offset: 0x08A8 */
13600565589SLin Jinhan 	uint32_t PKA_L7;                             /* Address Offset: 0x08AC */
13700565589SLin Jinhan 	uint32_t PKA_PIPE_RDY;                       /* Address Offset: 0x08B0 */
13800565589SLin Jinhan 	uint32_t PKA_DONE;                           /* Address Offset: 0x08B4 */
13900565589SLin Jinhan 	uint32_t PKA_MON_SELECT;                     /* Address Offset: 0x08B8 */
14000565589SLin Jinhan 	uint32_t PKA_DEBUG_REG_EN;                   /* Address Offset: 0x08BC */
14100565589SLin Jinhan 	uint32_t DEBUG_CNT_ADDR;                     /* Address Offset: 0x08C0 */
14200565589SLin Jinhan 	uint32_t DEBUG_EXT_ADDR;                     /* Address Offset: 0x08C4 */
14300565589SLin Jinhan 	uint32_t PKA_DEBUG_HALT;                     /* Address Offset: 0x08C8 */
14400565589SLin Jinhan 	uint32_t RESERVED08CC;                       /* Address Offset: 0x08CC */
14500565589SLin Jinhan 	uint32_t PKA_MON_READ;                       /* Address Offset: 0x08D0 */
14600565589SLin Jinhan 	uint32_t PKA_INT_ENA;                        /* Address Offset: 0x08D4 */
14700565589SLin Jinhan 	uint32_t PKA_INT_ST;                         /* Address Offset: 0x08D8 */
14800565589SLin Jinhan 	uint32_t TD0_TD1_TX_ADDR;                    /* Address Offset: 0x08DC */
14900565589SLin Jinhan 	uint32_t RESERVED08E0[456];                  /* Address Offset: 0x08E0 */
15000565589SLin Jinhan 	uint32_t SRAM_ADDR;                          /* Address Offset: 0x1000 */
15100565589SLin Jinhan };
15200565589SLin Jinhan 
15300565589SLin Jinhan /****************************************************************************************/
15400565589SLin Jinhan /*                                                                                      */
15500565589SLin Jinhan /*                               Register Bitmap Section                                */
15600565589SLin Jinhan /*                                                                                      */
15700565589SLin Jinhan /****************************************************************************************/
15800565589SLin Jinhan /******************************************RKCE******************************************/
15900565589SLin Jinhan /* CLK_CTL */
16000565589SLin Jinhan #define RKCE_CLK_CTL_OFFSET                        (0x0U)
16100565589SLin Jinhan #define RKCE_CLK_CTL_AUTO_CLKGATE_EN_SHIFT         (0U)
16200565589SLin Jinhan #define RKCE_CLK_CTL_AUTO_CLKGATE_EN_MASK          (0x1U << RKCE_CLK_CTL_AUTO_CLKGATE_EN_SHIFT)
16300565589SLin Jinhan /* RST_CTL */
16400565589SLin Jinhan #define RKCE_RST_CTL_OFFSET                        (0x4U)
16500565589SLin Jinhan #define RKCE_RST_CTL_SW_SYMM_RESET_SHIFT           (0U)
16600565589SLin Jinhan #define RKCE_RST_CTL_SW_SYMM_RESET_MASK            (0x1U << RKCE_RST_CTL_SW_SYMM_RESET_SHIFT)
16700565589SLin Jinhan #define RKCE_RST_CTL_SW_HASH_RESET_SHIFT           (1U)
16800565589SLin Jinhan #define RKCE_RST_CTL_SW_HASH_RESET_MASK            (0x1U << RKCE_RST_CTL_SW_HASH_RESET_SHIFT)
16900565589SLin Jinhan #define RKCE_RST_CTL_SW_PKA_RESET_SHIFT            (2U)
17000565589SLin Jinhan #define RKCE_RST_CTL_SW_PKA_RESET_MASK             (0x1U << RKCE_RST_CTL_SW_PKA_RESET_SHIFT)
171*8f7f431fSTroy Lin #define	CRYPTO_CH0_KEY_0                           0x0180
17200565589SLin Jinhan /* TD_ADDR */
17300565589SLin Jinhan #define RKCE_TD_ADDR_OFFSET                        (0x200U)
17400565589SLin Jinhan #define RKCE_TD_ADDR_TD_ADDR_SHIFT                 (0U)
17500565589SLin Jinhan #define RKCE_TD_ADDR_TD_ADDR_MASK                  (0xFFFFFFFFU << RKCE_TD_ADDR_TD_ADDR_SHIFT)
17600565589SLin Jinhan /* TD_LOAD_CTRL */
17700565589SLin Jinhan #define RKCE_TD_LOAD_CTRL_OFFSET                   (0x204U)
17800565589SLin Jinhan #define RKCE_TD_LOAD_CTRL_SYMM_TLR_SHIFT           (0U)
17900565589SLin Jinhan #define RKCE_TD_LOAD_CTRL_SYMM_TLR_MASK            (0x1U << RKCE_TD_LOAD_CTRL_SYMM_TLR_SHIFT)
18000565589SLin Jinhan #define RKCE_TD_LOAD_CTRL_HASH_TLR_SHIFT           (1U)
18100565589SLin Jinhan #define RKCE_TD_LOAD_CTRL_HASH_TLR_MASK            (0x1U << RKCE_TD_LOAD_CTRL_HASH_TLR_SHIFT)
18200565589SLin Jinhan /* SYMM_INT_ST */
18300565589SLin Jinhan #define RKCE_SYMM_INT_ST_OFFSET                    (0x214U)
18400565589SLin Jinhan #define RKCE_SYMM_INT_ST_TD_DONE_SHIFT             (0U)
18500565589SLin Jinhan #define RKCE_SYMM_INT_ST_TD_DONE_MASK              (0x1U << RKCE_SYMM_INT_ST_TD_DONE_SHIFT)
18600565589SLin Jinhan #define RKCE_SYMM_INT_ST_DST_ERROR_SHIFT           (1U)
18700565589SLin Jinhan #define RKCE_SYMM_INT_ST_DST_ERROR_MASK            (0x1U << RKCE_SYMM_INT_ST_DST_ERROR_SHIFT)
18800565589SLin Jinhan #define RKCE_SYMM_INT_ST_SRC_ERROR_SHIFT           (2U)
18900565589SLin Jinhan #define RKCE_SYMM_INT_ST_SRC_ERROR_MASK            (0x1U << RKCE_SYMM_INT_ST_SRC_ERROR_SHIFT)
19000565589SLin Jinhan #define RKCE_SYMM_INT_ST_TD_ERROR_SHIFT            (3U)
19100565589SLin Jinhan #define RKCE_SYMM_INT_ST_TD_ERROR_MASK             (0x1U << RKCE_SYMM_INT_ST_TD_ERROR_SHIFT)
19200565589SLin Jinhan #define RKCE_SYMM_INT_ST_NE_LEN_SHIFT              (4U)
19300565589SLin Jinhan #define RKCE_SYMM_INT_ST_NE_LEN_MASK               (0x1U << RKCE_SYMM_INT_ST_NE_LEN_SHIFT)
19400565589SLin Jinhan #define RKCE_SYMM_INT_ST_LOCKSTEP_ERROR_SHIFT      (5U)
19500565589SLin Jinhan #define RKCE_SYMM_INT_ST_LOCKSTEP_ERROR_MASK       (0x1U << RKCE_SYMM_INT_ST_LOCKSTEP_ERROR_SHIFT)
19600565589SLin Jinhan /* SYMM_TD_ID */
19700565589SLin Jinhan #define RKCE_SYMM_TD_ID_OFFSET                     (0x218U)
19800565589SLin Jinhan #define RKCE_SYMM_TD_ID                            (0x0U)
19900565589SLin Jinhan #define RKCE_SYMM_TD_ID_STDID_SHIFT                (0U)
20000565589SLin Jinhan #define RKCE_SYMM_TD_ID_STDID_MASK                 (0xFFFFFFFFU << RKCE_SYMM_TD_ID_STDID_SHIFT)
20100565589SLin Jinhan /* SYMM_TD_ST */
20200565589SLin Jinhan #define RKCE_SYMM_TD_ST_OFFSET                     (0x21CU)
20300565589SLin Jinhan #define RKCE_SYMM_TD_ST                            (0x0U)
20400565589SLin Jinhan #define RKCE_SYMM_TD_ST_FIRST_PKG_FLAG_SHIFT       (0U)
20500565589SLin Jinhan #define RKCE_SYMM_TD_ST_FIRST_PKG_FLAG_MASK        (0x1U << RKCE_SYMM_TD_ST_FIRST_PKG_FLAG_SHIFT)
20600565589SLin Jinhan #define RKCE_SYMM_TD_ST_LAST_PKG_FLAG_SHIFT        (1U)
20700565589SLin Jinhan #define RKCE_SYMM_TD_ST_LAST_PKG_FLAG_MASK         (0x1U << RKCE_SYMM_TD_ST_LAST_PKG_FLAG_SHIFT)
20800565589SLin Jinhan #define RKCE_SYMM_TD_ST_DMA_START_FLAG_SHIFT       (2U)
20900565589SLin Jinhan #define RKCE_SYMM_TD_ST_DMA_START_FLAG_MASK        (0x1U << RKCE_SYMM_TD_ST_DMA_START_FLAG_SHIFT)
21000565589SLin Jinhan #define RKCE_SYMM_TD_ST_PRMPT_PKG_FLGA_SHIFT       (3U)
21100565589SLin Jinhan #define RKCE_SYMM_TD_ST_PRMPT_PKG_FLGA_MASK        (0x1U << RKCE_SYMM_TD_ST_PRMPT_PKG_FLGA_SHIFT)
21200565589SLin Jinhan /* SYMM_CONTEXT_SIZE */
21300565589SLin Jinhan #define RKCE_SYMM_CONTEXT_SIZE_OFFSET              (0x224U)
21400565589SLin Jinhan #define RKCE_SYMM_CONTEXT_SIZE                     (0x20U)
21500565589SLin Jinhan /* HASH_INT_ST */
21600565589SLin Jinhan #define RKCE_HASH_INT_ST_OFFSET                    (0x234U)
21700565589SLin Jinhan #define RKCE_HASH_INT_ST_TD_DONE_SHIFT             (0U)
21800565589SLin Jinhan #define RKCE_HASH_INT_ST_TD_DONE_MASK              (0x1U << RKCE_HASH_INT_ST_TD_DONE_SHIFT)
21900565589SLin Jinhan #define RKCE_HASH_INT_ST_DST_ERROR_SHIFT           (1U)
22000565589SLin Jinhan #define RKCE_HASH_INT_ST_DST_ERROR_MASK            (0x1U << RKCE_HASH_INT_ST_DST_ERROR_SHIFT)
22100565589SLin Jinhan #define RKCE_HASH_INT_ST_SRC_ERROR_SHIFT           (2U)
22200565589SLin Jinhan #define RKCE_HASH_INT_ST_SRC_ERROR_MASK            (0x1U << RKCE_HASH_INT_ST_SRC_ERROR_SHIFT)
22300565589SLin Jinhan #define RKCE_HASH_INT_ST_TD_ERROR_SHIFT            (3U)
22400565589SLin Jinhan #define RKCE_HASH_INT_ST_TD_ERROR_MASK             (0x1U << RKCE_HASH_INT_ST_TD_ERROR_SHIFT)
22500565589SLin Jinhan #define RKCE_HASH_INT_ST_NE_LEN_SHIFT              (4U)
22600565589SLin Jinhan #define RKCE_HASH_INT_ST_NE_LEN_MASK               (0x1U << RKCE_HASH_INT_ST_NE_LEN_SHIFT)
22700565589SLin Jinhan #define RKCE_HASH_INT_ST_LOCKSTEP_ERROR_SHIFT      (5U)
22800565589SLin Jinhan #define RKCE_HASH_INT_ST_LOCKSTEP_ERROR_MASK       (0x1U << RKCE_HASH_INT_ST_LOCKSTEP_ERROR_SHIFT)
22900565589SLin Jinhan /* HASH_TD_ID */
23000565589SLin Jinhan #define RKCE_HASH_TD_ID_OFFSET                     (0x238U)
23100565589SLin Jinhan #define RKCE_HASH_TD_ID                            (0x0U)
23200565589SLin Jinhan #define RKCE_HASH_TD_ID_HTDID_SHIFT                (0U)
23300565589SLin Jinhan #define RKCE_HASH_TD_ID_HTDID_MASK                 (0xFFFFFFFFU << RKCE_HASH_TD_ID_HTDID_SHIFT)
23400565589SLin Jinhan /* HASH_TD_ST */
23500565589SLin Jinhan #define RKCE_HASH_TD_ST_OFFSET                     (0x23CU)
23600565589SLin Jinhan #define RKCE_HASH_TD_ST                            (0x0U)
23700565589SLin Jinhan #define RKCE_HASH_TD_ST_FIRST_PKG_FLAG_SHIFT       (0U)
23800565589SLin Jinhan #define RKCE_HASH_TD_ST_FIRST_PKG_FLAG_MASK        (0x1U << RKCE_HASH_TD_ST_FIRST_PKG_FLAG_SHIFT)
23900565589SLin Jinhan #define RKCE_HASH_TD_ST_LAST_PKG_FLAG_SHIFT        (1U)
24000565589SLin Jinhan #define RKCE_HASH_TD_ST_LAST_PKG_FLAG_MASK         (0x1U << RKCE_HASH_TD_ST_LAST_PKG_FLAG_SHIFT)
24100565589SLin Jinhan #define RKCE_HASH_TD_ST_DMA_START_FLAG_SHIFT       (2U)
24200565589SLin Jinhan #define RKCE_HASH_TD_ST_DMA_START_FLAG_MASK        (0x1U << RKCE_HASH_TD_ST_DMA_START_FLAG_SHIFT)
24300565589SLin Jinhan #define RKCE_HASH_TD_ST_PRMPT_PKG_FLGA_SHIFT       (3U)
24400565589SLin Jinhan #define RKCE_HASH_TD_ST_PRMPT_PKG_FLGA_MASK        (0x1U << RKCE_HASH_TD_ST_PRMPT_PKG_FLGA_SHIFT)
24500565589SLin Jinhan /* HASH_CONTEXT_SIZE */
24600565589SLin Jinhan #define RKCE_HASH_CONTEXT_SIZE_OFFSET              (0x244U)
24700565589SLin Jinhan #define RKCE_HASH_CONTEXT_SIZE                     (0xD0U)
24800565589SLin Jinhan /* TD_POP_CTRL */
24900565589SLin Jinhan #define RKCE_TD_POP_CTRL_OFFSET                    (0x258U)
25000565589SLin Jinhan #define RKCE_TD_POP_CTRL                           (0x0U)
25100565589SLin Jinhan #define RKCE_TD_POP_CTRL_SYMM_TPR_SHIFT            (0U)
25200565589SLin Jinhan #define RKCE_TD_POP_CTRL_SYMM_TPR_MASK             (0x1U << RKCE_TD_POP_CTRL_SYMM_TPR_SHIFT)
25300565589SLin Jinhan #define RKCE_TD_POP_CTRL_HASH_TPR_SHIFT            (1U)
25400565589SLin Jinhan #define RKCE_TD_POP_CTRL_HASH_TPR_MASK             (0x1U << RKCE_TD_POP_CTRL_HASH_TPR_SHIFT)
25500565589SLin Jinhan /* ECC_CTL */
25600565589SLin Jinhan #define RKCE_ECC_CTL_OFFSET                        (0x3F0U)
25700565589SLin Jinhan #define RKCE_ECC_CTL_ECC_REQ_SHIFT                 (0U)
25800565589SLin Jinhan #define RKCE_ECC_CTL_ECC_REQ_MASK                  (0x1U << RKCE_ECC_CTL_ECC_REQ_SHIFT)
25900565589SLin Jinhan #define RKCE_ECC_CTL_FUNC_SEL_SHIFT                (4U)
26000565589SLin Jinhan #define RKCE_ECC_CTL_FUNC_SEL_MASK                 (0xFU << RKCE_ECC_CTL_FUNC_SEL_SHIFT)
26100565589SLin Jinhan #define RKCE_ECC_CTL_CURVE_MODE_SEL_SHIFT          (8U)
26200565589SLin Jinhan #define RKCE_ECC_CTL_CURVE_MODE_SEL_MASK           (0x1U << RKCE_ECC_CTL_CURVE_MODE_SEL_SHIFT)
26300565589SLin Jinhan #define RKCE_ECC_CTL_RAND_K_SRC_SHIFT              (12U)
26400565589SLin Jinhan #define RKCE_ECC_CTL_RAND_K_SRC_MASK               (0x1U << RKCE_ECC_CTL_RAND_K_SRC_SHIFT)
26500565589SLin Jinhan /* ECC_INT_EN */
26600565589SLin Jinhan #define RKCE_ECC_INT_EN_OFFSET                     (0x3F4U)
26700565589SLin Jinhan #define RKCE_ECC_INT_EN_DONE_INT_EN_SHIFT          (0U)
26800565589SLin Jinhan #define RKCE_ECC_INT_EN_DONE_INT_EN_MASK           (0x1U << RKCE_ECC_INT_EN_DONE_INT_EN_SHIFT)
26900565589SLin Jinhan /* ECC_INT_ST */
27000565589SLin Jinhan #define RKCE_ECC_INT_ST_OFFSET                     (0x3F8U)
27100565589SLin Jinhan #define RKCE_ECC_INT_ST_DONE_INT_ST_SHIFT          (0U)
27200565589SLin Jinhan #define RKCE_ECC_INT_ST_DONE_INT_ST_MASK           (0x1U << RKCE_ECC_INT_ST_DONE_INT_ST_SHIFT)
27300565589SLin Jinhan /* ECC_ABN_ST */
27400565589SLin Jinhan #define RKCE_ECC_ABN_ST_OFFSET                     (0x3FCU)
27500565589SLin Jinhan #define RKCE_ECC_ABN_ST                            (0x0U)
27600565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_POINT_OUT_SHIFT        (0U)
27700565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_POINT_OUT_MASK         (0x1U << RKCE_ECC_ABN_ST_BAD_POINT_OUT_SHIFT)
27800565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_T_OUT_SHIFT            (1U)
27900565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_T_OUT_MASK             (0x1U << RKCE_ECC_ABN_ST_BAD_T_OUT_SHIFT)
28000565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_S_OUT_SHIFT            (2U)
28100565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_S_OUT_MASK             (0x1U << RKCE_ECC_ABN_ST_BAD_S_OUT_SHIFT)
28200565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_OUT_SHIFT            (3U)
28300565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_OUT_MASK             (0x1U << RKCE_ECC_ABN_ST_BAD_R_OUT_SHIFT)
28400565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_K_MID_SHIFT          (4U)
28500565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_K_MID_MASK           (0x1U << RKCE_ECC_ABN_ST_BAD_R_K_MID_SHIFT)
28600565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_S_IN_SHIFT             (5U)
28700565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_S_IN_MASK              (0x1U << RKCE_ECC_ABN_ST_BAD_S_IN_SHIFT)
28800565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_IN_SHIFT             (6U)
28900565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_R_IN_MASK              (0x1U << RKCE_ECC_ABN_ST_BAD_R_IN_SHIFT)
29000565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_K_IN_SHIFT             (7U)
29100565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_K_IN_MASK              (0x1U << RKCE_ECC_ABN_ST_BAD_K_IN_SHIFT)
29200565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_INV_OT_SHIFT           (8U)
29300565589SLin Jinhan #define RKCE_ECC_ABN_ST_BAD_INV_OT_MASK            (0x1U << RKCE_ECC_ABN_ST_BAD_INV_OT_SHIFT)
29400565589SLin Jinhan /* ECC_CURVE_WIDE */
29500565589SLin Jinhan #define RKCE_ECC_CURVE_WIDE_OFFSET                 (0x400U)
29600565589SLin Jinhan #define RKCE_ECC_CURVE_WIDE_CURVE_WIDE_SHIFT       (0U)
29700565589SLin Jinhan #define RKCE_ECC_CURVE_WIDE_CURVE_WIDE_MASK        (0x3FFU << RKCE_ECC_CURVE_WIDE_CURVE_WIDE_SHIFT)
29800565589SLin Jinhan /* ECC_MAX_CURVE_WIDE */
29900565589SLin Jinhan #define RKCE_ECC_MAX_CURVE_WIDE_OFFSET             (0x404U)
30000565589SLin Jinhan #define RKCE_ECC_MAX_CURVE_WIDE                    (0x100U)
30100565589SLin Jinhan /* ECC_DATA_ENDIAN */
30200565589SLin Jinhan #define RKCE_ECC_DATA_ENDIAN_OFFSET                (0x408U)
30300565589SLin Jinhan /* PKA_RAM_CTL */
30400565589SLin Jinhan #define RKCE_PKA_RAM_CTL_OFFSET                    (0x480U)
30500565589SLin Jinhan #define RKCE_PKA_RAM_CTL_PKA_RDY                   BIT(0)
30600565589SLin Jinhan #define RKCE_PKA_RAM_CTL_RAM_PKA_RDY_SHIFT         (0U)
30700565589SLin Jinhan #define RKCE_PKA_RAM_CTL_RAM_PKA_RDY_MASK          (0x3U << RKCE_PKA_RAM_CTL_RAM_PKA_RDY_SHIFT)
30800565589SLin Jinhan /* PKA_RAM_ST */
30900565589SLin Jinhan #define RKCE_PKA_RAM_ST_OFFSET                     (0x484U)
31000565589SLin Jinhan #define RKCE_PKA_RAM_ST                            (0x1U)
31100565589SLin Jinhan #define RKCE_PKA_RAM_ST_CLK_RAM_RDY_SHIFT          (0U)
31200565589SLin Jinhan #define RKCE_PKA_RAM_ST_CLK_RAM_RDY_MASK           (0x1U << RKCE_PKA_RAM_ST_CLK_RAM_RDY_SHIFT)
31300565589SLin Jinhan /* AES_VER */
31400565589SLin Jinhan #define RKCE_AES_VER_OFFSET                        (0x680U)
31500565589SLin Jinhan #define RKCE_AES_VER_ECB_FLAG_SHIFT                (0U)
31600565589SLin Jinhan #define RKCE_AES_VER_ECB_FLAG_MASK                 (0x1U << RKCE_AES_VER_ECB_FLAG_SHIFT)
31700565589SLin Jinhan #define RKCE_AES_VER_CBC_FLAG_SHIFT                (1U)
31800565589SLin Jinhan #define RKCE_AES_VER_CBC_FLAG_MASK                 (0x1U << RKCE_AES_VER_CBC_FLAG_SHIFT)
31900565589SLin Jinhan #define RKCE_AES_VER_CTS_FLAG_SHIFT                (2U)
32000565589SLin Jinhan #define RKCE_AES_VER_CTS_FLAG_MASK                 (0x1U << RKCE_AES_VER_CTS_FLAG_SHIFT)
32100565589SLin Jinhan #define RKCE_AES_VER_CTR_FLAG_SHIFT                (3U)
32200565589SLin Jinhan #define RKCE_AES_VER_CTR_FLAG_MASK                 (0x1U << RKCE_AES_VER_CTR_FLAG_SHIFT)
32300565589SLin Jinhan #define RKCE_AES_VER_CFB_FLAG_SHIFT                (4U)
32400565589SLin Jinhan #define RKCE_AES_VER_CFB_FLAG_MASK                 (0x1U << RKCE_AES_VER_CFB_FLAG_SHIFT)
32500565589SLin Jinhan #define RKCE_AES_VER_OFB_FLAG_SHIFT                (5U)
32600565589SLin Jinhan #define RKCE_AES_VER_OFB_FLAG_MASK                 (0x1U << RKCE_AES_VER_OFB_FLAG_SHIFT)
32700565589SLin Jinhan #define RKCE_AES_VER_XTS_FLAG_SHIFT                (6U)
32800565589SLin Jinhan #define RKCE_AES_VER_XTS_FLAG_MASK                 (0x1U << RKCE_AES_VER_XTS_FLAG_SHIFT)
32900565589SLin Jinhan #define RKCE_AES_VER_CCM_FLAG_SHIFT                (7U)
33000565589SLin Jinhan #define RKCE_AES_VER_CCM_FLAG_MASK                 (0x1U << RKCE_AES_VER_CCM_FLAG_SHIFT)
33100565589SLin Jinhan #define RKCE_AES_VER_GCM_FLAG_SHIFT                (8U)
33200565589SLin Jinhan #define RKCE_AES_VER_GCM_FLAG_MASK                 (0x1U << RKCE_AES_VER_GCM_FLAG_SHIFT)
33300565589SLin Jinhan #define RKCE_AES_VER_CMAC_FLAG_SHIFT               (9U)
33400565589SLin Jinhan #define RKCE_AES_VER_CMAC_FLAG_MASK                (0x1U << RKCE_AES_VER_CMAC_FLAG_SHIFT)
33500565589SLin Jinhan #define RKCE_AES_VER_CBC_MAC_FLAG_SHIFT            (10U)
33600565589SLin Jinhan #define RKCE_AES_VER_CBC_MAC_FLAG_MASK             (0x1U << RKCE_AES_VER_CBC_MAC_FLAG_SHIFT)
33700565589SLin Jinhan #define RKCE_AES_VER_BYPASS_SHIFT                  (12U)
33800565589SLin Jinhan #define RKCE_AES_VER_BYPASS_MASK                   (0x1U << RKCE_AES_VER_BYPASS_SHIFT)
33900565589SLin Jinhan #define RKCE_AES_VER_AES128_FLAG_SHIFT             (16U)
34000565589SLin Jinhan #define RKCE_AES_VER_AES128_FLAG_MASK              (0x1U << RKCE_AES_VER_AES128_FLAG_SHIFT)
34100565589SLin Jinhan #define RKCE_AES_VER_AES192_FLAG_SHIFT             (17U)
34200565589SLin Jinhan #define RKCE_AES_VER_AES192_FLAG_MASK              (0x1U << RKCE_AES_VER_AES192_FLAG_SHIFT)
34300565589SLin Jinhan #define RKCE_AES_VER_AES256_FLAG_SHIFT             (18U)
34400565589SLin Jinhan #define RKCE_AES_VER_AES256_FLAG_MASK              (0x1U << RKCE_AES_VER_AES256_FLAG_SHIFT)
34500565589SLin Jinhan #define RKCE_AES_VER_LOCKSTEP_FLAG_SHIFT           (20U)
34600565589SLin Jinhan #define RKCE_AES_VER_LOCKSTEP_FLAG_MASK            (0x1U << RKCE_AES_VER_LOCKSTEP_FLAG_SHIFT)
34700565589SLin Jinhan #define RKCE_AES_VER_SECURE_FLAG_SHIFT             (21U)
34800565589SLin Jinhan #define RKCE_AES_VER_SECURE_FLAG_MASK              (0x1U << RKCE_AES_VER_SECURE_FLAG_SHIFT)
34900565589SLin Jinhan /* DES_VER */
35000565589SLin Jinhan #define RKCE_DES_VER_OFFSET                        (0x684U)
35100565589SLin Jinhan #define RKCE_DES_VER_ECB_FLAG_SHIFT                (0U)
35200565589SLin Jinhan #define RKCE_DES_VER_ECB_FLAG_MASK                 (0x1U << RKCE_DES_VER_ECB_FLAG_SHIFT)
35300565589SLin Jinhan #define RKCE_DES_VER_CBC_FLAG_SHIFT                (1U)
35400565589SLin Jinhan #define RKCE_DES_VER_CBC_FLAG_MASK                 (0x1U << RKCE_DES_VER_CBC_FLAG_SHIFT)
35500565589SLin Jinhan #define RKCE_DES_VER_CFB_FLAG_SHIFT                (4U)
35600565589SLin Jinhan #define RKCE_DES_VER_CFB_FLAG_MASK                 (0x1U << RKCE_DES_VER_CFB_FLAG_SHIFT)
35700565589SLin Jinhan #define RKCE_DES_VER_OFB_FLAG_SHIFT                (5U)
35800565589SLin Jinhan #define RKCE_DES_VER_OFB_FLAG_MASK                 (0x1U << RKCE_DES_VER_OFB_FLAG_SHIFT)
35900565589SLin Jinhan #define RKCE_DES_VER_TDES_FLAG_SHIFT               (16U)
36000565589SLin Jinhan #define RKCE_DES_VER_TDES_FLAG_MASK                (0x1U << RKCE_DES_VER_TDES_FLAG_SHIFT)
36100565589SLin Jinhan #define RKCE_DES_VER_EEE_FLAG_SHIFT                (17U)
36200565589SLin Jinhan #define RKCE_DES_VER_EEE_FLAG_MASK                 (0x1U << RKCE_DES_VER_EEE_FLAG_SHIFT)
36300565589SLin Jinhan #define RKCE_DES_VER_EDE_FLAG_SHIFT                (18U)
36400565589SLin Jinhan #define RKCE_DES_VER_EDE_FLAG_MASK                 (0x1U << RKCE_DES_VER_EDE_FLAG_SHIFT)
36500565589SLin Jinhan #define RKCE_DES_VER_LOCKSTEP_FLAG_SHIFT           (20U)
36600565589SLin Jinhan #define RKCE_DES_VER_LOCKSTEP_FLAG_MASK            (0x1U << RKCE_DES_VER_LOCKSTEP_FLAG_SHIFT)
36700565589SLin Jinhan #define RKCE_DES_VER_SECURE_FLAG_SHIFT             (21U)
36800565589SLin Jinhan #define RKCE_DES_VER_SECURE_FLAG_MASK              (0x1U << RKCE_DES_VER_SECURE_FLAG_SHIFT)
36900565589SLin Jinhan /* SM4_VER */
37000565589SLin Jinhan #define RKCE_SM4_VER_OFFSET                        (0x688U)
37100565589SLin Jinhan #define RKCE_SM4_VER_ECB_FLAG_SHIFT                (0U)
37200565589SLin Jinhan #define RKCE_SM4_VER_ECB_FLAG_MASK                 (0x1U << RKCE_SM4_VER_ECB_FLAG_SHIFT)
37300565589SLin Jinhan #define RKCE_SM4_VER_CBC_FLAG_SHIFT                (1U)
37400565589SLin Jinhan #define RKCE_SM4_VER_CBC_FLAG_MASK                 (0x1U << RKCE_SM4_VER_CBC_FLAG_SHIFT)
37500565589SLin Jinhan #define RKCE_SM4_VER_CTS_FLAG_SHIFT                (2U)
37600565589SLin Jinhan #define RKCE_SM4_VER_CTS_FLAG_MASK                 (0x1U << RKCE_SM4_VER_CTS_FLAG_SHIFT)
37700565589SLin Jinhan #define RKCE_SM4_VER_CTR_FLAG_SHIFT                (3U)
37800565589SLin Jinhan #define RKCE_SM4_VER_CTR_FLAG_MASK                 (0x1U << RKCE_SM4_VER_CTR_FLAG_SHIFT)
37900565589SLin Jinhan #define RKCE_SM4_VER_CFB_FLAG_SHIFT                (4U)
38000565589SLin Jinhan #define RKCE_SM4_VER_CFB_FLAG_MASK                 (0x1U << RKCE_SM4_VER_CFB_FLAG_SHIFT)
38100565589SLin Jinhan #define RKCE_SM4_VER_OFB_FLAG_SHIFT                (5U)
38200565589SLin Jinhan #define RKCE_SM4_VER_OFB_FLAG_MASK                 (0x1U << RKCE_SM4_VER_OFB_FLAG_SHIFT)
38300565589SLin Jinhan #define RKCE_SM4_VER_XTS_FLAG_SHIFT                (6U)
38400565589SLin Jinhan #define RKCE_SM4_VER_XTS_FLAG_MASK                 (0x1U << RKCE_SM4_VER_XTS_FLAG_SHIFT)
38500565589SLin Jinhan #define RKCE_SM4_VER_CCM_FLAG_SHIFT                (7U)
38600565589SLin Jinhan #define RKCE_SM4_VER_CCM_FLAG_MASK                 (0x1U << RKCE_SM4_VER_CCM_FLAG_SHIFT)
38700565589SLin Jinhan #define RKCE_SM4_VER_GCM_FLAG_SHIFT                (8U)
38800565589SLin Jinhan #define RKCE_SM4_VER_GCM_FLAG_MASK                 (0x1U << RKCE_SM4_VER_GCM_FLAG_SHIFT)
38900565589SLin Jinhan #define RKCE_SM4_VER_CMAC_FLAG_SHIFT               (9U)
39000565589SLin Jinhan #define RKCE_SM4_VER_CMAC_FLAG_MASK                (0x1U << RKCE_SM4_VER_CMAC_FLAG_SHIFT)
39100565589SLin Jinhan #define RKCE_SM4_VER_CBC_MAC_FLAG_SHIFT            (10U)
39200565589SLin Jinhan #define RKCE_SM4_VER_CBC_MAC_FLAG_MASK             (0x1U << RKCE_SM4_VER_CBC_MAC_FLAG_SHIFT)
39300565589SLin Jinhan #define RKCE_SM4_VER_LOCKSTEP_FLAG_SHIFT           (20U)
39400565589SLin Jinhan #define RKCE_SM4_VER_LOCKSTEP_FLAG_MASK            (0x1U << RKCE_SM4_VER_LOCKSTEP_FLAG_SHIFT)
39500565589SLin Jinhan #define RKCE_SM4_VER_SECURE_FLAG_SHIFT             (21U)
39600565589SLin Jinhan #define RKCE_SM4_VER_SECURE_FLAG_MASK              (0x1U << RKCE_SM4_VER_SECURE_FLAG_SHIFT)
39700565589SLin Jinhan /* HASH_VER */
39800565589SLin Jinhan #define RKCE_HASH_VER_OFFSET                       (0x68CU)
39900565589SLin Jinhan #define RKCE_HASH_VER_SHA1_FLAG_SHIFT              (0U)
40000565589SLin Jinhan #define RKCE_HASH_VER_SHA1_FLAG_MASK               (0x1U << RKCE_HASH_VER_SHA1_FLAG_SHIFT)
40100565589SLin Jinhan #define RKCE_HASH_VER_SHA224_FLAG_SHIFT            (1U)
40200565589SLin Jinhan #define RKCE_HASH_VER_SHA224_FLAG_MASK             (0x1U << RKCE_HASH_VER_SHA224_FLAG_SHIFT)
40300565589SLin Jinhan #define RKCE_HASH_VER_SHA256_FLAG_SHIFT            (2U)
40400565589SLin Jinhan #define RKCE_HASH_VER_SHA256_FLAG_MASK             (0x1U << RKCE_HASH_VER_SHA256_FLAG_SHIFT)
40500565589SLin Jinhan #define RKCE_HASH_VER_SHA384_FLAG_SHIFT            (3U)
40600565589SLin Jinhan #define RKCE_HASH_VER_SHA384_FLAG_MASK             (0x1U << RKCE_HASH_VER_SHA384_FLAG_SHIFT)
40700565589SLin Jinhan #define RKCE_HASH_VER_SHA512_FLAG_SHIFT            (4U)
40800565589SLin Jinhan #define RKCE_HASH_VER_SHA512_FLAG_MASK             (0x1U << RKCE_HASH_VER_SHA512_FLAG_SHIFT)
40900565589SLin Jinhan #define RKCE_HASH_VER_SHA512_224_FLAG_SHIFT        (5U)
41000565589SLin Jinhan #define RKCE_HASH_VER_SHA512_224_FLAG_MASK         (0x1U << RKCE_HASH_VER_SHA512_224_FLAG_SHIFT)
41100565589SLin Jinhan #define RKCE_HASH_VER_SHA512_256_FLAG_SHIFT        (6U)
41200565589SLin Jinhan #define RKCE_HASH_VER_SHA512_256_FLAG_MASK         (0x1U << RKCE_HASH_VER_SHA512_256_FLAG_SHIFT)
41300565589SLin Jinhan #define RKCE_HASH_VER_MD5_FLAG_SHIFT               (7U)
41400565589SLin Jinhan #define RKCE_HASH_VER_MD5_FLAG_MASK                (0x1U << RKCE_HASH_VER_MD5_FLAG_SHIFT)
41500565589SLin Jinhan #define RKCE_HASH_VER_SM3_FLAG_SHIFT               (8U)
41600565589SLin Jinhan #define RKCE_HASH_VER_SM3_FLAG_MASK                (0x1U << RKCE_HASH_VER_SM3_FLAG_SHIFT)
41700565589SLin Jinhan #define RKCE_HASH_VER_LOCKSTEP_FLAG_SHIFT          (20U)
41800565589SLin Jinhan #define RKCE_HASH_VER_LOCKSTEP_FLAG_MASK           (0x1U << RKCE_HASH_VER_LOCKSTEP_FLAG_SHIFT)
41900565589SLin Jinhan /* HMAC_VER */
42000565589SLin Jinhan #define RKCE_HMAC_VER_OFFSET                       (0x690U)
42100565589SLin Jinhan #define RKCE_HMAC_VER_SHA1_FLAG_SHIFT              (0U)
42200565589SLin Jinhan #define RKCE_HMAC_VER_SHA1_FLAG_MASK               (0x1U << RKCE_HMAC_VER_SHA1_FLAG_SHIFT)
42300565589SLin Jinhan #define RKCE_HMAC_VER_SHA256_FLAG_SHIFT            (1U)
42400565589SLin Jinhan #define RKCE_HMAC_VER_SHA256_FLAG_MASK             (0x1U << RKCE_HMAC_VER_SHA256_FLAG_SHIFT)
42500565589SLin Jinhan #define RKCE_HMAC_VER_SHA512_FLAG_SHIFT            (2U)
42600565589SLin Jinhan #define RKCE_HMAC_VER_SHA512_FLAG_MASK             (0x1U << RKCE_HMAC_VER_SHA512_FLAG_SHIFT)
42700565589SLin Jinhan #define RKCE_HMAC_VER_MD5_FLAG_SHIFT               (3U)
42800565589SLin Jinhan #define RKCE_HMAC_VER_MD5_FLAG_MASK                (0x1U << RKCE_HMAC_VER_MD5_FLAG_SHIFT)
42900565589SLin Jinhan #define RKCE_HMAC_VER_SM3_FLAG_SHIFT               (4U)
43000565589SLin Jinhan #define RKCE_HMAC_VER_SM3_FLAG_MASK                (0x1U << RKCE_HMAC_VER_SM3_FLAG_SHIFT)
43100565589SLin Jinhan #define RKCE_HMAC_VER_LOCKSTEP_FLAG_SHIFT          (20U)
43200565589SLin Jinhan #define RKCE_HMAC_VER_LOCKSTEP_FLAG_MASK           (0x1U << RKCE_HMAC_VER_LOCKSTEP_FLAG_SHIFT)
43300565589SLin Jinhan /* PKA_VER */
43400565589SLin Jinhan #define RKCE_PKA_VER_OFFSET                        (0x698U)
43500565589SLin Jinhan /* EXTRA_FEATURE */
43600565589SLin Jinhan #define RKCE_EXTRA_FEATURE_OFFSET                  (0x69CU)
43700565589SLin Jinhan #define RKCE_EXTRA_FEATURE_AXI_EXPAND_BIT_SHIFT    (0U)
43800565589SLin Jinhan #define RKCE_EXTRA_FEATURE_AXI_EXPAND_BIT_MASK     (0xFU << RKCE_EXTRA_FEATURE_AXI_EXPAND_BIT_SHIFT)
43900565589SLin Jinhan /* CE_VER */
44000565589SLin Jinhan #define RKCE_CE_VER_OFFSET                         (0x6F0U)
44100565589SLin Jinhan /* PKA_MEM_MAP0 */
44200565589SLin Jinhan #define RKCE_PKA_MEM_MAP0_OFFSET                   (0x800U)
44300565589SLin Jinhan #define RKCE_MAP_REG_NUM                           (32)
44400565589SLin Jinhan /* PKA_OPCODE */
44500565589SLin Jinhan #define RKCE_PKA_OPCODE_OFFSET                     (0x880U)
44600565589SLin Jinhan #define RKCE_PKA_OPCODE_TAG_SHIFT                  (0U)
44700565589SLin Jinhan #define RKCE_PKA_OPCODE_TAG_MASK                   (0x3FU << RKCE_PKA_OPCODE_TAG_SHIFT)
44800565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_R_SHIFT                (6U)
44900565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_R_MASK                 (0x3FU << RKCE_PKA_OPCODE_REG_R_SHIFT)
45000565589SLin Jinhan #define RKCE_PKA_OPCODE_R_DIS_SHIFT                (11U)
45100565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_B_SHIFT                (12U)
45200565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_B_MASK                 (0x3FU << RKCE_PKA_OPCODE_REG_B_SHIFT)
45300565589SLin Jinhan #define RKCE_PKA_OPCODE_B_IMMED_SHIFT              (17U)
45400565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_A_SHIFT                (18U)
45500565589SLin Jinhan #define RKCE_PKA_OPCODE_REG_A_MASK                 (0x3FU << RKCE_PKA_OPCODE_REG_A_SHIFT)
45600565589SLin Jinhan #define RKCE_PKA_OPCODE_A_IMMED_SHIFT	           (23U)
45700565589SLin Jinhan #define RKCE_PKA_OPCODE_LEN_SHIFT                  (24U)
45800565589SLin Jinhan #define RKCE_PKA_OPCODE_LEN_MASK                   (0x7U << RKCE_PKA_OPCODE_LEN_SHIFT)
45900565589SLin Jinhan #define RKCE_PKA_OPCODE_OPCODE_SHIFT               (27U)
46000565589SLin Jinhan #define RKCE_PKA_OPCODE_OPCODE_MASK                (0x1FU << RKCE_PKA_OPCODE_OPCODE_SHIFT)
46100565589SLin Jinhan /* N_NP_T0_T1_ADDR */
46200565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_OFFSET                (0x884U)
46300565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_N_SHIFT           (0U)
46400565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_N_MASK            (0x1FU << RKCE_N_NP_T0_T1_ADDR_REG_N_SHIFT)
46500565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_NP_SHIFT          (5U)
46600565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_NP_MASK           (0x1FU << RKCE_N_NP_T0_T1_ADDR_REG_NP_SHIFT)
46700565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_T0_SHIFT          (10U)
46800565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_T0_MASK           (0x1FU << RKCE_N_NP_T0_T1_ADDR_REG_T0_SHIFT)
46900565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_T1_SHIFT          (15U)
47000565589SLin Jinhan #define RKCE_N_NP_T0_T1_ADDR_REG_T1_MASK           (0x1FU << RKCE_N_NP_T0_T1_ADDR_REG_T1_SHIFT)
47100565589SLin Jinhan /* PKA_STATUS */
47200565589SLin Jinhan #define RKCE_PKA_STATUS_OFFSET                     (0x888U)
47300565589SLin Jinhan #define RKCE_PKA_STATUS                            (0x1U)
47400565589SLin Jinhan #define RKCE_PKA_STATUS_PIPE_IS_BUSY_SHIFT         (0U)
47500565589SLin Jinhan #define RKCE_PKA_STATUS_PIPE_IS_BUSY_MASK          (0x1U << RKCE_PKA_STATUS_PIPE_IS_BUSY_SHIFT)
47600565589SLin Jinhan #define RKCE_PKA_STATUS_PKA_BUSY_SHIFT             (1U)
47700565589SLin Jinhan #define RKCE_PKA_STATUS_PKA_BUSY_MASK              (0x1U << RKCE_PKA_STATUS_PKA_BUSY_SHIFT)
47800565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_OUT_ZERO_SHIFT         (2U)
47900565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_OUT_ZERO_MASK          (0x1U << RKCE_PKA_STATUS_ALU_OUT_ZERO_SHIFT)
48000565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_MOD_OVFLW_SHIFT        (3U)
48100565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_MOD_OVFLW_MASK         (0x1U << RKCE_PKA_STATUS_ALU_MOD_OVFLW_SHIFT)
48200565589SLin Jinhan #define RKCE_PKA_STATUS_DIV_BY_ZERO_SHIFT          (4U)
48300565589SLin Jinhan #define RKCE_PKA_STATUS_DIV_BY_ZERO_MASK           (0x1U << RKCE_PKA_STATUS_DIV_BY_ZERO_SHIFT)
48400565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_CARRY_SHIFT            (5U)
48500565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_CARRY_MASK             (0x1U << RKCE_PKA_STATUS_ALU_CARRY_SHIFT)
48600565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_SIGN_OUT_SHIFT         (6U)
48700565589SLin Jinhan #define RKCE_PKA_STATUS_ALU_SIGN_OUT_MASK          (0x1U << RKCE_PKA_STATUS_ALU_SIGN_OUT_SHIFT)
48800565589SLin Jinhan #define RKCE_PKA_STATUS_MODINV_OF_ZERO_SHIFT       (7U)
48900565589SLin Jinhan #define RKCE_PKA_STATUS_MODINV_OF_ZERO_MASK        (0x1U << RKCE_PKA_STATUS_MODINV_OF_ZERO_SHIFT)
49000565589SLin Jinhan #define RKCE_PKA_STATUS_PKA_CPU_BUSY_SHIFT         (8U)
49100565589SLin Jinhan #define RKCE_PKA_STATUS_PKA_CPU_BUSY_MASK          (0x1U << RKCE_PKA_STATUS_PKA_CPU_BUSY_SHIFT)
49200565589SLin Jinhan #define RKCE_PKA_STATUS_OPCODE_SHIFT               (9U)
49300565589SLin Jinhan #define RKCE_PKA_STATUS_OPCODE_MASK                (0x1FU << RKCE_PKA_STATUS_OPCODE_SHIFT)
49400565589SLin Jinhan #define RKCE_PKA_STATUS_TAG_SHIFT                  (14U)
49500565589SLin Jinhan #define RKCE_PKA_STATUS_TAG_MASK                   (0x3FU << RKCE_PKA_STATUS_TAG_SHIFT)
49600565589SLin Jinhan /* PKA_L0 */
49700565589SLin Jinhan #define RKCE_PKA_L0_OFFSET                         (0x890U)
49800565589SLin Jinhan #define RKCE_LEN_REG_NUM                           (8)
49900565589SLin Jinhan /* PKA_PIPE_RDY */
50000565589SLin Jinhan #define RKCE_PKA_PIPE_RDY_OFFSET                   (0x8B0U)
50100565589SLin Jinhan #define RKCE_PKA_PIPE_RDY                          (0x1U)
50200565589SLin Jinhan #define RKCE_PKA_PIPE_RDY_PKA_PIPE_RDY_SHIFT       (0U)
50300565589SLin Jinhan #define RKCE_PKA_PIPE_RDY_PKA_PIPE_RDY_MASK        (0x1U << RKCE_PKA_PIPE_RDY_PKA_PIPE_RDY_SHIFT)
50400565589SLin Jinhan /* PKA_DONE */
50500565589SLin Jinhan #define RKCE_PKA_DONE_OFFSET                       (0x8B4U)
50600565589SLin Jinhan #define RKCE_PKA_DONE                              (0x1U)
50700565589SLin Jinhan #define RKCE_PKA_DONE_PKA_DONE_SHIFT               (0U)
50800565589SLin Jinhan #define RKCE_PKA_DONE_PKA_DONE_MASK                (0x1U << RKCE_PKA_DONE_PKA_DONE_SHIFT)
50900565589SLin Jinhan /* PKA_INT_ENA */
51000565589SLin Jinhan #define RKCE_PKA_INT_ENA_OFFSET                    (0x8D4U)
51100565589SLin Jinhan #define RKCE_PKA_INT_ENA_PKA_INT_ENA_SHIFT         (0U)
51200565589SLin Jinhan #define RKCE_PKA_INT_ENA_PKA_INT_ENA_MASK          (0x1U << RKCE_PKA_INT_ENA_PKA_INT_ENA_SHIFT)
51300565589SLin Jinhan /* PKA_INT_ST */
51400565589SLin Jinhan #define RKCE_PKA_INT_ST_OFFSET                     (0x8D8U)
51500565589SLin Jinhan #define RKCE_PKA_INT_ST_PKA_INT_ST_SHIFT           (0U)
51600565589SLin Jinhan #define RKCE_PKA_INT_ST_PKA_INT_ST_MASK            (0x1U << RKCE_PKA_INT_ST_PKA_INT_ST_SHIFT)
51700565589SLin Jinhan /* TD0_TD1_TX_ADDR */
51800565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_OFFSET                (0x8DCU)
51900565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TD0_SHIFT         (0U)
52000565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TD0_MASK          (0x1FU << RKCE_TD0_TD1_TX_ADDR_REG_TD0_SHIFT)
52100565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TD1_SHIFT         (5U)
52200565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TD1_MASK          (0x1FU << RKCE_TD0_TD1_TX_ADDR_REG_TD1_SHIFT)
52300565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TX_SHIFT          (10U)
52400565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_REG_TX_MASK           (0x1FU << RKCE_TD0_TD1_TX_ADDR_REG_TX_SHIFT)
52500565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_PKA_ASCA_EN_SHIFT     (31U)
52600565589SLin Jinhan #define RKCE_TD0_TD1_TX_ADDR_PKA_ASCA_EN_MASK      (0x1U << RKCE_TD0_TD1_TX_ADDR_PKA_ASCA_EN_SHIFT)
52700565589SLin Jinhan /* SRAM_ADDR */
52800565589SLin Jinhan #define RKCE_SRAM_ADDR_OFFSET                      (0x1000U)
52900565589SLin Jinhan #define RKCE_SRAM_ADDR_SRAM_ADDR_SHIFT             (0U)
53000565589SLin Jinhan #define RKCE_SRAM_ADDR_SRAM_ADDR_MASK              (0xFFFFFFFFU << RKCE_SRAM_ADDR_SRAM_ADDR_SHIFT)
53100565589SLin Jinhan 
53200565589SLin Jinhan #define	RKCE_SRAM_SIZE                             (0x1000U)
53300565589SLin Jinhan 
53400565589SLin Jinhan #endif /* __RKCE_REG_H */
535