nt9856x/BSP/linux-kernel/drivers/crypto/nvt_ivot/na51089_rsa.h
2023-03-28 15:07:53 +08:00

46 lines
2.3 KiB
C
Executable File

#ifndef _NA51089_RSA_H_
#define _NA51089_RSA_H_
typedef enum {
NA51089_RSA_MCLK_240MHZ = 0,
NA51089_RSA_MCLK_320MHZ,
NA51089_RSA_MCLK_RSVD,
NA51089_RSA_MCLK_PLL9,
NA51089_RSA_MCLK_MAX
} NA51089_RSA_MCLK_T;
typedef enum {
NA51089_RSA_MODE_NORMAL = 0, ///< normal mode, encryption or decryption
NA51089_RSA_MODE_CRC_KEY_N, ///< N key check by crc32
NA51089_RSA_MODE_CRC_KEY_ED, ///< E/D key check by crc32
NA51089_RSA_MODE_MAX
} NA51089_RSA_MODE_T;
typedef enum {
NA51089_RSA_KEY_256 = 0, ///< key width 256 bits
NA51089_RSA_KEY_512, ///< key width 512 bits
NA51089_RSA_KEY_1024, ///< key width 1024 bits
NA51089_RSA_KEY_2048, ///< key width 2048 bits
NA51089_RSA_KEY_4096, ///< key width 4096 bits, only support in NA51084
NA51089_RSA_KEY_MAX
} NA51089_RSA_KEY_T;
#define NA51089_RSA_BUFFER_LEN 512 ///< 512 bytes
#define NA51089_RSA_CFG_REG 0x00 ///< configuration
#define NA51089_RSA_CTRL_REG 0x04 ///< control
#define NA51089_RSA_INT_ENB_REG 0x08 ///< interrupt enable
#define NA51089_RSA_INT_STS_REG 0x0C ///< interrupt status
#define NA51089_RSA_KEY_N_REG 0x10 ///< key N register
#define NA51089_RSA_KEY_N_ADDR_REG 0x14 ///< key N config ram address
#define NA51089_RSA_KEY_ED_REG 0x18 ///< key E/D register
#define NA51089_RSA_KEY_ED_ADDR_REG 0x1C ///< key E/D config ram address
#define NA51089_RSA_DATA_REG 0x20 ///< input data register
#define NA51089_RSA_DATA_ADDR_REG 0x24 ///< input data config ram address
#define NA51089_RSA_KEY_READ_REG 0x28 ///< rsa key readable control
#define NA51089_RSA_CRC32_DEFAULT_REG 0x30 ///< crc32 default value
#define NA51089_RSA_CRC32_POLY_REG 0x34 ///< crc32 polynomial parameter
#define NA51089_RSA_CRC32_OUTPUT_REG 0x38 ///< rsa key crc32 result
#endif /* _NA51089_RSA_H_ */