106 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
| /* SPDX-License-Identifier:     GPL-2.0+ */
 | |
| /*
 | |
|  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
 | |
|  */
 | |
| 
 | |
| #ifndef _ROCKCHIP_CRYPTO_V1_H_
 | |
| #define _ROCKCHIP_CRYPTO_V1_H_
 | |
| 
 | |
| struct rk_crypto_reg {
 | |
| 	u32 crypto_intsts;
 | |
| 	u32 crypto_intena;
 | |
| 	u32 crypto_ctrl;
 | |
| 	u32 crypto_conf;
 | |
| 	u32 crypto_brdmas;
 | |
| 	u32 crypto_btdmas;
 | |
| 	u32 crypto_brdmal;
 | |
| 	u32 crypto_hrdmas;
 | |
| 	u32 crypto_hrdmal;
 | |
| 	u32 reserved0[(0x80 - 0x24) / 4];
 | |
| 
 | |
| 	u32 crypto_aes_ctrl;
 | |
| 	u32 crypto_aes_sts;
 | |
| 	u32 crypto_aes_din[4];
 | |
| 	u32 crypto_aes_dout[4];
 | |
| 	u32 crypto_aes_iv[4];
 | |
| 	u32 crypto_aes_key[8];
 | |
| 	u32 crypto_aes_cnt[4];
 | |
| 	u32 reserved1[(0x100 - 0xe8) / 4];
 | |
| 
 | |
| 	u32 crypto_tdes_ctrl;
 | |
| 	u32 crypto_tdes_sts;
 | |
| 	u32 crypto_tdes_din[2];
 | |
| 	u32 crypto_tdes_dout[2];
 | |
| 	u32 crypto_tdes_iv[2];
 | |
| 	u32 crypto_tdes_key1[2];
 | |
| 	u32 crypto_tdes_key2[2];
 | |
| 	u32 crypto_tdes_key3[2];
 | |
| 	u32 reserved2[(0x180 - 0x138) / 4];
 | |
| 
 | |
| 	u32 crypto_hash_ctrl;
 | |
| 	u32 crypto_hash_sts;
 | |
| 	u32 crypto_hash_msg_len;
 | |
| 	u32 crypto_hash_dout[8];
 | |
| 	u32 crypto_hash_seed[5];
 | |
| 	u32 reserved3[(0x200 - 0x1c0) / 4];
 | |
| 
 | |
| 	u32 crypto_trng_ctrl;
 | |
| 	u32 crypto_trng_dout[8];
 | |
| 	u32 reserved4[(0x280 - 0x224) / 4];
 | |
| 
 | |
| 	u32 crypto_pka_ctrl;
 | |
| 	u32 reserved5[(0x400 - 0x284) / 4];
 | |
| 
 | |
| 	u32 crypto_pka_m[(0x500 - 0x400) / 4];
 | |
| 	u32 crypto_pka_c[(0x600 - 0x500) / 4];
 | |
| 	u32 crypto_pka_n[(0x700 - 0x600) / 4];
 | |
| 	u32 crypto_pka_e;
 | |
| };
 | |
| 
 | |
| check_member(rk_crypto_reg, crypto_pka_e, 0x700);
 | |
| 
 | |
| /************************ Register bits definition ****************************/
 | |
| /* CRYPTO_HASH_CTRL */
 | |
| #define ENGINE_SELECTION_SHA1		0x0
 | |
| #define ENGINE_SELECTION_MD5		0x1
 | |
| #define ENGINE_SELECTION_SHA256		0x2
 | |
| #define HASH_SWAP_DO			0x8
 | |
| 
 | |
| /* CRYPTO_CONF */
 | |
| #define HR_ADDR_MODE			BIT(8)
 | |
| #define BT_ADDR_MODE			BIT(7)
 | |
| #define BR_ADDR_MODE			BIT(6)
 | |
| #define BYTESWAP_HRFIFO			BIT(5)
 | |
| #define BYTESWAP_BTFIFO			BIT(4)
 | |
| #define BYTESWAP_BRFIFO			BIT(3)
 | |
| #define DESSEL				BIT(2)
 | |
| 
 | |
| /* CRYPTO_CTRL */
 | |
| #define TRNG_FLUSH			BIT(9)
 | |
| #define TRNG_START			BIT(8)
 | |
| #define PKA_FLUSH			BIT(7)
 | |
| #define HASH_FLUSH			BIT(6)
 | |
| #define BLOCK_FLUSH			BIT(5)
 | |
| #define PKA_START			BIT(4)
 | |
| #define HASH_START			BIT(3)
 | |
| #define BLOCK_START			BIT(2)
 | |
| #define TDES_START			BIT(1)
 | |
| #define AES_START			BIT(0)
 | |
| #define PKA_HASH_CTRL			(PKA_FLUSH | HASH_FLUSH)
 | |
| #define PKA_CTRL			(PKA_FLUSH | PKA_START)
 | |
| 
 | |
| /* CRYPTO_INTSTS */
 | |
| #define PKA_DONE_INT			BIT(5)
 | |
| #define HASH_DONE_INT			BIT(4)
 | |
| #define HRDMA_ERR_INT			BIT(3)
 | |
| #define HRDMA_DONE_INT			BIT(2)
 | |
| #define BCDMA_ERR_INT			BIT(1)
 | |
| #define BCDMA_DONE_INT			BIT(0)
 | |
| 
 | |
| /* CRYPTO_PKA_CTRL */
 | |
| #define PKA_BLOCK_SIZE_512		0
 | |
| #define PKA_BLOCK_SIZE_1024		1
 | |
| #define PKA_BLOCK_SIZE_2048		2
 | |
| 
 | |
| #endif
 |