Files
SDK_SG200x_V2/linux_5.10/include/uapi/linux/cvitek_spacc.h
sophgo-forum-service 50fd0630f7 linux_5.10: weekly rls 2024.07.20
-142736, Sync spacc driver code.
-2303c6, add suspend to ram featrue.
-d3bff8, support pdm mic using AEC.
-203610, support new spinand flash:HYF1GQ4UDACAE.

Change-Id: Iec21bccaee43c4a71213b42b88f41a45527fd8a5
2024-07-25 17:08:03 +08:00

74 lines
2.0 KiB
C

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _CVITEK_SPACC_H_
#define _CVITEK_SPACC_H_
typedef enum SPACC_ALGO {
SPACC_ALGO_AES,
SPACC_ALGO_DES,
SPACC_ALGO_TDES,
SPACC_ALGO_SM4,
SPACC_ALGO_SHA1,
SPACC_ALGO_SHA256,
SPACC_ALGO_BASE64,
} SPACC_ALGO_E;
typedef enum SPACC_ALGO_MODE {
SPACC_ALGO_MODE_ECB,
SPACC_ALGO_MODE_CBC, //cv180x Not Supported
SPACC_ALGO_MODE_CTR, //cv180x Not Supported
SPACC_ALGO_MODE_OFB, //cv180x Not Supported
} SPACC_ALGO_MODE_E;
typedef enum SPACC_KEY_SIZE {
SPACC_KEY_SIZE_64BITS,
SPACC_KEY_SIZE_128BITS,
SPACC_KEY_SIZE_192BITS,
SPACC_KEY_SIZE_256BITS,
} SPACC_KEY_SIZE_E;
typedef enum SPACC_ACTION {
SPACC_ACTION_ENCRYPTION,
SPACC_ACTION_DECRYPT,
} SPACC_ACTION_E;
typedef struct spacc_base64_action {
SPACC_ACTION_E action;
} spacc_base64_action_s;
typedef struct spacc_aes_config {
// data config
void *src; //src phy address
size_t len;
// spacc config
unsigned char key[32];
unsigned char iv[16];
SPACC_ALGO_MODE_E mode;
SPACC_KEY_SIZE_E size;
SPACC_ACTION_E action;
} spacc_aes_config_s;
typedef struct spacc_des_config {
unsigned char key[24];
unsigned char iv[16];
SPACC_ALGO_MODE_E mode;
SPACC_ACTION_E action;
} spacc_des_config_s;
typedef spacc_aes_config_s spacc_sm4_config_s;
typedef spacc_des_config_s spacc_tdes_config_s;
#define IOCTL_SPACC_BASE 'S'
#define IOCTL_SPACC_CREATE_MEMPOOL _IOW(IOCTL_SPACC_BASE, 1, unsigned int)
#define IOCTL_SPACC_GET_MEMPOOL_SIZE _IOR(IOCTL_SPACC_BASE, 2, unsigned int)
#define IOCTL_SPACC_SHA256_ACTION _IO(IOCTL_SPACC_BASE, 5)
#define IOCTL_SPACC_SHA1_ACTION _IO(IOCTL_SPACC_BASE, 6)
#define IOCTL_SPACC_BASE64_ACTION _IOW(IOCTL_SPACC_BASE, 7, spacc_base64_action_s)
#define IOCTL_SPACC_AES_ACTION _IOW(IOCTL_SPACC_BASE, 8, spacc_aes_config_s)
#define IOCTL_SPACC_SM4_ACTION _IOW(IOCTL_SPACC_BASE, 9, spacc_sm4_config_s)
#define IOCTL_SPACC_DES_ACTION _IOW(IOCTL_SPACC_BASE, 10, spacc_des_config_s)
#define IOCTL_SPACC_TDES_ACTION _IOW(IOCTL_SPACC_BASE, 11, spacc_tdes_config_s)
#endif // _CVITEK_SPACC_H_