[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-mediatek-trustonic/LICENSE b/meta/meta-mediatek-trustonic/LICENSE
new file mode 100644
index 0000000..7d4bcac
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/LICENSE
@@ -0,0 +1,3 @@
+All metadata is MediaTekProprietary licensed unless otherwise stated. Source code included
+in tree for individual recipes is under the LICENSE stated in the associated
+recipe (.bb file) unless otherwise stated.
diff --git a/meta/meta-mediatek-trustonic/conf/layer.conf b/meta/meta-mediatek-trustonic/conf/layer.conf
new file mode 100644
index 0000000..0ff876d
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/conf/layer.conf
@@ -0,0 +1,11 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "mediatek-trustonic "
+BBFILE_PATTERN_mediatek-trustonic = "^${LAYERDIR}/"
+BBFILE_PRIORITY_mediatek-trustonic = "20"
+
diff --git a/meta/meta-mediatek-trustonic/recipes-bsp/trustzone/tee-tbase_410.bb b/meta/meta-mediatek-trustonic/recipes-bsp/trustzone/tee-tbase_410.bb
new file mode 100644
index 0000000..0d76f19
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-bsp/trustzone/tee-tbase_410.bb
@@ -0,0 +1,23 @@
+inherit deploy trustzone-build
+
+SUMMARY = "Trustonic TEE"
+DESCRIPTION = "Trustonic TEE Image"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TZ_SRC}/${TEE_INSTALL_MODE}/LICENSE;md5=01565a2a43f925a7824e834940d1ce23"
+
+TRUSTONIC_RELEASED_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_RELEASE_VER}"
+TZ_SRC = "${TRUSTONIC_RELEASED_DIR}/SecureIntegration/t-base/Bin/MobiCore/MT6752_STD"
+TZ_PREBUILT = "${TOPDIR}/../prebuilt/bsp/trustzone"
+TBASE_RAW_BINARY = "${TZ_SRC}/${TEE_INSTALL_MODE}/t-base.img.raw"
+TBASE_BINARY = "${TZ_SRC}/${TEE_INSTALL_MODE}/t-base.img"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}/trustzone"
+do_compile[nostamp] = "1"
+
+do_deploy () {
+ install -d ${DEPLOYDIR}
+ install ${TBASE_BINARY} ${DEPLOYDIR}/${TRUSTEDOS_RAW_BINARY}
+ install ${TBASE_BINARY} ${DEPLOYDIR}/${TRUSTEDOS_SIGNED_BINARY}
+}
+
+addtask deploy before do_build after do_install
diff --git a/meta/meta-mediatek-trustonic/recipes-devtools/gcc/gcc-arm-eabi-7.1.bb b/meta/meta-mediatek-trustonic/recipes-devtools/gcc/gcc-arm-eabi-7.1.bb
new file mode 100644
index 0000000..43db0e7
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-devtools/gcc/gcc-arm-eabi-7.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "GNU cc and gcc C compilers"
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://../gcc-linaro-7.1.1-2017.08-x86_64_arm-eabi/share/doc/libiberty.html;md5=d9556fd49cfed3af8bca76ce3388c14c"
+
+TOOLCHAIN_NAME = "gcc-linaro-7.1.1-2017.08-x86_64_arm-eabi"
+SRC_URI = "https://releases.linaro.org/components/toolchain/binaries/7.1-2017.08/arm-eabi/gcc-linaro-7.1.1-2017.08-x86_64_arm-eabi.tar.xz;name=gcc-linaro-7.1.1"
+
+SRC_URI[gcc-linaro-7.1.1.md5sum] = "2f420d18a562770a51a82fa16028ed7f"
+SRC_URI[gcc-linaro-7.1.1.sha256sum] = "8b27dc37722b9cf3cb328922f8457225843a7fc8b8575d2567f5ce7f723a9f63"
+
+do_unpack[nostamp] = "1"
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/caCryptoCatalogGP.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/caCryptoCatalogGP.bb
new file mode 100644
index 0000000..e543ead
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/caCryptoCatalogGP.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Trustonic trusted application crypto benchmark connector"
+DESCRIPTION = "Trustonic trusted client application crypto benchmark"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TA_DIR}/CryptoCatalog_GP/CACryptoCatalog/LICENSE;md5=3236f9493c79388a550c1c3d483b9f1f"
+
+TRUSTONIC_BASE_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_VER}"
+TA_DIR = "${TRUSTONIC_BASE_DIR}/trustlets"
+OECMAKE_SOURCEPATH = "${TA_DIR}/CryptoCatalog_GP/CACryptoCatalog/Locals/Code"
+INC_DIR = "${TA_DIR}/CryptoCatalog_GP/TACryptoCatalog/Out/Public"
+DEPENDS += " trustonic-tee-clientlib "
+INSANE_SKIP_${PN} += "file-rdeps"
+
+inherit cmake
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${bindir}/caCryptoCatalog"
+
+EXTRA_OECMAKE += " -DTEE_VERSION=${PV} "
+EXTRA_OECMAKE += " -DINCLUDE_DIRS=${INC_DIR}"
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSec.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSec.bb
new file mode 100644
index 0000000..ccbe90b
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSec.bb
@@ -0,0 +1,34 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR SEC"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/sec/Drsec"
+
+TA_UUID="05120000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.drbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ "
+
+do_compile_prepend(){
+ mkdir -p ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}
+ mkdir -p ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}
+ cp -f ${DR_SRC}/${MODE}/drsec.axf ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}
+ cp -f ${DR_SRC}/${MODE}/drsec.lib ${OUTPUT_ROOT}/${TOOLCHAIN}
+}
+
+do_compile() {
+ oe_runmake -C ${DR_SRC} -f makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${TA_UUID}.drbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSecHw.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSecHw.bb
new file mode 100644
index 0000000..4e57e16
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSecHw.bb
@@ -0,0 +1,38 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR Secure Hardware"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/hsm/DrSecHw"
+
+TA_UUID="087e0000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.drbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += " drSec drUtils "
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+DRUTILS_OUT_DIR = "${OUTPUT_ROOT}/../drUtils/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRUTILS_OUT_DIR=${DRUTILS_OUT_DIR}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${DR_SRC} -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${TA_UUID}.drbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSpi.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSpi.bb
new file mode 100644
index 0000000..8eb57d7
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drSpi.bb
@@ -0,0 +1,35 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR SPI"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/spi/DrSpi"
+COMP_PATH_drsec = "${TA_DIR}/sec/Drsec"
+
+TA_UUID="030b0000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.drbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += " drSec drUtils "
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ 'COMP_PATH_drsec=${COMP_PATH_drsec}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${DR_SRC} -f Locals/Code/makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${TA_UUID}.drbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUart.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUart.bb
new file mode 100644
index 0000000..eb6d4d1
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUart.bb
@@ -0,0 +1,37 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR UART"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/uart/DrUart"
+
+TA_UUID="066e0000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.drbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += " drSec drUtils "
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${DR_SRC} -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${TA_UUID}.drbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUtils.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUtils.bb
new file mode 100644
index 0000000..f2154a3
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/drUtils.bb
@@ -0,0 +1,28 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR UTILS"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/utils/DrUtils"
+
+TA_UUID="020f0000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.drbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${DR_SRC} -f Locals/Code/makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${TA_UUID}.drbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/taCryptoCatalogGP.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/taCryptoCatalogGP.bb
new file mode 100644
index 0000000..c270601
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/taCryptoCatalogGP.bb
@@ -0,0 +1,31 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TEE benchmark tool"
+DESCRIPTION = "Trustonic TEE benchmark tool"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TA_SRC}/LICENSE;md5=3236f9493c79388a550c1c3d483b9f1f"
+
+TA_DIR = "${TRUSTONIC_BASE_DIR}/trustlets"
+TA_SRC = "${TA_DIR}/CryptoCatalog_GP/TACryptoCatalog"
+
+TA_UUID="78ecdb21731651a2a74fee5bf3749fd1"
+MODE = "Release"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tabin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ "
+do_compile() {
+ oe_runmake -C ${TA_SRC}/ -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tabin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/ta_env.inc b/meta/meta-mediatek-trustonic/recipes-trustonic/app/ta_env.inc
new file mode 100644
index 0000000..e6ebec5
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/ta_env.inc
@@ -0,0 +1,46 @@
+SUMMARY = "Trust Application Setup"
+DESCRIPTION = "Environement and toolchain setup for trustonic TA"
+
+GCC_VERSION = "7.1"
+
+#TRUSTONIC_BASE_DIR is depreated, will be removed.
+TRUSTONIC_BASE_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_VER}"
+TRUSTONIC_RELEASED_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_RELEASE_VER}"
+TEE_HAL_SRC_DIR = "${TOPDIR}/../src/bsp/trustzone/common/hal/source/"
+TLSDK_DIR = "${TRUSTONIC_RELEASED_DIR}/t-base-dev-kit/t-sdk/TlSdk"
+TASDK_DIR_SRC = "${TRUSTONIC_RELEASED_DIR}/t-base-dev-kit/t-sdk/TlSdk"
+TASDK_DIR = "${TRUSTONIC_RELEASED_DIR}/t-base-dev-kit/t-sdk/TlSdk"
+DRSDK_DIR = "${TRUSTONIC_RELEASED_DIR}/t-base-dev-kit/t-sdk/DrSdk/Out"
+COMP_PATH_MobiConfig = "${TRUSTONIC_RELEASED_DIR}/SecureIntegration/tools/MobiConfig"
+PLATFORM = "ARM_V7A_STD"
+TOOLCHAIN = "GNU"
+
+CROSS_GCC = "arm-eabi"
+CROSS_GCC_PATH = "${WORKDIR}/../../gcc-arm-eabi-7.1/1.0-r0/gcc-linaro-7.1.1-2017.08-x86_64_arm-eabi"
+
+CROSS_GCC_PATH_BIN = "${CROSS_GCC_PATH}/bin/$(CROSS_GCC)-"
+CROSS_GCC_PATH_INC = "${CROSS_GCC_PATH}/${CROSS_GCC}/include"
+CROSS_GCC_PATH_LIB = "${CROSS_GCC_PATH}/${CROSS_GCC}/lib"
+CROSS_GCC_PATH_LGCC = "${CROSS_GCC_PATH}/lib/gcc/${CROSS_GCC}/7.1.1"
+
+OUTPUT_ROOT = "${WORKDIR}/../../trustonic-app/trustlet/${PN}"
+PARALLEL_MAKE = ""
+
+DEPENDS += "gcc-${CROSS_GCC}-${GCC_VERSION}"
+
+do_compile[nostamp] = "1"
+EXTRA_OEMAKE = " \
+ 'TLSDK_DIR=${TLSDK_DIR}' \
+ 'TASDK_DIR_SRC=${TASDK_DIR_SRC}' \
+ 'TASDK_DIR=${TASDK_DIR_SRC}' \
+ 'DRSDK_DIR=${DRSDK_DIR}' \
+ 'COMP_PATH_MobiConfig=${COMP_PATH_MobiConfig}' \
+ 'TOOLCHAIN=${TOOLCHAIN}' \
+ 'CROSS_GCC_PATH_BIN=${CROSS_GCC_PATH_BIN}' \
+ 'CROSS_GCC_PATH_LIB=${CROSS_GCC_PATH_LIB}' \
+ 'CROSS_GCC_PATH_LGCC=${CROSS_GCC_PATH_LGCC}' \
+ 'CROSS_GCC_PATH_INC=${CROSS_GCC_PATH_INC}' \
+ 'OUTPUT_ROOT=${OUTPUT_ROOT}' \
+ "
+
+EXTRA_OEMAKE_append = " 'CROSS_GCC=${CROSS_GCC}' "
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tarpmb.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tarpmb.bb
new file mode 100644
index 0000000..1d8f38c
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tarpmb.bb
@@ -0,0 +1,37 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic RPMB TA"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+DR_SRC = "${TA_DIR}/rpmb_gp/Drrpmb"
+TA_SRC = "${TA_DIR}/rpmb_gp/Tlrpmb"
+
+DR_UUID="07150000000000000000000000000000"
+TA_UUID="06140000000000000000000000000000"
+
+MODE = "Release"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${DR_UUID}.tlbin"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tabin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DR_OUTPUT = "${OUTPUT_ROOT}/drrpmb"
+TA_OUTPUT = "${OUTPUT_ROOT}/tlrpmb"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ "
+
+do_compile() {
+ oe_runmake OUTPUT_ROOT=${DR_OUTPUT} -C ${DR_SRC}/ -f Locals/Code/makefile.mk
+ oe_runmake OUTPUT_ROOT=${TA_OUTPUT} -C ${TA_SRC}/ -f Locals/Code/makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${DR_OUTPUT}/${PLATFORM}/${TOOLCHAIN}/${MODE}/${DR_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${TA_OUTPUT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tabin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlCm.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlCm.bb
new file mode 100644
index 0000000..3341648
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlCm.bb
@@ -0,0 +1,28 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Content Management TA"
+DESCRIPTION = "Trustonic Content Management TA"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TA_SRC}/LICENSE;md5=3236f9493c79388a550c1c3d483b9f1f"
+
+TA_DIR = "${TRUSTONIC_BASE_DIR}/trustlets"
+TA_SRC = "${TA_DIR}/cm/TlCm"
+
+TA_UUID="07010000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ "
+do_compile() {
+ rm -rf ${OUTPUT_ROOT}/*
+ oe_runmake -C ${TA_SRC} -f makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlHsm.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlHsm.bb
new file mode 100644
index 0000000..69526ef
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlHsm.bb
@@ -0,0 +1,44 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR HSM"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}${TARGET_PLATFORM}/trustlets"
+TA_SRC = "${TA_DIR}/hsm/TlHsm"
+
+TA_UUID="07770000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += "drSec drUtils drSecHw "
+# DEPENDS += "drSec drUtils drHsm "
+
+# DRHSM_OUT_DIR = "${OUTPUT_ROOT}/../drHsm/${TOOLCHAIN}"
+DRSECHW_OUT_DIR = "${OUTPUT_ROOT}/../drSecHw/${TOOLCHAIN}"
+DRUTILS_OUT_DIR = "${OUTPUT_ROOT}/../drUtils/${TOOLCHAIN}"
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRSECHW_DIR=${TA_DIR}/hsm/DrSecHw' \
+ 'DRSECHW_OUT_DIR=${DRSECHW_OUT_DIR}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRUTILS_OUT_DIR=${DRUTILS_OUT_DIR}' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${TA_SRC} -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSampleRsa.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSampleRsa.bb
new file mode 100644
index 0000000..f6b30e9
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSampleRsa.bb
@@ -0,0 +1,31 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic TA Example"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TA_SRC}/LICENSE;md5=3236f9493c79388a550c1c3d483b9f1f"
+
+TA_DIR = "${TRUSTONIC_BASE_DIR}/trustlets"
+TA_SRC = "${TA_DIR}/sampleRsa/TlRsa"
+
+TA_UUID="07040000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ "
+do_compile() {
+ oe_runmake -C ${TA_SRC}/ -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSpi.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSpi.bb
new file mode 100644
index 0000000..e003172
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlSpi.bb
@@ -0,0 +1,38 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR SPI"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+TA_SRC = "${TA_DIR}/spi/TlSpi"
+
+TA_UUID="09150000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += " drSec drUtils drSpi "
+DRSPI_OUT_DIR = "${OUTPUT_ROOT}/../drSpi/${TOOLCHAIN}"
+DRUTILS_OUT_DIR = "${OUTPUT_ROOT}/../drUtils/${TOOLCHAIN}"
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRSPI_DIR=${TA_DIR}/spi/DrSpi' \
+ 'DRSPI_OUT_DIR=${DRSPI_OUT_DIR}' \
+ 'DRUTILS_OUT_DIR=${DRUTILS_OUT_DIR}' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${TA_SRC} -f Locals/Code/makefile.mk
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlTest.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlTest.bb
new file mode 100644
index 0000000..e1040e3
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlTest.bb
@@ -0,0 +1,39 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic Test Ta"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+TA_SRC = "${TA_DIR}/test/TlTest"
+
+TA_UUID="55670000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += "drSec drUtils "
+#DRSECHW_OUT_DIR = "${OUTPUT_ROOT}/../drSecHw/${TOOLCHAIN}"
+DRUTILS_OUT_DIR = "${OUTPUT_ROOT}/../drUtils/${TOOLCHAIN}"
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRUTILS_OUT_DIR=${DRUTILS_OUT_DIR}' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${TA_SRC} -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlUart.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlUart.bb
new file mode 100644
index 0000000..6cd9951
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlUart.bb
@@ -0,0 +1,42 @@
+require ta_env.inc
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic DR UART"
+LICENSE = "MediaTekProprietary"
+
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+TA_SRC = "${TA_DIR}/uart/TlUart"
+
+TA_UUID="066c0000000000000000000000000000"
+MODE = "Debug"
+FILES_${PN} += "/usr/share/trustonic_tee/registry/${TA_UUID}.tlbin"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+DEPENDS += "drSec drUtils drUart "
+DRUART_OUT_DIR = "${OUTPUT_ROOT}/../drUart/${TOOLCHAIN}"
+DRUTILS_OUT_DIR = "${OUTPUT_ROOT}/../drUtils/${TOOLCHAIN}"
+DRSEC_OUT_DIR = "${OUTPUT_ROOT}/../drSec/${TOOLCHAIN}"
+
+EXTRA_OEMAKE += " \
+ 'MODE=${MODE}' \
+ 'DRUART_DIR=${TA_DIR}/uart/DrUart' \
+ 'DRUART_OUT_DIR=${DRUART_OUT_DIR}' \
+ 'DRUTILS_DIR=${TA_DIR}/utils/DrUtils' \
+ 'DRUTILS_OUT_DIR=${DRUTILS_OUT_DIR}' \
+ 'DRSEC_OUT_DIR=${DRSEC_OUT_DIR}' \
+ 'TEELOADER_DIR=${TOPDIR}/../src/bsp/trustzone/teeloader/${TARGET_PLATFORM}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${TA_SRC} -f Locals/Code/makefile.mk
+}
+
+do_clean() {
+ rm -rf ${OUTPUT_ROOT}/*
+}
+
+do_install() {
+ install -d ${D}/usr/share/trustonic_tee/registry/
+ install -m 644 ${OUTPUT_ROOT}/${TOOLCHAIN}/${MODE}/${TA_UUID}.tlbin ${D}/usr/share/trustonic_tee/registry/
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcSampleRsa.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcSampleRsa.bb
new file mode 100644
index 0000000..39ef88e
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcSampleRsa.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Trustonic trusted application connector"
+DESCRIPTION = "Trustonic trusted application connector example"
+LICENSE = "Trustonic"
+LIC_FILES_CHKSUM = "file://${TA_DIR}/sampleRsa/TlcRsa/LICENSE;md5=3236f9493c79388a550c1c3d483b9f1f"
+
+TRUSTONIC_BASE_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_VER}"
+TA_DIR = "${TRUSTONIC_BASE_DIR}/trustlets"
+OECMAKE_SOURCEPATH = "${TA_DIR}/sampleRsa/TlcRsa/Locals/Code"
+INC_DIR = "${TA_DIR}/sampleRsa/TlRsa/Locals/Code/public"
+DEPENDS += " trustonic-tee-clientlib "
+INSANE_SKIP_${PN} += "file-rdeps"
+
+inherit cmake
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/libTlcSampleRsa.so"
+FILES_${PN} += "${bindir}/tlcSampleRsa"
+
+EXTRA_OECMAKE += " -DTEE_VERSION=${PV} "
+EXTRA_OECMAKE += " -DINCLUDE_DIRS=${INC_DIR} "
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcrpmb.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcrpmb.bb
new file mode 100644
index 0000000..e21bac8
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/app/tlcrpmb.bb
@@ -0,0 +1,32 @@
+inherit deploy
+
+SUMMARY = "Trustonic TA"
+DESCRIPTION = "Trustonic TA Example"
+LICENSE = "MediaTekProprietary"
+
+TEE_HAL_SRC_DIR = "${TOPDIR}/../src/bsp/trustzone/common/hal/source"
+TA_DIR = "${TEE_HAL_SRC_DIR}/${TARGET_PLATFORM}/trustlets"
+TA_SRC = "${TA_DIR}/rpmb_gp/Tlcrpmb"
+
+TRUSTONIC_RELEASED_DIR = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_RELEASE_VER}"
+TLCSDK_DIR = "${TRUSTONIC_RELEASED_DIR}/t-base-dev-kit/t-sdk/TlcSdk"
+
+FILES_${PN} += "${libdir}/libtlcRpmbLib.a"
+FILES_${PN} += "${bindir}/tlcrpmb"
+
+DEPENDS += " trustonic-tee-clientlib "
+INSANE_SKIP_${PN} += "file-rdeps"
+OUTPUT_ROOT = "${WORKDIR}/../../trustonic-app/trustlet/${PN}"
+
+EXTRA_OEMAKE = " \
+ 'OUTPUT_ROOT=${OUTPUT_ROOT}' \
+ 'TLCSDK_DIR=${TLCSDK_DIR}' \
+ "
+
+do_compile() {
+ oe_runmake -C ${TA_SRC}/ -f Locals/Code/makefile.mk
+}
+
+do_install() {
+ oe_runmake -C ${TA_SRC}/ -f Locals/Code/makefile.mk install PREFIX="${prefix}" DESTDIR="${D}" PACKAGE_ARCH="${PACKAGE_ARCH}" install
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/clientlib/trustonic-tee-clientlib_410.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/clientlib/trustonic-tee-clientlib_410.bb
new file mode 100644
index 0000000..416d0c4
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/clientlib/trustonic-tee-clientlib_410.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Mobicore Client Lib"
+DESCRIPTION = "Trustonic Mobicore Client Library"
+LICENSE = "Trustonic & BSD"
+LICENSE_${PN} = "BSD"
+LIC_FILES_CHKSUM = "file://${OECMAKE_SOURCEPATH}/NOTICE;md5=6b4732a3d90d3a68379dd8fd486fc559 \
+ file://${OECMAKE_SOURCEPATH}/MODULE_LICENSE_BSD;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+MOBICORE_SRC = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_RELEASE_VER}/LinuxIntegration/Src/mobicore"
+OECMAKE_SOURCEPATH = "${MOBICORE_SRC}/ClientLib"
+
+inherit cmake
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/libMcClient.so"
+
+EXTRA_OECMAKE += " -DTEE_VERSION=${PV} "
+EXTRA_OECMAKE += " -DLIBDIR=${libdir} "
+
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/init_teedaemon b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/init_teedaemon
new file mode 100644
index 0000000..5477810
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/init_teedaemon
@@ -0,0 +1,13 @@
+#!/bin/busybox sh
+
+echo "=== Initial: Mobicore Daemon Start ===" > /dev/kmsg
+
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/share/trustonic_tee/
+
+sync
+chmod 0600 /dev/mobicore
+/usr/bin/mcDriverDaemon -b -p /usr/share/trustonic_tee/registry/
+sync
+chmod 0666 /dev/mobicore-user
+
+echo "=== Initial: Mobicore Daemon End ===" > /dev/kmsg
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/tee-daemon.service b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/tee-daemon.service
new file mode 100644
index 0000000..f53ad81
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/files/trustonic/tee-daemon.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Trustonic TrustZone daemon
+After=init_usb.service
+
+[Service]
+Type=oneshot
+StandardOutput=kmsg+console
+RemainAfterExit=yes
+ExecStart=/bin/sh /usr/share/init/init_teedaemon
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon-service.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon-service.bb
new file mode 100644
index 0000000..e604bc1
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon-service.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Mobicore Daemon Service"
+DESCRIPTION = "Trustonic Mobicore Daemon Service"
+LICENSE = "Trustonic & BSD"
+LICENSE_${PN} = "BSD"
+LIC_FILES_CHKSUM = "file://${OECMAKE_SOURCEPATH}/NOTICE;md5=6b4732a3d90d3a68379dd8fd486fc559 \
+ file://${OECMAKE_SOURCEPATH}/MODULE_LICENSE_BSD;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+MOBICORE_SRC = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_VER}/mobicore"
+OECMAKE_SOURCEPATH = "${MOBICORE_SRC}/Daemon"
+
+SRC_URI = "file://trustonic"
+
+inherit systemd
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += " \
+ ${systemd_unitdir}/system/tee-daemon.service \
+ ${datadir}/init/init_teedaemon \
+ "
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+SYSTEMD_SERVICE_${PN} = "tee-daemon.service"
+
+do_install_append() {
+ install -d ${D}${datadir}/init
+ install -m 644 ${WORKDIR}/trustonic/init_teedaemon ${D}${datadir}/init/init_teedaemon
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/trustonic/tee-daemon.service ${D}${systemd_unitdir}/system/tee-daemon.service
+ fi
+}
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon_410.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon_410.bb
new file mode 100644
index 0000000..aa10735
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/daemon/trustonic-tee-daemon_410.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Mobicore Daemon"
+DESCRIPTION = "Trustonic Mobicore Daemon"
+LICENSE = "Trustonic & BSD"
+LICENSE_${PN} = "BSD"
+LIC_FILES_CHKSUM = "file://${OECMAKE_SOURCEPATH}/NOTICE;md5=6b4732a3d90d3a68379dd8fd486fc559 \
+ file://${OECMAKE_SOURCEPATH}/MODULE_LICENSE_BSD;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+MOBICORE_SRC = "${TOPDIR}/../src/bsp/trustzone/trustonic/${TARGET_PLATFORM}/${TBASE_RELEASE_VER}/LinuxIntegration/Src/mobicore"
+OECMAKE_SOURCEPATH = "${MOBICORE_SRC}/Daemon"
+
+inherit cmake
+
+DEPENDS="trustonic-tee-clientlib"
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/libMcRegistry.so"
+
+EXTRA_OECMAKE += " -DTEE_VERSION=${PV} "
+
+INSANE_SKIP_${PN} += "installed-vs-shipped"
diff --git a/meta/meta-mediatek-trustonic/recipes-trustonic/packagegroups/packagegroup-trustonic-app.bb b/meta/meta-mediatek-trustonic/recipes-trustonic/packagegroups/packagegroup-trustonic-app.bb
new file mode 100644
index 0000000..9248296
--- /dev/null
+++ b/meta/meta-mediatek-trustonic/recipes-trustonic/packagegroups/packagegroup-trustonic-app.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Trustonic Application"
+LICENSE = "Trustonic & BSD"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = " \
+ trustonic-tee-clientlib \
+ trustonic-tee-daemon \
+ trustonic-tee-daemon-service \
+"
+
+RDEPENDS_${PN} += " \
+ tlSampleRsa \
+ tlcSampleRsa \
+ tlCm \
+ ${@bb.utils.contains("PREFERRED_VERSION_tee-tbase", "401", "taCryptoCatalogGP", "", d)} \
+ ${@bb.utils.contains("PREFERRED_VERSION_tee-tbase", "401", "caCryptoCatalogGP", "", d)} \
+"