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