1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-04 10:12:14 +02:00
Files
u-boot-megous/sprite/sprite_storage_crypt.h
Ondrej Jirman ba8c26ce40 initial
2019-03-04 15:37:41 +01:00

123 lines
2.8 KiB
C
Executable File

#ifndef _SPRITE_STORAGE_CRYPT_H_
#define _SPRITE_STORAGE_CRYPT_H_
enum{
/* TEE SMC command type */
TEE_SMC_INIT_CALL = 0x0FFFFFF1,
TEE_SMC_PLAFORM_OPERATION = 0x0FFFFFF2,
TEE_SMC_OPEN_SESSION = 0x0FFFFFF3,
TEE_SMC_CLOSE_SESSION = 0x0FFFFFF4,
TEE_SMC_INVOKE_COMMAND = 0x0FFFFFF5,
TEE_SMC_NS_IRQ_CALL = 0x0FFFFFF6,
TEE_SMC_NS_IRQ_DONE = 0x0FFFFFF7,
TEE_SMC_NS_KERNEL_CALL = 0x0FFFFFF8,
TEE_SMC_SECURE_FIQ_CALL = 0x0FFFFFF9,
TEE_SMC_SECURE_FIQ_DONE = 0x0FFFFFFA,
TEE_SMC_CONFIG_SHMEM = 0x0FFFFFFB,
TEE_SMC_RPC_CALL = 0x0FFFFFFC,
TEE_SMC_RPC_RETURN = 0x0FFFFFFD,
TEE_SMC_SST_COMMAND = 0x0FFFFF10,
};
enum {
TE_PARAM_TYPE_NONE = 0,
TE_PARAM_TYPE_INT_RO = 1,
TE_PARAM_TYPE_INT_RW = 2,
TE_PARAM_TYPE_MEM_RO = 3,
TE_PARAM_TYPE_MEM_RW = 4,
};
struct te_oper_param {
uint32_t index;
uint32_t type;
union {
struct {
uint32_t val_a;
uint32_t val_b;
} Int;
struct {
void *base;
void *phys;
uint32_t len;
} Mem;
} u;
void *next_ptr_user;
};
struct te_request {
uint32_t type;
uint32_t session_id;
uint32_t command_id;
struct te_oper_param *params;
uint32_t params_size;
uint32_t dest_uuid[4];
uint32_t result;
uint32_t result_origin;
};
/*communication structure*/
typedef struct command{
unsigned int cmd_type;
unsigned int cmd_param[4];
unsigned char *cmd_buf;
unsigned int cmd_buf_len ;
unsigned int resp_type;
unsigned int resp_ret[4];
unsigned char *resp_buf;
unsigned int resp_buf_len;
unsigned int status;
}cmd_t;
enum{/*cmd type*/
SST_CMD_POLLING =1 ,
SST_CMD_BIND_REQ ,
SST_CMD_WORK_DONE,
SST_CMD_UPDATE_REQ,
SST_CMD_INITIALIZED,
SST_CMD_FUNC_TEST,
};
enum{/*response type*/
SST_RESP_DUMMY = 1,
SST_RESP_READ,
SST_RESP_READ_DONE,
SST_RESP_WRITE,
SST_RESP_WRITE_DONE,
SST_RESP_DELETE,
SST_RESP_BIND_DONE,
SST_RESP_UPDATE_DONE,
SST_RESP_INITED_DONE,
SST_RESP_FUNC_TEST_DONE,
};
enum{/*response result*/
SST_RESP_RET_SUCCESS = 0,
SST_RESP_RET_FAIL,
};
enum{ /*cmd status*/
SST_STAS_CMD_INIT =1,/*Nwd*/
SST_STAS_CMD_RDY , /*Nwd*/
SST_STAS_CMD_POST ,/*Nwd*/
SST_STAS_CMD_GET, /*Swd*/
SST_STAS_CMD_DEAL,/*Swd*/
SST_STAS_CMD_RET, /*Swd*/
SST_STAS_CMD_DONE,/*Nwd*/
};
typedef enum TYPE{
OEM_DATA = 1,
USER_DATA,
}type_t;
#define MAX_OEM_STORE_NUM 0x10
#define MAX_STORE_LEN 0xc00 /*3K payload*/
#define ALIGN_BUF(src, align) (((src) + (align) -1) &(~((align)-1)))
extern int sst_oem_item_id(char *item);
#endif