1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun /* Copyright (c) 2018 Rockchip Electronics Co. Ltd. */ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifndef __RK_CRYPTO_V2_REG_H__ 6*4882a593Smuzhiyun #define __RK_CRYPTO_V2_REG_H__ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define _SBF(s, v) ((v) << (s)) 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define CRYPTO_WRITE_MASK_SHIFT (16) 11*4882a593Smuzhiyun #define CRYPTO_WRITE_MASK_ALL ((0xffffu << CRYPTO_WRITE_MASK_SHIFT)) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define WRITE_MASK (16) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun /* Crypto control registers*/ 16*4882a593Smuzhiyun #define CRYPTO_CLK_CTL 0x0000 17*4882a593Smuzhiyun #define CRYPTO_AUTO_CLKGATE_EN BIT(0) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define CRYPTO_RST_CTL 0x0004 20*4882a593Smuzhiyun #define CRYPTO_SW_PKA_RESET BIT(2) 21*4882a593Smuzhiyun #define CRYPTO_SW_RNG_RESET BIT(1) 22*4882a593Smuzhiyun #define CRYPTO_SW_CC_RESET BIT(0) 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* Crypto DMA control registers*/ 25*4882a593Smuzhiyun #define CRYPTO_DMA_INT_EN 0x0008 26*4882a593Smuzhiyun #define CRYPTO_ZERO_ERR_INT_EN BIT(6) 27*4882a593Smuzhiyun #define CRYPTO_LIST_ERR_INT_EN BIT(5) 28*4882a593Smuzhiyun #define CRYPTO_SRC_ERR_INT_EN BIT(4) 29*4882a593Smuzhiyun #define CRYPTO_DST_ERR_INT_EN BIT(3) 30*4882a593Smuzhiyun #define CRYPTO_SRC_ITEM_INT_EN BIT(2) 31*4882a593Smuzhiyun #define CRYPTO_DST_ITEM_DONE_INT_EN BIT(1) 32*4882a593Smuzhiyun #define CRYPTO_LIST_DONE_INT_EN BIT(0) 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #define CRYPTO_DMA_INT_ST 0x000C 35*4882a593Smuzhiyun #define CRYPTO_LOCKSTEP_INT_ST BIT(7) 36*4882a593Smuzhiyun #define CRYPTO_ZERO_LEN_INT_ST BIT(6) 37*4882a593Smuzhiyun #define CRYPTO_LIST_ERR_INT_ST BIT(5) 38*4882a593Smuzhiyun #define CRYPTO_SRC_ERR_INT_ST BIT(4) 39*4882a593Smuzhiyun #define CRYPTO_DST_ERR_INT_ST BIT(3) 40*4882a593Smuzhiyun #define CRYPTO_SRC_ITEM_DONE_INT_ST BIT(2) 41*4882a593Smuzhiyun #define CRYPTO_DST_ITEM_DONE_INT_ST BIT(1) 42*4882a593Smuzhiyun #define CRYPTO_LIST_DONE_INT_ST BIT(0) 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #define CRYPTO_LOCKSTEP_MASK (~((u32)CRYPTO_LOCKSTEP_INT_ST)) 45*4882a593Smuzhiyun #define CRYPTO_DMA_CTL 0x0010 46*4882a593Smuzhiyun #define CRYPTO_DMA_RESTART BIT(1) 47*4882a593Smuzhiyun #define CRYPTO_DMA_START BIT(0) 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun /* DMA LIST Start Address Register */ 50*4882a593Smuzhiyun #define CRYPTO_DMA_LLI_ADDR 0x0014 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define CRYPTO_DMA_ST 0x0018 53*4882a593Smuzhiyun #define CRYPTO_DMA_BUSY BIT(0) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun #define CRYPTO_DMA_STATE 0x001C 56*4882a593Smuzhiyun #define CRYPTO_LLI_IDLE_STATE _SBF(4, 0x00) 57*4882a593Smuzhiyun #define CRYPTO_LLI_FETCH_STATE _SBF(4, 0x01) 58*4882a593Smuzhiyun #define CRYPTO_LLI_WORK_STATE _SBF(4, 0x02) 59*4882a593Smuzhiyun #define CRYPTO_SRC_IDLE_STATE _SBF(2, 0x00) 60*4882a593Smuzhiyun #define CRYPTO_SRC_LOAD_STATE _SBF(2, 0x01) 61*4882a593Smuzhiyun #define CRYPTO_SRC_WORK_STATE _SBF(2, 0x02) 62*4882a593Smuzhiyun #define CRYPTO_DST_IDLE_STATE _SBF(0, 0x00) 63*4882a593Smuzhiyun #define CRYPTO_DST_LOAD_STATE _SBF(0, 0x01) 64*4882a593Smuzhiyun #define CRYPTO_DST_WORK_STATE _SBF(0, 0x02) 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun /* DMA LLI Read Address Register */ 67*4882a593Smuzhiyun #define CRYPTO_DMA_LLI_RADDR 0x0020 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun /* DMA Source Data Read Address Register */ 70*4882a593Smuzhiyun #define CRYPTO_DMA_SRC_RADDR 0x0024 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun /* DMA Destination Data Read Address Register */ 73*4882a593Smuzhiyun #define CRYPTO_DMA_DST_RADDR 0x0028 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun #define CRYPTO_DMA_ITEM_ID 0x002C 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #define CRYPTO_FIFO_CTL 0x0040 78*4882a593Smuzhiyun #define CRYPTO_DOUT_BYTESWAP BIT(1) 79*4882a593Smuzhiyun #define CRYPTO_DOIN_BYTESWAP BIT(0) 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun /* Block Cipher Control Register */ 82*4882a593Smuzhiyun #define CRYPTO_BC_CTL 0x0044 83*4882a593Smuzhiyun #define CRYPTO_BC_AES _SBF(8, 0x00) 84*4882a593Smuzhiyun #define CRYPTO_BC_SM4 _SBF(8, 0x01) 85*4882a593Smuzhiyun #define CRYPTO_BC_DES _SBF(8, 0x02) 86*4882a593Smuzhiyun #define CRYPTO_BC_TDES _SBF(8, 0x03) 87*4882a593Smuzhiyun #define CRYPTO_BC_ECB _SBF(4, 0x00) 88*4882a593Smuzhiyun #define CRYPTO_BC_CBC _SBF(4, 0x01) 89*4882a593Smuzhiyun #define CRYPTO_BC_CTS _SBF(4, 0x02) 90*4882a593Smuzhiyun #define CRYPTO_BC_CTR _SBF(4, 0x03) 91*4882a593Smuzhiyun #define CRYPTO_BC_CFB _SBF(4, 0x04) 92*4882a593Smuzhiyun #define CRYPTO_BC_OFB _SBF(4, 0x05) 93*4882a593Smuzhiyun #define CRYPTO_BC_XTS _SBF(4, 0x06) 94*4882a593Smuzhiyun #define CRYPTO_BC_CCM _SBF(4, 0x07) 95*4882a593Smuzhiyun #define CRYPTO_BC_GCM _SBF(4, 0x08) 96*4882a593Smuzhiyun #define CRYPTO_BC_CMAC _SBF(4, 0x09) 97*4882a593Smuzhiyun #define CRYPTO_BC_CBC_MAC _SBF(4, 0x0A) 98*4882a593Smuzhiyun #define CRYPTO_BC_128_bit_key _SBF(2, 0x00) 99*4882a593Smuzhiyun #define CRYPTO_BC_192_bit_key _SBF(2, 0x01) 100*4882a593Smuzhiyun #define CRYPTO_BC_256_bit_key _SBF(2, 0x02) 101*4882a593Smuzhiyun #define CRYPTO_BC_DECRYPT BIT(1) 102*4882a593Smuzhiyun #define CRYPTO_BC_ENABLE BIT(0) 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun /* Hash Control Register */ 105*4882a593Smuzhiyun #define CRYPTO_HASH_CTL 0x0048 106*4882a593Smuzhiyun #define CRYPTO_SHA1 _SBF(4, 0x00) 107*4882a593Smuzhiyun #define CRYPTO_MD5 _SBF(4, 0x01) 108*4882a593Smuzhiyun #define CRYPTO_SHA256 _SBF(4, 0x02) 109*4882a593Smuzhiyun #define CRYPTO_SHA224 _SBF(4, 0x03) 110*4882a593Smuzhiyun #define CRYPTO_SM3 _SBF(4, 0x06) 111*4882a593Smuzhiyun #define CRYPTO_SHA512 _SBF(4, 0x08) 112*4882a593Smuzhiyun #define CRYPTO_SHA384 _SBF(4, 0x09) 113*4882a593Smuzhiyun #define CRYPTO_SHA512_224 _SBF(4, 0x0A) 114*4882a593Smuzhiyun #define CRYPTO_SHA512_256 _SBF(4, 0x0B) 115*4882a593Smuzhiyun #define CRYPTO_HMAC_ENABLE BIT(3) 116*4882a593Smuzhiyun #define CRYPTO_HW_PAD_ENABLE BIT(2) 117*4882a593Smuzhiyun #define CRYPTO_HASH_SRC_SEL BIT(1) 118*4882a593Smuzhiyun #define CRYPTO_HASH_ENABLE BIT(0) 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun /* Cipher Status Register */ 121*4882a593Smuzhiyun #define CRYPTO_CIPHER_ST 0x004C 122*4882a593Smuzhiyun #define CRYPTO_OTP_KEY_VALID BIT(2) 123*4882a593Smuzhiyun #define CRYPTO_HASH_BUSY BIT(1) 124*4882a593Smuzhiyun #define CRYPTO_BLOCK_CIPHER_BUSY BIT(0) 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun #define CRYPTO_CIPHER_STATE 0x0050 127*4882a593Smuzhiyun #define CRYPTO_HASH_IDLE_STATE _SBF(10, 0x01) 128*4882a593Smuzhiyun #define CRYPTO_HASH_IPAD_STATE _SBF(10, 0x02) 129*4882a593Smuzhiyun #define CRYPTO_HASH_TEXT_STATE _SBF(10, 0x04) 130*4882a593Smuzhiyun #define CRYPTO_HASH_OPAD_STATE _SBF(10, 0x08) 131*4882a593Smuzhiyun #define CRYPTO_HASH_OPAD_EXT_STATE _SBF(10, 0x10) 132*4882a593Smuzhiyun #define CRYPTO_GCM_IDLE_STATE _SBF(8, 0x00) 133*4882a593Smuzhiyun #define CRYPTO_GCM_PRE_STATE _SBF(8, 0x01) 134*4882a593Smuzhiyun #define CRYPTO_GCM_NA_STATE _SBF(8, 0x02) 135*4882a593Smuzhiyun #define CRYPTO_GCM_PC_STATE _SBF(8, 0x03) 136*4882a593Smuzhiyun #define CRYPTO_CCM_IDLE_STATE _SBF(6, 0x00) 137*4882a593Smuzhiyun #define CRYPTO_CCM_PRE_STATE _SBF(6, 0x01) 138*4882a593Smuzhiyun #define CRYPTO_CCM_NA_STATE _SBF(6, 0x02) 139*4882a593Smuzhiyun #define CRYPTO_CCM_PC_STATE _SBF(6, 0x03) 140*4882a593Smuzhiyun #define CRYPTO_PARALLEL_IDLE_STATE _SBF(4, 0x00) 141*4882a593Smuzhiyun #define CRYPTO_PARALLEL_PRE_STATE _SBF(4, 0x01) 142*4882a593Smuzhiyun #define CRYPTO_PARALLEL_BULK_STATE _SBF(4, 0x02) 143*4882a593Smuzhiyun #define CRYPTO_MAC_IDLE_STATE _SBF(2, 0x00) 144*4882a593Smuzhiyun #define CRYPTO_MAC_PRE_STATE _SBF(2, 0x01) 145*4882a593Smuzhiyun #define CRYPTO_MAC_BULK_STATE _SBF(2, 0x02) 146*4882a593Smuzhiyun #define CRYPTO_SERIAL_IDLE_STATE _SBF(0, 0x00) 147*4882a593Smuzhiyun #define CRYPTO_SERIAL_PRE_STATE _SBF(0, 0x01) 148*4882a593Smuzhiyun #define CRYPTO_SERIAL_BULK_STATE _SBF(0, 0x02) 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #define CRYPTO_CH0_IV_0 0x0100 151*4882a593Smuzhiyun #define CRYPTO_CH0_IV_1 0x0104 152*4882a593Smuzhiyun #define CRYPTO_CH0_IV_2 0x0108 153*4882a593Smuzhiyun #define CRYPTO_CH0_IV_3 0x010c 154*4882a593Smuzhiyun #define CRYPTO_CH1_IV_0 0x0110 155*4882a593Smuzhiyun #define CRYPTO_CH1_IV_1 0x0114 156*4882a593Smuzhiyun #define CRYPTO_CH1_IV_2 0x0118 157*4882a593Smuzhiyun #define CRYPTO_CH1_IV_3 0x011c 158*4882a593Smuzhiyun #define CRYPTO_CH2_IV_0 0x0120 159*4882a593Smuzhiyun #define CRYPTO_CH2_IV_1 0x0124 160*4882a593Smuzhiyun #define CRYPTO_CH2_IV_2 0x0128 161*4882a593Smuzhiyun #define CRYPTO_CH2_IV_3 0x012c 162*4882a593Smuzhiyun #define CRYPTO_CH3_IV_0 0x0130 163*4882a593Smuzhiyun #define CRYPTO_CH3_IV_1 0x0134 164*4882a593Smuzhiyun #define CRYPTO_CH3_IV_2 0x0138 165*4882a593Smuzhiyun #define CRYPTO_CH3_IV_3 0x013c 166*4882a593Smuzhiyun #define CRYPTO_CH4_IV_0 0x0140 167*4882a593Smuzhiyun #define CRYPTO_CH4_IV_1 0x0144 168*4882a593Smuzhiyun #define CRYPTO_CH4_IV_2 0x0148 169*4882a593Smuzhiyun #define CRYPTO_CH4_IV_3 0x014c 170*4882a593Smuzhiyun #define CRYPTO_CH5_IV_0 0x0150 171*4882a593Smuzhiyun #define CRYPTO_CH5_IV_1 0x0154 172*4882a593Smuzhiyun #define CRYPTO_CH5_IV_2 0x0158 173*4882a593Smuzhiyun #define CRYPTO_CH5_IV_3 0x015c 174*4882a593Smuzhiyun #define CRYPTO_CH6_IV_0 0x0160 175*4882a593Smuzhiyun #define CRYPTO_CH6_IV_1 0x0164 176*4882a593Smuzhiyun #define CRYPTO_CH6_IV_2 0x0168 177*4882a593Smuzhiyun #define CRYPTO_CH6_IV_3 0x016c 178*4882a593Smuzhiyun #define CRYPTO_CH7_IV_0 0x0170 179*4882a593Smuzhiyun #define CRYPTO_CH7_IV_1 0x0174 180*4882a593Smuzhiyun #define CRYPTO_CH7_IV_2 0x0178 181*4882a593Smuzhiyun #define CRYPTO_CH7_IV_3 0x017c 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun #define CRYPTO_CH0_KEY_0 0x0180 184*4882a593Smuzhiyun #define CRYPTO_CH0_KEY_1 0x0184 185*4882a593Smuzhiyun #define CRYPTO_CH0_KEY_2 0x0188 186*4882a593Smuzhiyun #define CRYPTO_CH0_KEY_3 0x018c 187*4882a593Smuzhiyun #define CRYPTO_CH1_KEY_0 0x0190 188*4882a593Smuzhiyun #define CRYPTO_CH1_KEY_1 0x0194 189*4882a593Smuzhiyun #define CRYPTO_CH1_KEY_2 0x0198 190*4882a593Smuzhiyun #define CRYPTO_CH1_KEY_3 0x019c 191*4882a593Smuzhiyun #define CRYPTO_CH2_KEY_0 0x01a0 192*4882a593Smuzhiyun #define CRYPTO_CH2_KEY_1 0x01a4 193*4882a593Smuzhiyun #define CRYPTO_CH2_KEY_2 0x01a8 194*4882a593Smuzhiyun #define CRYPTO_CH2_KEY_3 0x01ac 195*4882a593Smuzhiyun #define CRYPTO_CH3_KEY_0 0x01b0 196*4882a593Smuzhiyun #define CRYPTO_CH3_KEY_1 0x01b4 197*4882a593Smuzhiyun #define CRYPTO_CH3_KEY_2 0x01b8 198*4882a593Smuzhiyun #define CRYPTO_CH3_KEY_3 0x01bc 199*4882a593Smuzhiyun #define CRYPTO_CH4_KEY_0 0x01c0 200*4882a593Smuzhiyun #define CRYPTO_CH4_KEY_1 0x01c4 201*4882a593Smuzhiyun #define CRYPTO_CH4_KEY_2 0x01c8 202*4882a593Smuzhiyun #define CRYPTO_CH4_KEY_3 0x01cc 203*4882a593Smuzhiyun #define CRYPTO_CH5_KEY_0 0x01d0 204*4882a593Smuzhiyun #define CRYPTO_CH5_KEY_1 0x01d4 205*4882a593Smuzhiyun #define CRYPTO_CH5_KEY_2 0x01d8 206*4882a593Smuzhiyun #define CRYPTO_CH5_KEY_3 0x01dc 207*4882a593Smuzhiyun #define CRYPTO_CH6_KEY_0 0x01e0 208*4882a593Smuzhiyun #define CRYPTO_CH6_KEY_1 0x01e4 209*4882a593Smuzhiyun #define CRYPTO_CH6_KEY_2 0x01e8 210*4882a593Smuzhiyun #define CRYPTO_CH6_KEY_3 0x01ec 211*4882a593Smuzhiyun #define CRYPTO_CH7_KEY_0 0x01f0 212*4882a593Smuzhiyun #define CRYPTO_CH7_KEY_1 0x01f4 213*4882a593Smuzhiyun #define CRYPTO_CH7_KEY_2 0x01f8 214*4882a593Smuzhiyun #define CRYPTO_CH7_KEY_3 0x01fc 215*4882a593Smuzhiyun #define CRYPTO_KEY_CHANNEL_NUM 8 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun #define CRYPTO_CH0_PC_LEN_0 0x0280 218*4882a593Smuzhiyun #define CRYPTO_CH0_PC_LEN_1 0x0284 219*4882a593Smuzhiyun #define CRYPTO_CH1_PC_LEN_0 0x0288 220*4882a593Smuzhiyun #define CRYPTO_CH1_PC_LEN_1 0x028c 221*4882a593Smuzhiyun #define CRYPTO_CH2_PC_LEN_0 0x0290 222*4882a593Smuzhiyun #define CRYPTO_CH2_PC_LEN_1 0x0294 223*4882a593Smuzhiyun #define CRYPTO_CH3_PC_LEN_0 0x0298 224*4882a593Smuzhiyun #define CRYPTO_CH3_PC_LEN_1 0x029c 225*4882a593Smuzhiyun #define CRYPTO_CH4_PC_LEN_0 0x02a0 226*4882a593Smuzhiyun #define CRYPTO_CH4_PC_LEN_1 0x02a4 227*4882a593Smuzhiyun #define CRYPTO_CH5_PC_LEN_0 0x02a8 228*4882a593Smuzhiyun #define CRYPTO_CH5_PC_LEN_1 0x02ac 229*4882a593Smuzhiyun #define CRYPTO_CH6_PC_LEN_0 0x02b0 230*4882a593Smuzhiyun #define CRYPTO_CH6_PC_LEN_1 0x02b4 231*4882a593Smuzhiyun #define CRYPTO_CH7_PC_LEN_0 0x02b8 232*4882a593Smuzhiyun #define CRYPTO_CH7_PC_LEN_1 0x02bc 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun #define CRYPTO_CH0_AAD_LEN_0 0x02c0 235*4882a593Smuzhiyun #define CRYPTO_CH0_AAD_LEN_1 0x02c4 236*4882a593Smuzhiyun #define CRYPTO_CH1_AAD_LEN_0 0x02c8 237*4882a593Smuzhiyun #define CRYPTO_CH1_AAD_LEN_1 0x02cc 238*4882a593Smuzhiyun #define CRYPTO_CH2_AAD_LEN_0 0x02d0 239*4882a593Smuzhiyun #define CRYPTO_CH2_AAD_LEN_1 0x02d4 240*4882a593Smuzhiyun #define CRYPTO_CH3_AAD_LEN_0 0x02d8 241*4882a593Smuzhiyun #define CRYPTO_CH3_AAD_LEN_1 0x02dc 242*4882a593Smuzhiyun #define CRYPTO_CH4_AAD_LEN_0 0x02e0 243*4882a593Smuzhiyun #define CRYPTO_CH4_AAD_LEN_1 0x02e4 244*4882a593Smuzhiyun #define CRYPTO_CH5_AAD_LEN_0 0x02e8 245*4882a593Smuzhiyun #define CRYPTO_CH5_AAD_LEN_1 0x02ec 246*4882a593Smuzhiyun #define CRYPTO_CH6_AAD_LEN_0 0x02f0 247*4882a593Smuzhiyun #define CRYPTO_CH6_AAD_LEN_1 0x02f4 248*4882a593Smuzhiyun #define CRYPTO_CH7_AAD_LEN_0 0x02f8 249*4882a593Smuzhiyun #define CRYPTO_CH7_AAD_LEN_1 0x02fc 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun #define CRYPTO_CH0_IV_LEN_0 0x0300 252*4882a593Smuzhiyun #define CRYPTO_CH1_IV_LEN_0 0x0304 253*4882a593Smuzhiyun #define CRYPTO_CH2_IV_LEN_0 0x0308 254*4882a593Smuzhiyun #define CRYPTO_CH3_IV_LEN_0 0x030c 255*4882a593Smuzhiyun #define CRYPTO_CH4_IV_LEN_0 0x0310 256*4882a593Smuzhiyun #define CRYPTO_CH5_IV_LEN_0 0x0314 257*4882a593Smuzhiyun #define CRYPTO_CH6_IV_LEN_0 0x0318 258*4882a593Smuzhiyun #define CRYPTO_CH7_IV_LEN_0 0x031c 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun #define CRYPTO_CH0_TAG_0 0x0320 261*4882a593Smuzhiyun #define CRYPTO_CH0_TAG_1 0x0324 262*4882a593Smuzhiyun #define CRYPTO_CH0_TAG_2 0x0328 263*4882a593Smuzhiyun #define CRYPTO_CH0_TAG_3 0x032c 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_0 0x03a0 266*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_1 0x03a4 267*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_2 0x03a8 268*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_3 0x03ac 269*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_4 0x03b0 270*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_5 0x03b4 271*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_6 0x03b8 272*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_7 0x03bc 273*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_8 0x03c0 274*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_9 0x03c4 275*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_10 0x03c8 276*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_11 0x03cc 277*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_12 0x03d0 278*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_13 0x03d4 279*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_14 0x03d8 280*4882a593Smuzhiyun #define CRYPTO_HASH_DOUT_15 0x03dc 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun #define CRYPTO_TAG_VALID 0x03e0 283*4882a593Smuzhiyun #define CRYPTO_CH0_TAG_VALID BIT(0) 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun #define CRYPTO_HASH_VALID 0x03e4 286*4882a593Smuzhiyun #define CRYPTO_HASH_IS_VALID BIT(0) 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun #define LLI_DMA_CTRL_LAST BIT(0) 289*4882a593Smuzhiyun #define LLI_DMA_CTRL_PAUSE BIT(1) 290*4882a593Smuzhiyun #define LLI_DMA_CTRL_LIST_DONE BIT(8) 291*4882a593Smuzhiyun #define LLI_DMA_CTRL_DST_DONE BIT(9) 292*4882a593Smuzhiyun #define LLI_DMA_CTRL_SRC_DONE BIT(10) 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun #define LLI_USER_CIPHER_START BIT(0) 295*4882a593Smuzhiyun #define LLI_USER_STRING_START BIT(1) 296*4882a593Smuzhiyun #define LLI_USER_STRING_LAST BIT(2) 297*4882a593Smuzhiyun #define LLI_USER_STRING_AAD BIT(3) 298*4882a593Smuzhiyun #define LLI_USER_PRIVACY_KEY BIT(7) 299*4882a593Smuzhiyun #define LLI_USER_ROOT_KEY BIT(8) 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun #define CRYPTO_PKA_BASE_OFFSET 0x0480 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun #define CRYPTO_RAM_CTL (0x0480 - CRYPTO_PKA_BASE_OFFSET) 304*4882a593Smuzhiyun #define CRYPTO_RAM_PKA_RDY BIT(0) 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun #define CRYPTO_RAM_ST (0x0484 - CRYPTO_PKA_BASE_OFFSET) 307*4882a593Smuzhiyun #define CRYPTO_CLK_RAM_RDY BIT(0) 308*4882a593Smuzhiyun #define CRYPTO_CLK_RAM_RDY_MASK BIT(0) 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun #define CRYPTO_DEBUG_CTL (0x04a0 - CRYPTO_PKA_BASE_OFFSET) 311*4882a593Smuzhiyun #define CRYPTO_DEBUG_MODE BIT(0) 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun #define CRYPTO_DEBUG_ST (0x04a4 - CRYPTO_PKA_BASE_OFFSET) 314*4882a593Smuzhiyun #define CRYPTO_PKA_DEBUG_CLK_EN BIT(0) 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun #define CRYPTO_DEBUG_MONITOR (0x04a8 - CRYPTO_PKA_BASE_OFFSET) 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun /* MAP0 ~ MAP31 */ 319*4882a593Smuzhiyun #define CRYPTO_MEMORY_MAP0 (0x00800 - CRYPTO_PKA_BASE_OFFSET) 320*4882a593Smuzhiyun #define CRYPTO_MAP_REG_NUM 32 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun #define CRYPTO_OPCODE (0x00880 - CRYPTO_PKA_BASE_OFFSET) 323*4882a593Smuzhiyun #define CRYPTO_OPCODE_TAG_SHIFT 0 324*4882a593Smuzhiyun #define CRYPTO_OPCODE_R_SHIFT 6 325*4882a593Smuzhiyun #define CRYPTO_OPCODE_R_DIS_SHIFT 11 326*4882a593Smuzhiyun #define CRYPTO_OPCODE_B_SHIFT 12 327*4882a593Smuzhiyun #define CRYPTO_OPCODE_B_IMMED_SHIFT 17 328*4882a593Smuzhiyun #define CRYPTO_OPCODE_A_SHIFT 18 329*4882a593Smuzhiyun #define CRYPTO_OPCODE_A_IMMED_SHIFT 23 330*4882a593Smuzhiyun #define CRYPTO_OPCODE_LEN_SHIFT 24 331*4882a593Smuzhiyun #define CRYPTO_OPCODE_CODE_SHIFT 27 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun #define CRYPTO_N_NP_T0_T1_ADDR (0x00884 - CRYPTO_PKA_BASE_OFFSET) 334*4882a593Smuzhiyun #define CRYPTO_N_VIRTUAL_ADDR_SHIFT 0 335*4882a593Smuzhiyun #define CRYPTO_N_VIRTUAL_ADDR_MASK 0x0000001f 336*4882a593Smuzhiyun #define CRYPTO_NP_VIRTUAL_ADDR_SHIFT 5 337*4882a593Smuzhiyun #define CRYPTO_NP_VIRTUAL_ADDR_MASK 0x000003e0 338*4882a593Smuzhiyun #define CRYPTO_T0_VIRTUAL_ADDR_SHIFT 10 339*4882a593Smuzhiyun #define CRYPTO_T0_VIRTUAL_ADDR_MASK 0x00007c00 340*4882a593Smuzhiyun #define CRYPTO_T1_VIRTUAL_ADDR_SHIFT 15 341*4882a593Smuzhiyun #define CRYPTO_T1_VIRTUAL_ADDR_MASK 0x000f8000 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun #define CRYPTO_PKA_STATUS (0x00888 - CRYPTO_PKA_BASE_OFFSET) 344*4882a593Smuzhiyun #define CRYPTO_PKA_PIPE_IS_RDY BIT(0) 345*4882a593Smuzhiyun #define CRYPTO_PKA_BUSY BIT(1) 346*4882a593Smuzhiyun #define CRYPTO_PKA_ALU_OUT_ZERO BIT(2) 347*4882a593Smuzhiyun #define CRYPTO_PKA_ALU_MODOVRFLW BIT(3) 348*4882a593Smuzhiyun #define CRYPTO_PKA_DIV_BY_ZERO BIT(4) 349*4882a593Smuzhiyun #define CRYPTO_PKA_ALU_CARRY BIT(5) 350*4882a593Smuzhiyun #define CRYPTO_PKA_ALU_SIGN_OUT BIT(6) 351*4882a593Smuzhiyun #define CRYPTO_PKA_MODINV_OF_ZERO BIT(7) 352*4882a593Smuzhiyun #define CRYPTO_PKA_CPU_BUSY BIT(8) 353*4882a593Smuzhiyun #define CRYPTO_PKA_OPCODE_STATUS_SHIFT 9 354*4882a593Smuzhiyun #define CRYPTO_PKA_OPCODE_STATUS_MASK 0x00003e00 355*4882a593Smuzhiyun #define CRYPTO_PKA_TAG_STATUS_SHIFT 14 356*4882a593Smuzhiyun #define CRYPTO_PKA_TAG_STATUS_MASK 0x0003c000 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun #define CRYPTO_PKA_SW_RESET (0x0088C - CRYPTO_PKA_BASE_OFFSET) 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun /* PKA_L0 ~ PKA_L7 */ 361*4882a593Smuzhiyun #define CRYPTO_PKA_L0 (0x00890 - CRYPTO_PKA_BASE_OFFSET) 362*4882a593Smuzhiyun #define CRYPTO_LEN_REG_NUM 8 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun #define CRYPTO_PKA_PIPE_RDY (0x008B0 - CRYPTO_PKA_BASE_OFFSET) 365*4882a593Smuzhiyun #define CRYPTO_PKA_DONE (0x008B4 - CRYPTO_PKA_BASE_OFFSET) 366*4882a593Smuzhiyun #define CRYPTO_PKA_MON_SELECT (0x008B8 - CRYPTO_PKA_BASE_OFFSET) 367*4882a593Smuzhiyun #define CRYPTO_PKA_DEBUG_REG_EN (0x008BC - CRYPTO_PKA_BASE_OFFSET) 368*4882a593Smuzhiyun #define CRYPTO_DEBUG_CNT_ADDR (0x008C0 - CRYPTO_PKA_BASE_OFFSET) 369*4882a593Smuzhiyun #define CRYPTO_DEBUG_EXT_ADDR (0x008C4 - CRYPTO_PKA_BASE_OFFSET) 370*4882a593Smuzhiyun #define CRYPTO_PKA_DEBUG_HALT (0x008C8 - CRYPTO_PKA_BASE_OFFSET) 371*4882a593Smuzhiyun #define CRYPTO_PKA_MON_READ (0x008D0 - CRYPTO_PKA_BASE_OFFSET) 372*4882a593Smuzhiyun #define CRYPTO_PKA_INT_ENA (0x008D4 - CRYPTO_PKA_BASE_OFFSET) 373*4882a593Smuzhiyun #define CRYPTO_PKA_INT_ST (0x008D8 - CRYPTO_PKA_BASE_OFFSET) 374*4882a593Smuzhiyun #define CRYPTO_SRAM_BASE (0x01000 - CRYPTO_PKA_BASE_OFFSET) 375*4882a593Smuzhiyun #define CRYPTO_SRAM_SIZE 0x01000 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun #endif 378*4882a593Smuzhiyun 379