some bug fixes for tee_tee_os_framework

Signed-off-by: suwanghw <wangsu14@huawei.com>
This commit is contained in:
suwanghw
2023-06-26 20:28:02 +08:00
parent e2b708b907
commit 4fb564c1f3
15 changed files with 79 additions and 37 deletions
+48 -10
View File
@@ -19,7 +19,49 @@ else
export TOPDIR := $(CURDIR)/../
endif
export OPENSSL_DIR := $(TOPDIR)/../../../third_party/openssl
ifneq (${TARGET_BOARD_PLATFORM},)
export TARGET_BOARD_PLATFORM := ${TARGET_BOARD_PLATFORM}
else
export TARGET_BOARD_PLATFORM := oh_64
endif
ifneq (${FRAMEWORK_ELF_PATH},)
export FRAMEWORK_ELF_PATH := ${FRAMEWORK_ELF_PATH}
else
export FRAMEWORK_ELF_PATH := $(TOPDIR)/elf_out
endif
ifneq (${TEE_COMPILER_DIR},)
export TEE_COMPILER_DIR := ${TEE_COMPILER_DIR}
else
export TEE_COMPILER_DIR := $(TOPDIR)/../../../../tools/llvm
endif
ifneq (${LLVM_BASEVER},)
export LLVM_BASEVER := ${LLVM_BASEVER}
else
export LLVM_BASEVER := 15.0.4
endif
ifneq ($(THIRDPARTY),)
export THIRDPARTY := $(THIRDPARTY)
else
# Try to find third_party directory in default places
IS_THIRDPARTY_EMPTY := $(wildcard $(TOPDIR)/../third_party/*)
ifneq ($(IS_THIRDPARTY_EMPTY),)
export THIRDPARTY := $(TOPDIR)/../third_party/
endif
IS_THIRDPARTY_EMPTY := $(wildcard $(TOPDIR)/../../../third_party/*)
ifneq ($(IS_THIRDPARTY_EMPTY),)
export THIRDPARTY := $(TOPDIR)/../../../third_party/
endif
endif
export TEE_CLANG_DIR := ${TEE_COMPILER_DIR}/bin
export TEE_SECUREC_DIR := $(THIRDPARTY)/bounds_checking_function
export OPENSSL_DIR := $(THIRDPARTY)/openssl
export OLD_TOPDIR := $(TOPDIR)/config
export TOOLS := $(TOPDIR)/build/tools
export VER
@@ -43,12 +85,8 @@ export BUILD_CFI := $(TOPDIR)/build/mk/common/cfi
export BUILD_CONFIG := $(TOPDIR)/build/mk/common/config
export BUILD_OPERATION := $(TOPDIR)/build/mk/common/operation
## if O=xxx, using outsize output directory.
ifneq ($(O),)
export OUTPUTDIR := $(O)
else
export PREBUILD_ROOT := $(TOPDIR)/prebuild
export OUTPUTDIR := $(TOPDIR)/output
endif
export SDK_VER := tee-kernel-local-release
@@ -76,7 +114,7 @@ GEN_CONF_FILE:
rm -rf $(PREBUILD_DIR)/headers/.config
cat $(CONFIG_FILE) | tee $(PREBUILD_DIR)/headers/.config
PATCH_OPENSSL:=$(shell $(TOPDIR)/lib/teelib/libopenssl/build_openssl.sh $(TOPDIR))
PATCH_OPENSSL:=$(shell $(TOPDIR)/lib/teelib/libopenssl/build_openssl.sh $(THIRDPARTY) $(TOPDIR))
export PLAT_CFG_DIR := $(PLATFORM_DIR)/$(PLATFORM_NAME)/$(PRODUCT_NAME)/$(CHIP_NAME)/plat_cfg
export PLAT_COMMON_DIR := $(PLATFORM_DIR)/common
@@ -102,8 +140,8 @@ $(drivers): setup_links libs link_libs
$(frameworks): setup_links libs link_libs
$(service): setup_links libs link_libs
package: check_sym
@mkdir $(FRAMEWORK_ELF_PATH)
@mkdir $(FRAMEWORK_ELF_PATH)/apps
@mkdir -p $(FRAMEWORK_ELF_PATH)
@mkdir -p $(FRAMEWORK_ELF_PATH)/apps
cp -a $(product_apps) $(FRAMEWORK_ELF_PATH)/apps
ifeq ($(CONFIG_SUPPORT_64BIT),)
@@ -188,7 +226,7 @@ release:
PHONY += clean
clean: clean_links
sh $(TOPDIR)/lib/teelib/libopenssl/clean_openssl.sh $(TOPDIR)
sh $(TOPDIR)/lib/teelib/libopenssl/clean_openssl.sh $(THIRDPARTY) $(TOPDIR)
@rm -rf $(OUTPUTDIR)
@rm -rf sec_trustedcore.img
@rm -rf tools/linker.lds_pp
+5 -5
View File
@@ -11,8 +11,8 @@
# See the Mulan PSL v2 for more details.
FRAMEWORK_DIR=$(pwd)/../
make V=3 TOPDIR=${FRAMEWORK_DIR} O=${FRAMEWORK_DIR}/output PREBUILD_ROOT=${FRAMEWORK_DIR}/prebuild GEN_CONF_FILE -j
make V=3 TOPDIR=${FRAMEWORK_DIR} O=${FRAMEWORK_DIR}/output PREBUILD_ROOT=${FRAMEWORK_DIR}/prebuild install_headers -j
make V=3 TOPDIR=${FRAMEWORK_DIR} O=${FRAMEWORK_DIR}/output PREBUILD_ROOT=${FRAMEWORK_DIR}/prebuild libs -j
make V=3 TOPDIR=${FRAMEWORK_DIR} O=${FRAMEWORK_DIR}/output PREBUILD_ROOT=${FRAMEWORK_DIR}/prebuild tees -j
make V=3 TOPDIR=${FRAMEWORK_DIR} O=${FRAMEWORK_DIR}/output PREBUILD_ROOT=${FRAMEWORK_DIR}/prebuild package -j
make V=3 TARGET_BOARD_PLATFORM=$1 FRAMEWORK_ELF_PATH=$2 TEE_COMPILER_DIR=$3 LLVM_BASEVER=$4 TOPDIR=${FRAMEWORK_DIR} GEN_CONF_FILE -j
make V=3 TARGET_BOARD_PLATFORM=$1 FRAMEWORK_ELF_PATH=$2 TEE_COMPILER_DIR=$3 LLVM_BASEVER=$4 TOPDIR=${FRAMEWORK_DIR} install_headers -j
make V=3 TARGET_BOARD_PLATFORM=$1 FRAMEWORK_ELF_PATH=$2 TEE_COMPILER_DIR=$3 LLVM_BASEVER=$4 TOPDIR=${FRAMEWORK_DIR} libs -j
make V=3 TARGET_BOARD_PLATFORM=$1 FRAMEWORK_ELF_PATH=$2 TEE_COMPILER_DIR=$3 LLVM_BASEVER=$4 TOPDIR=${FRAMEWORK_DIR} tees -j
make V=3 TARGET_BOARD_PLATFORM=$1 FRAMEWORK_ELF_PATH=$2 TEE_COMPILER_DIR=$3 LLVM_BASEVER=$4 TOPDIR=${FRAMEWORK_DIR} package -j
+2 -2
View File
@@ -37,7 +37,7 @@ export TARGET_ARCH_64 := aarch64-linux-gnu
ifeq ($(ARCH), arm)
TARGET_ARCH := $(TARGET_ARCH_32)
LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/arm-linux-ohos/libclang_rt.builtins.a
LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/clang/$(LLVM_BASEVER)/lib/arm-linux-ohos/libclang_rt.builtins.a
ifeq (${CONFIG_THUMB_SUPPORT},y)
flags += -mthumb
endif
@@ -49,7 +49,7 @@ ifeq ($(CONFIG_ARM_CORTEX_A53),y)
endif
else
TARGET_ARCH := $(TARGET_ARCH_64)
LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/aarch64-linux-ohos/libclang_rt.builtins.a
LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/clang/$(LLVM_BASEVER)/lib/aarch64-linux-ohos/libclang_rt.builtins.a
flags += -march=armv8-a
ifeq ($(CONFIG_ARM_CORTEX_A53),y)
ASFLAGS += -march=armv8-a
+2 -2
View File
@@ -16,7 +16,7 @@ CHIP_NAME=oh_64
PRODUCT_NAME=oh
CONFIG_SUPPORT_64BIT=true
CONFIG_TA_64BIT=true
#CONFIG_SSA_64BIT=true
#CONFIG_SSA_64BIT is not set
CONFIG_GTASK_64BIT=true
CONFIG_HUK_SERVICE_64BIT=true
CONFIG_PERMSRV_64BIT=true
@@ -40,7 +40,7 @@ CONFIG_CRYPTO_AES_WRAPPER=true
# services
#
CONFIG_APP_TEE_GTASK=y
#CONFIG_APP_TEE_SSA=y
#CONFIG_APP_TEE_SSA is not set
CONFIG_APP_TEE_PERM=y
CONFIG_APP_TEE_HUK=y
CONFIG_OH_LOAD_KEY=y
+1
View File
@@ -23,6 +23,7 @@
#include "global_task.h"
#include "init.h"
#include <sched.h>
#include <mem_ops.h>
#define GT_CHANNEL_NUM 2
+2 -1
View File
@@ -67,7 +67,6 @@ struct mempool_state {
static struct dlist_node g_mem_ns;
static struct mempool_state g_mb_state;
static struct mempool_state g_rm_state;
static struct pam_node *g_gt_pam_node = NULL;
static tee_operation_gtask *g_gt_oper_addr = NULL;
@@ -156,6 +155,7 @@ static void free_tee_mem(const void *addr, uint32_t size)
static TEE_Result copy_from_src(uint32_t task_id, void **tee_addr, void *ree_addr, uint32_t size, uint32_t type)
{
(void)type;
if (tee_addr == NULL || ree_addr == NULL || size == 0) {
tloge("copy_from_src invalid input\n");
return TEE_ERROR_BAD_PARAMETERS;
@@ -440,6 +440,7 @@ bool is_opensession_cmd(const smc_cmd_t *cmd)
static TEE_Result map_memref_for_gtask(bool ta2ta, const smc_cmd_t *cmd, tee_param_32 p,
paddr_t buffer_h_addr, uint32_t type, void **ree_addr)
{
(void)type;
if (ta2ta) {
uint64_t tmp_addr;
if (map_sharemem(cmd->uid, (uint32_t)p.memref.buffer | (buffer_h_addr << SHIFT_OFFSET),
-1
View File
@@ -11,7 +11,6 @@
*/
#include "get_spawn_env.h"
#include <stdlib.h>
#include <alltypes.h>
#include <errno.h>
#include <tee_log.h>
#include <target_type.h>
+4
View File
@@ -10,6 +10,8 @@
* See the Mulan PSL v2 for more details.
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
@@ -31,6 +33,8 @@
#include "load_init.h"
#include "ta_mt.h"
#include <ipclib_hal.h>
#include <mem_ops.h>
#include <unistd.h>
#define RTLD_TA 0x100000
#define IPC_CHANNEL_NUM 2
+3
View File
@@ -9,6 +9,9 @@
* PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#define _GNU_SOURCE
#include "ta_mt.h"
#include <stdlib.h>
#include <string.h>
+5 -4
View File
@@ -10,7 +10,8 @@
# See the Mulan PSL v2 for more details.
set -e
opensslpath="$1/../../../third_party/openssl"
opensslpath="$1/openssl"
ln -s "${opensslpath}" ./
cd $opensslpath
@@ -18,7 +19,7 @@ cd $opensslpath
echo "before ./config "
./config
make include/crypto/dso_conf.h
cp "$1"/lib/teelib/libopenssl/include/opensslconf.h $opensslpath/include/openssl/
cp "$1"/lib/teelib/libopenssl/include/bn_conf.h $opensslpath/include/crypto/
patch -p1 < $1/lib/teelib/libopenssl/OpenSSL-customized-modification-unify.patch
cp "$2"/lib/teelib/libopenssl/include/opensslconf.h $opensslpath/include/openssl/
cp "$2"/lib/teelib/libopenssl/include/bn_conf.h $opensslpath/include/crypto/
patch -p1 < $2/lib/teelib/libopenssl/OpenSSL-customized-modification-unify.patch
+2 -1
View File
@@ -9,8 +9,9 @@
# PURPOSE.
# See the Mulan PSL v2 for more details.
set -e
cd "$1"/../../../third_party/openssl
cd "$1"/openssl
git checkout .
git clean -df
rm -rf $2"/lib/teelib/libopenssl/openssl
-1
View File
@@ -1 +0,0 @@
../../../../../../third_party/openssl/
@@ -437,13 +437,6 @@ static TEE_Result open_session_handle(struct init_build_param *init_param,
return ret;
}
static void recover_ta_params(uint32_t *param_type)
{
for (uint32_t i = 0; i < TEE_PARAMS_NUM; i++) {
uint32_t type = TEE_PARAM_TYPE_GET(*param_type, i);
}
}
static TEE_Result map_params(struct global_to_ta_msg *entry_msg, size_t *map_size, int32_t map_size_size,
uint64_t *map_addrs, int32_t map_addrs_size)
{
@@ -556,7 +549,6 @@ void tee_task_entry(uint32_t init_build, const struct ta_routine_info *append_ar
msg_send_elf(cmd, GLOBAL_HANDLE, &ret_msg, sizeof(ret_msg));
continue;
}
recover_ta_params(&(entry_msg.param_type));
}
switch (cmd) {
@@ -48,8 +48,8 @@ typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
typedef int64_t s64;
typedef uint64_t u64;
#ifndef VOID
#define VOID void
+3
View File
@@ -9,6 +9,8 @@
* PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#define _GNU_SOURCE
#include "tee_tag.h"
#include <securec.h>
@@ -16,6 +18,7 @@
#include "tee_mem_mgmt_api.h"
#include "tee_init.h"
#include <ipclib.h>
#include <spawn_ext.h>
#include <unistd.h>
#define DRIVER_TAG_MAX_LEN 25