aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-security/optee-qoriq
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-security/optee-qoriq')
-rw-r--r--recipes-security/optee-qoriq/optee-client-qoriq_3.13.0.bb5
-rw-r--r--recipes-security/optee-qoriq/optee-client.nxp.inc53
-rw-r--r--recipes-security/optee-qoriq/optee-client/tee-supplicant.service11
-rw-r--r--recipes-security/optee-qoriq/optee-os-qoriq_3.13.0.bb28
-rw-r--r--recipes-security/optee-qoriq/optee-os.nxp.inc75
-rw-r--r--recipes-security/optee-qoriq/optee-test-qoriq_3.13.0.bb13
-rw-r--r--recipes-security/optee-qoriq/optee-test.nxp.inc61
7 files changed, 246 insertions, 0 deletions
diff --git a/recipes-security/optee-qoriq/optee-client-qoriq_3.13.0.bb b/recipes-security/optee-qoriq/optee-client-qoriq_3.13.0.bb
new file mode 100644
index 00000000..94123e43
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-client-qoriq_3.13.0.bb
@@ -0,0 +1,5 @@
+require optee-client.nxp.inc
+
+PV:append = "+git${SRCPV}"
+
+COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-security/optee-qoriq/optee-client.nxp.inc b/recipes-security/optee-qoriq/optee-client.nxp.inc
new file mode 100644
index 00000000..a7d34497
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-client.nxp.inc
@@ -0,0 +1,53 @@
+# Copyright 2020-2021 NXP
+
+SUMMARY = "OPTEE Client libs"
+HOMEPAGE = "http://www.optee.org/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b"
+
+inherit python3native systemd
+
+SRC_URI = "git://github.com/nxp-qoriq/optee_client.git;protocol=https;nobranch=1"
+SRCREV = "7c9c423d00e96bf51debd5fe10fd70dce83be5cc"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/optee-client:"
+SRC_URI += "file://tee-supplicant.service"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+OPTEE_ARCH ?= "arm32"
+OPTEE_ARCH:armv7a = "arm32"
+OPTEE_ARCH:aarch64 = "arm64"
+
+EXTRA_OEMAKE = "ARCH=${OPTEE_ARCH} O=${B}"
+
+do_install () {
+ oe_runmake -C ${S} install
+
+ install -d ${D}${libdir}/
+ install -p -m0644 ${B}/export${libdir}/libteec.so.1.0.0 ${D}${libdir}/
+ ln -sf libteec.so.1.0.0 ${D}${libdir}/libteec.so.1.0
+ ln -sf libteec.so.1.0.0 ${D}${libdir}/libteec.so.1
+ ln -sf libteec.so.1 ${D}${libdir}/libteec.so
+
+ install -D -p -m0644 ${B}/export/usr/lib/libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0.1.0
+ ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0.1
+ ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so.0
+ ln -sf libckteec.so.0.1.0 ${D}${libdir}/libckteec.so
+
+ install -D -p -m0755 ${B}/export/usr/sbin/tee-supplicant ${D}${bindir}/tee-supplicant
+
+ cp -a ${B}/export/usr/include ${D}${includedir}
+
+ install -d ${D}${systemd_system_unitdir}/
+ install -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/
+ sed -i -e s:/etc:${sysconfdir}:g -e s:/usr/bin:${bindir}:g ${D}${systemd_system_unitdir}/tee-supplicant.service
+}
+
+SYSTEMD_SERVICE:${PN} = "tee-supplicant.service"
+
+FILES:${PN} += "${libdir}/* ${includedir}/*"
+
+INSANE_SKIP:${PN} = "ldflags dev-elf"
+INSANE_SKIP:${PN}-dev = "ldflags dev-elf"
diff --git a/recipes-security/optee-qoriq/optee-client/tee-supplicant.service b/recipes-security/optee-qoriq/optee-client/tee-supplicant.service
new file mode 100644
index 00000000..0e2b4f6b
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-client/tee-supplicant.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=TEE Supplicant
+
+[Service]
+User=root
+EnvironmentFile=-/etc/default/tee-supplicant
+ExecStart=/usr/bin/tee-supplicant $OPTARGS
+
+[Install]
+WantedBy=basic.target
+
diff --git a/recipes-security/optee-qoriq/optee-os-qoriq_3.13.0.bb b/recipes-security/optee-qoriq/optee-os-qoriq_3.13.0.bb
new file mode 100644
index 00000000..3c3652d3
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-os-qoriq_3.13.0.bb
@@ -0,0 +1,28 @@
+require optee-os.nxp.inc
+
+PV:append = "+git${SRCPV}"
+
+PLATFORM_FLAVOR:ls1088ardb-pb = "ls1088ardb"
+PLATFORM_FLAVOR:ls1046afrwy = "ls1046ardb"
+PLATFORM_FLAVOR:lx2162aqds = "lx2160aqds"
+
+EXTRA_OEMAKE += " \
+ PLATFORM=ls \
+ CFG_ARM64_core=y \
+"
+
+do_compile:append:ls1012afrwy() {
+ mv ${B}/core/tee-raw.bin ${B}/core/tee_512mb.bin
+ oe_runmake CFG_DRAM0_SIZE=0x40000000 all
+}
+
+do_install:append:qoriq() {
+ install -m 644 ${B}/core/tee-raw.bin ${D}${nonarch_base_libdir}/firmware/tee_${MACHINE}.bin
+}
+
+do_install:append:ls1012afrwy() {
+ install -m 644 ${B}/core/tee_512mb.bin ${D}${nonarch_base_libdir}/firmware/tee_${MACHINE}_512mb.bin
+}
+
+INHIBIT_PACKAGE_STRIP = "1"
+COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-security/optee-qoriq/optee-os.nxp.inc b/recipes-security/optee-qoriq/optee-os.nxp.inc
new file mode 100644
index 00000000..5b90b937
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-os.nxp.inc
@@ -0,0 +1,75 @@
+# Copyright 2020-2021 NXP
+
+SUMMARY = "OPTEE OS"
+DESCRIPTION = "OPTEE OS"
+HOMEPAGE = "http://www.optee.org/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
+
+inherit deploy python3native autotools
+DEPENDS = "python3-pycryptodome-native python3-pyelftools-native python3-pycryptodomex-native dtc-native"
+
+SRC_URI = "git://github.com/nxp-qoriq/optee_os.git;protocol=https;nobranch=1"
+SRCREV = "735d98806dc26fbeeecad7f5e60ffeab8170c67e"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build.${PLATFORM_FLAVOR}"
+
+PLATFORM_FLAVOR ?= "${MACHINE}"
+
+OPTEE_ARCH ?= "arm64"
+OPTEE_ARCH:armv7a = "arm32"
+OPTEE_ARCH:aarch64 = "arm64"
+
+OPTEE_CORE_LOG_LEVEL ?= "1"
+OPTEE_TA_LOG_LEVEL ?= "0"
+
+# Optee-os can be built for 32 bits and 64 bits at the same time
+# as long as the compilers are correctly defined.
+# For 64bits, CROSS_COMPILE64 must be set
+# When defining CROSS_COMPILE and CROSS_COMPILE64, we assure that
+# any 32 or 64 bits builds will pass
+EXTRA_OEMAKE = " \
+ -C ${S} O=${B} \
+ PLATFORM_FLAVOR=${PLATFORM_FLAVOR} \
+ CROSS_COMPILE=${HOST_PREFIX} \
+ CROSS_COMPILE64=${HOST_PREFIX} \
+ CFG_WERROR=y \
+ CFG_TEE_CORE_LOG_LEVEL=${OPTEE_CORE_LOG_LEVEL} \
+ CFG_TEE_TA_LOG_LEVEL=${OPTEE_TA_LOG_LEVEL} \
+"
+
+do_compile() {
+ unset LDFLAGS
+ export CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_HOST}"
+ oe_runmake all
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/
+ install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
+
+ # Install the TA devkit
+ install -d ${D}${includedir}/optee/export-user_ta/
+
+ for f in ${B}/export-ta_${OPTEE_ARCH}/*; do
+ cp -aR $f ${D}${includedir}/optee/export-user_ta/
+ done
+
+ install -d ${D}${nonarch_base_libdir}/optee_armtz
+ find ${B}/export-ta_${OPTEE_ARCH}/ta -name '*.ta' | while read name; do
+ install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
+ done
+}
+
+do_deploy() {
+ install -d ${DEPLOYDIR}/optee
+ install -m 644 ${D}${nonarch_base_libdir}/firmware/* ${DEPLOYDIR}/optee/
+}
+addtask deploy before do_build after do_install
+
+FILES:${PN} = "${nonarch_base_libdir}/firmware/ ${nonarch_base_libdir}/optee_armtz/"
+FILES:${PN}-staticdev = "/usr/include/optee/"
+RDEPENDS:${PN}-dev += "${PN}-staticdev"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-security/optee-qoriq/optee-test-qoriq_3.13.0.bb b/recipes-security/optee-qoriq/optee-test-qoriq_3.13.0.bb
new file mode 100644
index 00000000..69ef73d3
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-test-qoriq_3.13.0.bb
@@ -0,0 +1,13 @@
+require optee-test.nxp.inc
+
+PV:append = "+git${SRCPV}"
+
+DEPENDS += "optee-client-qoriq optee-os-qoriq"
+
+TEEC_EXPORT = "${STAGING_DIR_HOST}${prefix}"
+
+EXTRA_OEMAKE += " \
+ TEEC_EXPORT=${TEEC_EXPORT} \
+"
+
+COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-security/optee-qoriq/optee-test.nxp.inc b/recipes-security/optee-qoriq/optee-test.nxp.inc
new file mode 100644
index 00000000..14a42ac5
--- /dev/null
+++ b/recipes-security/optee-qoriq/optee-test.nxp.inc
@@ -0,0 +1,61 @@
+# Copyright 2020-2021 NXP
+
+SUMMARY = "OPTEE test"
+HOMEPAGE = "http://www.optee.org/"
+
+LICENSE = "BSD & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=daa2bcccc666345ab8940aab1315a4fa"
+
+DEPENDS = "python3-pycryptodome-native python3-pycryptodomex-native openssl"
+inherit python3native cmake
+
+SRC_URI = "git://github.com/nxp-qoriq/optee_test.git;protocol=https;nobranch=1"
+SRCREV = "69722dab8c1f2683e30e0ee3b536053367e37aad"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+TA_DEV_KIT_DIR ?= "${STAGING_INCDIR}/optee/export-user_ta"
+OPTEE_CLIENT_EXPORT ?= "${STAGING_DIR_HOST}${prefix}"
+
+EXTRA_OEMAKE = " \
+ TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
+ OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \
+ CROSS_COMPILE_HOST=${HOST_PREFIX} \
+ CROSS_COMPILE_TA=${HOST_PREFIX} \
+ OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}/ \
+ -C ${S} O=${B} \
+"
+
+EXTRA_OECMAKE = " \
+ -DOPTEE_TEST_SDK=${TA_DEV_KIT_DIR} \
+"
+
+do_compile() {
+ export CXXFLAGS="${CXXFLAGS} --sysroot=${STAGING_DIR_HOST}"
+ oe_runmake xtest
+ oe_runmake ta
+ oe_runmake test_plugin
+}
+
+do_install() {
+ install -d ${D}${bindir}/
+ install ${B}/xtest/xtest ${D}${bindir}/
+
+ install -d ${D}${nonarch_base_libdir}/optee_armtz
+ find ${B}/ta -name '*.ta' | while read name; do
+ install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
+ done
+
+ install -d ${D}${libdir}/tee-supplicant/plugins/
+ find ${B}/supp_plugin -name '*.plugin' | while read name; do
+ install -m 755 $name ${D}${libdir}/tee-supplicant/plugins/
+ done
+}
+
+FILES:${PN} += "${nonarch_base_libdir} ${libdir}/tee-supplicant/plugins/"
+
+DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized -Wno-deprecated-declarations"
+FULL_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized -Wno-deprecated-declarations"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"