lib: optee_client: v2 client support compile to 32 bits

Change-Id: I25cbbe486016cbe6fb1a6eff440bb7efab46a4c6
Signed-off-by: Hisping Lin <hisping.lin@rock-chips.com>
This commit is contained in:
Hisping Lin 2018-07-20 17:56:28 +08:00 committed by Jianhong Chen
parent a678796b79
commit d156c9ff6f
3 changed files with 16 additions and 16 deletions

View File

@ -147,7 +147,7 @@ TEEC_Result OpteeRpcCmdLoadV2Ta(t_teesmc32_arg *TeeSmc32Arg)
debug("return size of TA, keymaster_size = 0x%x", keymaster_size); debug("return size of TA, keymaster_size = 0x%x", keymaster_size);
TeeSmc32Param[1].u.memref.size = keymaster_size; TeeSmc32Param[1].u.memref.size = keymaster_size;
} else { } else {
memcpy((void *)TeeSmc32Param[1].u.memref.buf_ptr, memcpy((void *)(size_t)TeeSmc32Param[1].u.memref.buf_ptr,
(void *)keymaster_data, TeeSmc32Param[1].u.memref.size); (void *)keymaster_data, TeeSmc32Param[1].u.memref.size);
debug("memref.buf_ptr = 0x%llx; memref.size = 0x%llx", debug("memref.buf_ptr = 0x%llx; memref.size = 0x%llx",
TeeSmc32Param[1].u.memref.buf_ptr, TeeSmc32Param[1].u.memref.buf_ptr,
@ -571,7 +571,7 @@ TEEC_Result OpteeRpcCallback(ARM_SMC_ARGS *ArmSmcArgs)
#endif #endif
#ifdef CONFIG_OPTEE_V2 #ifdef CONFIG_OPTEE_V2
t_teesmc32_arg *TeeSmc32Arg = t_teesmc32_arg *TeeSmc32Arg =
(t_teesmc32_arg *)((size_t)ArmSmcArgs->Arg1 << 32 | ArmSmcArgs->Arg2); (t_teesmc32_arg *)(size_t)((uint64_t)ArmSmcArgs->Arg1 << 32 | ArmSmcArgs->Arg2);
debug("TeeSmc32Arg->cmd = 0x%x", TeeSmc32Arg->cmd); debug("TeeSmc32Arg->cmd = 0x%x", TeeSmc32Arg->cmd);
#endif #endif
switch (TeeSmc32Arg->cmd) { switch (TeeSmc32Arg->cmd) {

View File

@ -724,7 +724,7 @@ static uint32_t ree_fs_new_open(size_t num_params,
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
filename = (char *)params[1].u.memref.shm_id; filename = (char *)(size_t)params[1].u.memref.shm_id;
if (!filename) if (!filename)
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
@ -733,7 +733,7 @@ static uint32_t ree_fs_new_open(size_t num_params,
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
} }
debug("ree_fs_new_open open file: %s, len: %lu \n", filename, strlen(filename)); debug("ree_fs_new_open open file: %s, len: %zu \n", filename, strlen(filename));
fd = rkss_get_fileinfo_by_name(filename, &p); fd = rkss_get_fileinfo_by_name(filename, &p);
if (fd < 0) { if (fd < 0) {
debug("ree_fs_new_open : no such file. %s", filename); debug("ree_fs_new_open : no such file. %s", filename);
@ -756,7 +756,7 @@ static TEEC_Result ree_fs_new_create(size_t num_params,
/* file open flags: O_RDWR | O_CREAT | O_TRUNC /* file open flags: O_RDWR | O_CREAT | O_TRUNC
* if file exists, we must remove it first. * if file exists, we must remove it first.
*/ */
filename = (char *)params[1].u.memref.shm_id; filename = (char *)(size_t)params[1].u.memref.shm_id;
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
if (!filename) if (!filename)
@ -767,7 +767,7 @@ static TEEC_Result ree_fs_new_create(size_t num_params,
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
} }
debug("ree_fs_new_create create file: %s, len: %lu \n", filename, strlen(filename)); debug("ree_fs_new_create create file: %s, len: %zu \n", filename, strlen(filename));
fd = rkss_get_fileinfo_by_name(filename, &p); fd = rkss_get_fileinfo_by_name(filename, &p);
if (fd >= 0) { if (fd >= 0) {
debug("ree_fs_new_create : file exist, clear it. %s", filename); debug("ree_fs_new_create : file exist, clear it. %s", filename);
@ -832,7 +832,7 @@ static TEEC_Result ree_fs_new_read(size_t num_params,
fd = params[0].u.value.b; fd = params[0].u.value.b;
offs = params[0].u.value.c; offs = params[0].u.value.c;
data = (uint8_t *)params[1].u.memref.shm_id; data = (uint8_t *)(size_t)params[1].u.memref.shm_id;
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
@ -898,7 +898,7 @@ static TEEC_Result ree_fs_new_write(size_t num_params,
fd = params[0].u.value.b; fd = params[0].u.value.b;
offs = params[0].u.value.c; offs = params[0].u.value.c;
data = (uint8_t *)params[1].u.memref.shm_id; data = (uint8_t *)(size_t)params[1].u.memref.shm_id;
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
if (!data) if (!data)
@ -1045,7 +1045,7 @@ static TEEC_Result ree_fs_new_remove(size_t num_params,
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
filename = (char *)params[1].u.memref.shm_id; filename = (char *)(size_t)params[1].u.memref.shm_id;
if (!filename) if (!filename)
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
@ -1092,13 +1092,13 @@ static TEEC_Result ree_fs_new_rename(size_t num_params,
struct rkss_file_info p = {0}; struct rkss_file_info p = {0};
int ret; int ret;
old_fname = (char *)params[1].u.memref.shm_id; old_fname = (char *)(size_t)params[1].u.memref.shm_id;
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx\n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
if (!old_fname) if (!old_fname)
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
new_fname = (char *)params[2].u.memref.shm_id; new_fname = (char *)(size_t)params[2].u.memref.shm_id;
debug("params[2].u.memref.shm_id = 0x%llx params[2].u.memref.shm_offs = 0x%llx\n", debug("params[2].u.memref.shm_id = 0x%llx params[2].u.memref.shm_offs = 0x%llx\n",
params[2].u.memref.shm_id, params[2].u.memref.shm_offs); params[2].u.memref.shm_id, params[2].u.memref.shm_offs);
if (!new_fname) if (!new_fname)
@ -1137,7 +1137,7 @@ static TEEC_Result ree_fs_new_opendir(size_t num_params,
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
dirname = (char *)params[1].u.memref.shm_id; dirname = (char *)(size_t)params[1].u.memref.shm_id;
if (!dirname) if (!dirname)
return TEEC_ERROR_BAD_PARAMETERS; return TEEC_ERROR_BAD_PARAMETERS;
@ -1173,7 +1173,7 @@ static TEEC_Result ree_fs_new_readdir(size_t num_params,
size_t len; size_t len;
size_t dirname_len; size_t dirname_len;
dirname = (char *) params[1].u.memref.shm_id; dirname = (char *)(size_t)params[1].u.memref.shm_id;
debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n", debug("params[1].u.memref.shm_id = 0x%llx params[1].u.memref.shm_offs = 0x%llx \n",
params[1].u.memref.shm_id, params[1].u.memref.shm_offs); params[1].u.memref.shm_id, params[1].u.memref.shm_offs);
if (!dirname) if (!dirname)

View File

@ -115,7 +115,7 @@ TEEC_Result TEEC_SMC_OpenSession(TEEC_Context *context,
#endif #endif
#ifdef CONFIG_OPTEE_V2 #ifdef CONFIG_OPTEE_V2
#ifdef CONFIG_ARM64 #if defined CONFIG_ARM64 || defined CONFIG_ARM64_BOOT_AARCH32
uint8_t * session_uuid = (uint8_t *)&TeeSmcMetaSession->uuid; uint8_t * session_uuid = (uint8_t *)&TeeSmcMetaSession->uuid;
tee_uuid_to_octets(session_uuid, destination); tee_uuid_to_octets(session_uuid, destination);
memcpy((void *)&TeeSmc32Param[0].u.value, &TeeSmcMetaSession->uuid, sizeof(TeeSmcMetaSession->uuid)); memcpy((void *)&TeeSmc32Param[0].u.value, &TeeSmcMetaSession->uuid, sizeof(TeeSmcMetaSession->uuid));
@ -307,7 +307,7 @@ void SetTeeSmc32Params(TEEC_Operation *operation,
#endif #endif
#ifdef CONFIG_OPTEE_V2 #ifdef CONFIG_OPTEE_V2
#ifdef CONFIG_ARM64 #if defined CONFIG_ARM64 || defined CONFIG_ARM64_BOOT_AARCH32
attr += (OPTEE_MSG_ATTR_TYPE_TMEM_INPUT_V2 - TEEC_MEMREF_TEMP_INPUT); attr += (OPTEE_MSG_ATTR_TYPE_TMEM_INPUT_V2 - TEEC_MEMREF_TEMP_INPUT);
debug(" OPTEE_OS_V2 ARCH64 attr %x\n", attr); debug(" OPTEE_OS_V2 ARCH64 attr %x\n", attr);
#else #else
@ -376,7 +376,7 @@ TEEC_Result OpteeSmcCall(t_teesmc32_arg *TeeSmc32Arg)
while (1) { while (1) {
tee_smc_call(&ArmSmcArgs); tee_smc_call(&ArmSmcArgs);
debug("arg0=0x%x arg1=0x%x arg2=0x%x arg3=0x%x", debug("arg0=0x%x arg1=0x%x arg2=0x%x arg3=0x%x \n",
ArmSmcArgs.Arg0, ArmSmcArgs.Arg1, ArmSmcArgs.Arg2, ArmSmcArgs.Arg3); ArmSmcArgs.Arg0, ArmSmcArgs.Arg1, ArmSmcArgs.Arg2, ArmSmcArgs.Arg3);
if (TEESMC_RETURN_IS_RPC(ArmSmcArgs.Arg0)) { if (TEESMC_RETURN_IS_RPC(ArmSmcArgs.Arg0)) {
(void) OpteeRpcCallback(&ArmSmcArgs); (void) OpteeRpcCallback(&ArmSmcArgs);