aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAymeric Aillet <aymeric.aillet@iot.bzh>2019-09-20 16:48:04 +0200
committerStephane Desneux <stephane.desneux@iot.bzh>2020-05-19 18:57:44 +0000
commit88d94ef02988376c22bf493e40ba339b2572236e (patch)
tree1cdcd718945da1ab555883197fdb6d60fdeb1ce0
parenta9eb8fa93867b8012e0e2d520961221a2a3ffffa (diff)
[Community] Add optee packages recipes
Allow us to use the xtest suite and examples in order to test the functionning of optee. More information on the optee official website. Add a user-app example. Allow us to build a custom app working in both optee side. Fix optee examples recipe. Allow us to to access functions from examples TA's from other apps. BUG-AGL: SPEC-3030 Change-Id: I28f2c117dfa7a66ef2ebc0ede2ec32d7b218b549 Signed-off-by: Aymeric Aillet <aymeric.aillet@iot.bzh>
-rw-r--r--meta-rcar-gen3/recipes-bsp/optee/optee-examples/0001-secure_storage-ta-Add-a-missing-include-file.patch29
-rw-r--r--meta-rcar-gen3/recipes-bsp/optee/optee-examples_git.bb61
-rw-r--r--meta-rcar-gen3/recipes-bsp/optee/optee-test/optee_xtest_fix.diff13
-rw-r--r--meta-rcar-gen3/recipes-bsp/optee/optee-test_git.bb55
-rw-r--r--meta-rcar-gen3/recipes-bsp/optee/optee-user-app-template_git.bb57
5 files changed, 215 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-examples/0001-secure_storage-ta-Add-a-missing-include-file.patch b/meta-rcar-gen3/recipes-bsp/optee/optee-examples/0001-secure_storage-ta-Add-a-missing-include-file.patch
new file mode 100644
index 0000000..7627a06
--- /dev/null
+++ b/meta-rcar-gen3/recipes-bsp/optee/optee-examples/0001-secure_storage-ta-Add-a-missing-include-file.patch
@@ -0,0 +1,29 @@
+From be7079678aeb1503e0f681d977c47c44fd7b4f8c Mon Sep 17 00:00:00 2001
+From: Pierre Marzin <pierre.marzin@iot.bzh>
+Date: Mon, 19 Aug 2019 09:33:17 +0000
+Subject: [PATCH] secure_storage: ta: Add a missing include file
+
+The commit 9890a50d3c26b377dcb27f5db680018e15a5a3de fix a size type by
+using a format macro contant 'PRIu32' into a printf. This needs the
+inttypes.h header file to build correctly with aarch64-linux-gnu-gcc.
+
+Signed-off-by: Pierre Marzin <pierre.marzin@iot.bzh>
+---
+ secure_storage/ta/secure_storage_ta.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/secure_storage/ta/secure_storage_ta.c b/secure_storage/ta/secure_storage_ta.c
+index 3ccc12d..cfdfbb6 100644
+--- a/secure_storage/ta/secure_storage_ta.c
++++ b/secure_storage/ta/secure_storage_ta.c
+@@ -28,6 +28,7 @@
+ #include <secure_storage_ta.h>
+ #include <tee_internal_api.h>
+ #include <tee_internal_api_extensions.h>
++#include <inttypes.h>
+
+ static TEE_Result delete_object(uint32_t param_types, TEE_Param params[4])
+ {
+--
+2.11.0
+
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-examples_git.bb b/meta-rcar-gen3/recipes-bsp/optee/optee-examples_git.bb
new file mode 100644
index 0000000..ccfe3fe
--- /dev/null
+++ b/meta-rcar-gen3/recipes-bsp/optee/optee-examples_git.bb
@@ -0,0 +1,61 @@
+SUMMARY = "OP-TEE examples"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=cd95ab417e23b94f381dafc453d70c30"
+
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit pythonnative
+
+PV = "3.6.0+git${SRCPV}"
+
+SRCREV = "292da2fd8db0176e0e96989268c63ef9ab910a6c"
+
+SRC_URI = " \
+ git://github.com/linaro-swg/optee_examples;branch=master;name=master \
+ file://0001-secure_storage-ta-Add-a-missing-include-file.patch \
+"
+
+COMPATIBLE_MACHINE = "(salvator-x|h3ulcb|m3ulcb|m3nulcb|ebisu)"
+PLATFORM = "rcar"
+
+DEPENDS = "optee-os optee-client python-pycrypto-native"
+
+CFLAGS += "-Wno-extra -Wno-error=format"
+TARGET_CFLAGS += "-Wno-extra -Wno-error=format"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+INSANE_SKIP_${PN} = "ldflags"
+
+TA_DEV_KIT_DIR = "${STAGING_DIR_TARGET}/usr/share/optee/export-ta_arm64"
+
+OPTEE_CLIENT_EXPORT = "${STAGING_DIR_TARGET}/usr"
+
+TEEC_EXPORT = "${STAGING_DIR_TARGET}/usr"
+
+S = "${WORKDIR}/git"
+EXTRA_OEMAKE = "\
+ TEEC_EXPORT=${TEEC_EXPORT} \
+ OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \
+ TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
+ HOST_CROSS_COMPILE=${TARGET_PREFIX} \
+ TA_CROSS_COMPILE=${TARGET_PREFIX} \
+ PLATFORM=${PLATFORM} \
+ V=1 \
+ "
+
+do_compile() {
+ oe_runmake
+}
+
+do_install () {
+ mkdir -p ${D}${nonarch_base_libdir}/optee_armtz
+ mkdir -p ${D}${bindir}
+ install -D -p -m0755 ${S}/out/ca/* ${D}${bindir}
+ install -D -p -m0444 ${S}/out/ta/* ${D}${nonarch_base_libdir}/optee_armtz
+ mkdir -p ${D}${includedir}
+ cp ${S}/hello_world/ta/include/* ${D}${includedir}
+}
+
+FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-test/optee_xtest_fix.diff b/meta-rcar-gen3/recipes-bsp/optee/optee-test/optee_xtest_fix.diff
new file mode 100644
index 0000000..5067086
--- /dev/null
+++ b/meta-rcar-gen3/recipes-bsp/optee/optee-test/optee_xtest_fix.diff
@@ -0,0 +1,13 @@
+diff --git a/host/xtest/regression_6000.c b/host/xtest/regression_6000.c
+index 336ea14..2379e43 100644
+--- a/host/xtest/regression_6000.c
++++ b/host/xtest/regression_6000.c
+@@ -82,6 +82,8 @@ static uint32_t fs_id_for_tee_storage_private(void)
+ return TEE_STORAGE_PRIVATE_REE;
+ #elif defined(CFG_RPMB_FS)
+ return TEE_STORAGE_PRIVATE_RPMB;
++#else
++ return TEE_STORAGE_PRIVATE;
+ #endif
+ }
+
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-test_git.bb b/meta-rcar-gen3/recipes-bsp/optee/optee-test_git.bb
new file mode 100644
index 0000000..ea58e24
--- /dev/null
+++ b/meta-rcar-gen3/recipes-bsp/optee/optee-test_git.bb
@@ -0,0 +1,55 @@
+DESCRIPTION = "OP-TEE TEST"
+
+LICENSE = "GPLv2 & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://${S}/host/LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit pythonnative
+
+PV = "3.1.0+git${SRCPV}"
+
+SRCREV = "45218eb59b006ad20cc7610904f291dd85157a43"
+
+SRC_URI = " \
+ git://github.com/OP-TEE/optee_test.git;branch=master;name=master \
+ file://optee_xtest_fix.diff \
+"
+
+COMPATIBLE_MACHINE = "(salvator-x|h3ulcb|m3ulcb|m3nulcb|ebisu)"
+PLATFORM = "rcar"
+
+DEPENDS = "optee-os optee-client python-pycrypto-native"
+
+export CROSS_COMPILE64="${TARGET_PREFIX}"
+
+# Let the Makefile handle setting up the flags as it is a standalone application
+LD[unexport] = "1"
+LDFLAGS[unexport] = "1"
+export CCcore="${CC}"
+export LDcore="${LD}"
+libdir[unexport] = "1"
+
+CFLAGS += "-Wno-extra -Wno-error=stringop-overflow -Wno-error=array-bounds"
+TARGET_CFLAGS += "-Wno-extra -Wno-error=stringop-overflow -Wno-error=array-bounds"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+INSANE_SKIP_${PN} = "ldflags"
+
+S = "${WORKDIR}/git"
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_compile() {
+ oe_runmake CROSS_COMPILE=${CROSS_COMPILE64} PLATFORM=${PLATFORM} OPTEE_CLIENT_EXPORT=${STAGING_DIR_TARGET}/usr --no-builtin-variables TA_DEV_KIT_DIR="${STAGING_DIR_TARGET}/usr/share/optee/export-ta_arm64"
+}
+
+do_install () {
+ install -D -p -m0755 ${S}/out/xtest/xtest ${D}${bindir}/xtest
+
+ # install path should match the value set in optee-client/tee-supplicant
+ # default TEEC_LOAD_PATH is /lib
+ mkdir -p ${D}${nonarch_base_libdir}/optee_armtz/
+ install -D -p -m0444 ${S}/out/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
+}
+
+FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-user-app-template_git.bb b/meta-rcar-gen3/recipes-bsp/optee/optee-user-app-template_git.bb
new file mode 100644
index 0000000..8d45a3c
--- /dev/null
+++ b/meta-rcar-gen3/recipes-bsp/optee/optee-user-app-template_git.bb
@@ -0,0 +1,57 @@
+SUMMARY = "OP-TEE user_app_template"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=cd95ab417e23b94f381dafc453d70c30"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit pythonnative
+
+PV = "0.1+git${SRCPV}"
+
+SRCREV = "0.1"
+
+SRC_URI = " \
+ git://github.com/iotbzh/optee_user_app_template;branch=master \
+"
+
+COMPATIBLE_MACHINE = "(salvator-x|h3ulcb|m3ulcb|m3nulcb|ebisu)"
+PLATFORM = "rcar"
+
+DEPENDS = "optee-os optee-client python-pycrypto-native"
+
+CFLAGS += "-Wno-extra -Wno-error=format"
+TARGET_CFLAGS += "-Wno-extra -Wno-error=format"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+INSANE_SKIP_${PN} = "ldflags"
+
+TA_DEV_KIT_DIR = "${STAGING_DIR_TARGET}/usr/share/optee/export-ta_arm64"
+
+OPTEE_CLIENT_EXPORT = "${STAGING_DIR_TARGET}/usr"
+
+TEEC_EXPORT = "${STAGING_DIR_TARGET}/usr"
+
+S = "${WORKDIR}/git"
+EXTRA_OEMAKE = "\
+ TEEC_EXPORT=${TEEC_EXPORT} \
+ OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \
+ TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
+ HOST_CROSS_COMPILE=${TARGET_PREFIX} \
+ TA_CROSS_COMPILE=${TARGET_PREFIX} \
+ PLATFORM=${PLATFORM} \
+ V=1 \
+ "
+
+do_compile() {
+ oe_runmake
+}
+
+do_install () {
+ mkdir -p ${D}${nonarch_base_libdir}/optee_armtz
+ mkdir -p ${D}${bindir}
+ install -D -p -m0755 ${S}/out/ca/* ${D}${bindir}
+ install -D -p -m0444 ${S}/out/ta/* ${D}${nonarch_base_libdir}/optee_armtz
+}
+
+FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"