1*4882a593Smuzhiyunifneq ($(filter rk312% rk322% rk3288 rk3328 rk3368 rk3399 rk3399pro px3 px5, $(TARGET_BOARD_PLATFORM)), ) 2*4882a593Smuzhiyun$(info 'building rk_tee_user v1') 3*4882a593Smuzhiyunelse 4*4882a593Smuzhiyun$(info 'building rk_tee_user v2') 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunLOCAL_PATH := $(call my-dir) 7*4882a593SmuzhiyunOPTEE_TEST_PATH := $(shell pwd)/$(LOCAL_PATH) 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun## include variants like TA_DEV_KIT_DIR 10*4882a593Smuzhiyun## and target of BUILD_OPTEE_OS 11*4882a593SmuzhiyunINCLUDE_FOR_BUILD_TA := false 12*4882a593Smuzhiyuninclude $(BUILD_OPTEE_MK) 13*4882a593SmuzhiyunINCLUDE_FOR_BUILD_TA := 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunVERSION = $(shell git describe --always --dirty=-dev 2>/dev/null || echo Unknown) 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun# TA_DEV_KIT_DIR must be set to non-empty value to 18*4882a593Smuzhiyun# avoid the Android build scripts complaining about 19*4882a593Smuzhiyun# includes pointing outside the Android source tree. 20*4882a593Smuzhiyun# This var is expected to be set when OPTEE OS built. 21*4882a593Smuzhiyun# We set the default value to an invalid path. 22*4882a593SmuzhiyunTA_DEV_KIT_DIR ?= $(OPTEE_TEST_PATH)/export-ta_arm32 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunOPTEE_CLIENT_PATH ?= $(LOCAL_PATH)/client_export 25*4882a593Smuzhiyun 26*4882a593Smuzhiyuninclude $(TA_DEV_KIT_DIR)/host_include/conf.mk 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunifeq (1,$(strip $(shell expr $(PLATFORM_VERSION) \>= 11))) 29*4882a593Smuzhiyunifeq ($(strip $(TARGET_ARCH)), arm64) 30*4882a593Smuzhiyun CLIENT_LIB_PATH ?= $(shell pwd)/hardware/rockchip/optee/v2/arm64 31*4882a593Smuzhiyunelse 32*4882a593Smuzhiyun CLIENT_LIB_PATH ?= $(shell pwd)/hardware/rockchip/optee/v2/arm 33*4882a593Smuzhiyunendif 34*4882a593Smuzhiyunelse 35*4882a593Smuzhiyunifeq ($(strip $(TARGET_ARCH)), arm64) 36*4882a593Smuzhiyun CLIENT_LIB_PATH ?= $(shell pwd)/vendor/rockchip/common/security/optee/v2/lib/arm64 37*4882a593Smuzhiyunelse 38*4882a593Smuzhiyun CLIENT_LIB_PATH ?= $(shell pwd)/vendor/rockchip/common/security/optee/v2/lib/arm 39*4882a593Smuzhiyunendif 40*4882a593Smuzhiyunendif 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun################################################################################ 43*4882a593Smuzhiyun# Build xtest # 44*4882a593Smuzhiyun################################################################################ 45*4882a593Smuzhiyuninclude $(CLEAR_VARS) 46*4882a593SmuzhiyunLOCAL_MODULE := xtest 47*4882a593SmuzhiyunLOCAL_VENDOR_MODULE := true 48*4882a593SmuzhiyunLOCAL_SHARED_LIBRARIES := libteec 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunTA_DIR ?= /vendor/lib/optee_armtz 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunsrcs := regression_1000.c 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunifeq ($(CFG_GP_SOCKETS),y) 55*4882a593Smuzhiyunsrcs += regression_2000.c \ 56*4882a593Smuzhiyun sock_server.c \ 57*4882a593Smuzhiyun rand_stream.c 58*4882a593Smuzhiyunendif 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunsrcs += adbg/src/adbg_case.c \ 61*4882a593Smuzhiyun adbg/src/adbg_enum.c \ 62*4882a593Smuzhiyun adbg/src/adbg_expect.c \ 63*4882a593Smuzhiyun adbg/src/adbg_log.c \ 64*4882a593Smuzhiyun adbg/src/adbg_run.c \ 65*4882a593Smuzhiyun adbg/src/security_utils_hex.c \ 66*4882a593Smuzhiyun aes_perf.c \ 67*4882a593Smuzhiyun benchmark_1000.c \ 68*4882a593Smuzhiyun benchmark_2000.c \ 69*4882a593Smuzhiyun regression_4000.c \ 70*4882a593Smuzhiyun regression_4100.c \ 71*4882a593Smuzhiyun regression_5000.c \ 72*4882a593Smuzhiyun regression_6000.c \ 73*4882a593Smuzhiyun regression_8000.c \ 74*4882a593Smuzhiyun regression_8100.c \ 75*4882a593Smuzhiyun sha_perf.c \ 76*4882a593Smuzhiyun stats.c \ 77*4882a593Smuzhiyun xtest_helpers.c \ 78*4882a593Smuzhiyun xtest_main.c \ 79*4882a593Smuzhiyun xtest_test.c \ 80*4882a593Smuzhiyun xtest_uuid_helpers.c 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y) 83*4882a593Smuzhiyunsrcs += install_ta.c 84*4882a593Smuzhiyunendif 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunifeq ($(CFG_SECURE_DATA_PATH),y) 87*4882a593Smuzhiyunsrcs += sdp_basic.c 88*4882a593Smuzhiyunendif 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunifeq ($(CFG_PKCS11_TA),y) 91*4882a593Smuzhiyunsrcs += pkcs11_1000.c 92*4882a593SmuzhiyunLOCAL_CFLAGS += -DCFG_PKCS11_TA 93*4882a593SmuzhiyunLOCAL_SHARED_LIBRARIES += libckteec 94*4882a593Smuzhiyunendif 95*4882a593Smuzhiyun 96*4882a593Smuzhiyundefine my-embed-file 97*4882a593Smuzhiyun$(TARGET_OUT_HEADERS)/$(1).h: $(LOCAL_PATH)/$(2) 98*4882a593Smuzhiyun @echo ' GEN $$@' 99*4882a593Smuzhiyun @$(LOCAL_PATH)/scripts/file_to_c.py --inf $$< --out $$@ --name $(1) 100*4882a593Smuzhiyun 101*4882a593SmuzhiyunLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_HEADERS)/$(1).h 102*4882a593Smuzhiyun 103*4882a593Smuzhiyunendef 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_ca_crt,cert/ca.crt)) 106*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_mid_crt,cert/mid.crt)) 107*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_my_crt,cert/my.crt)) 108*4882a593Smuzhiyun$(eval $(call my-embed-file,regression_8100_my_csr,cert/my.csr)) 109*4882a593Smuzhiyun 110*4882a593SmuzhiyunLOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs)) 111*4882a593Smuzhiyun 112*4882a593SmuzhiyunLOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \ 113*4882a593Smuzhiyun $(LOCAL_PATH)/host/xtest/adbg/include\ 114*4882a593Smuzhiyun $(LOCAL_PATH)/host/supp_plugin/include \ 115*4882a593Smuzhiyun $(LOCAL_PATH)/ta/include \ 116*4882a593Smuzhiyun $(LOCAL_PATH)/ta/create_fail_test/include \ 117*4882a593Smuzhiyun $(LOCAL_PATH)/ta/crypt/include \ 118*4882a593Smuzhiyun $(LOCAL_PATH)/ta/enc_fs/include \ 119*4882a593Smuzhiyun $(LOCAL_PATH)/ta/os_test/include \ 120*4882a593Smuzhiyun $(LOCAL_PATH)/ta/rpc_test/include \ 121*4882a593Smuzhiyun $(LOCAL_PATH)/ta/sims/include \ 122*4882a593Smuzhiyun $(LOCAL_PATH)/ta/miss/include \ 123*4882a593Smuzhiyun $(LOCAL_PATH)/ta/sims_keepalive/include \ 124*4882a593Smuzhiyun $(LOCAL_PATH)/ta/storage_benchmark/include \ 125*4882a593Smuzhiyun $(LOCAL_PATH)/ta/concurrent/include \ 126*4882a593Smuzhiyun $(LOCAL_PATH)/ta/concurrent_large/include \ 127*4882a593Smuzhiyun $(LOCAL_PATH)/ta/sha_perf/include \ 128*4882a593Smuzhiyun $(LOCAL_PATH)/ta/aes_perf/include \ 129*4882a593Smuzhiyun $(LOCAL_PATH)/ta/socket/include \ 130*4882a593Smuzhiyun $(LOCAL_PATH)/ta/sdp_basic/include \ 131*4882a593Smuzhiyun $(LOCAL_PATH)/ta/tpm_log_test/include \ 132*4882a593Smuzhiyun $(LOCAL_PATH)/ta/supp_plugin/include \ 133*4882a593Smuzhiyun $(OPTEE_CLIENT_PATH)/public 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun# Include configuration file generated by OP-TEE OS (CFG_* macros) 136*4882a593SmuzhiyunLOCAL_CFLAGS += -I $(TA_DEV_KIT_DIR)/host_include -include conf.h 137*4882a593SmuzhiyunLOCAL_CFLAGS += -pthread 138*4882a593SmuzhiyunLOCAL_CFLAGS += -g3 139*4882a593SmuzhiyunLOCAL_CFLAGS += -Wno-missing-field-initializers -Wno-format-zero-length 140*4882a593Smuzhiyun 141*4882a593Smuzhiyunifneq ($(TA_DIR),) 142*4882a593SmuzhiyunLOCAL_CFLAGS += -DTA_DIR=\"$(TA_DIR)\" 143*4882a593Smuzhiyunendif 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun## $(OPTEE_BIN) is the path of tee.bin like 146*4882a593Smuzhiyun## out/target/product/hikey/optee/arm-plat-hikey/core/tee.bin 147*4882a593Smuzhiyun## it will be generated after build the optee_os with target BUILD_OPTEE_OS 148*4882a593Smuzhiyun## which is defined in the common ta build mk file included before, 149*4882a593SmuzhiyunLOCAL_ADDITIONAL_DEPENDENCIES += $(OPTEE_BIN) 150*4882a593Smuzhiyun 151*4882a593Smuzhiyuninclude $(BUILD_EXECUTABLE) 152*4882a593Smuzhiyun################################################################################ 153*4882a593Smuzhiyun# Build rktest # 154*4882a593Smuzhiyun################################################################################ 155*4882a593Smuzhiyuninclude $(CLEAR_VARS) 156*4882a593SmuzhiyunLOCAL_CFLAGS += -DANDROID_BUILD -DUSER_SPACE 157*4882a593SmuzhiyunLOCAL_CFLAGS += -Wall -Wno-error 158*4882a593SmuzhiyunLOCAL_LDFLAGS += $(CLIENT_LIB_PATH)/libteec.so 159*4882a593SmuzhiyunLOCAL_LDFLAGS += -llog 160*4882a593Smuzhiyun 161*4882a593SmuzhiyunSRC_FILES_DIR := $(wildcard $(LOCAL_PATH)/host/rk_test/*.c) 162*4882a593SmuzhiyunLOCAL_SRC_FILES += $(SRC_FILES_DIR:$(LOCAL_PATH)/%=%) 163*4882a593Smuzhiyun 164*4882a593SmuzhiyunLOCAL_C_INCLUDES := $(LOCAL_PATH)/ta/rk_test/include \ 165*4882a593Smuzhiyun $(LOCAL_PATH)/host/rk_test/include \ 166*4882a593Smuzhiyun $(LOCAL_PATH)/export-ta_arm32/host_include \ 167*4882a593Smuzhiyun $(OPTEE_CLIENT_PATH)/public 168*4882a593Smuzhiyun 169*4882a593SmuzhiyunLOCAL_MODULE := rktest 170*4882a593SmuzhiyunLOCAL_MODULE_TAGS := optional 171*4882a593Smuzhiyunifeq (1,$(strip $(shell expr $(PLATFORM_VERSION) \>= 8))) 172*4882a593Smuzhiyun LOCAL_PROPRIETARY_MODULE := true 173*4882a593Smuzhiyunendif 174*4882a593Smuzhiyuninclude $(BUILD_EXECUTABLE) 175*4882a593Smuzhiyun 176*4882a593Smuzhiyuninclude $(LOCAL_PATH)/ta/Android.mk 177*4882a593Smuzhiyunendif