aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-security/optee-imx/optee-os-fslc.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-security/optee-imx/optee-os-fslc.inc')
-rw-r--r--recipes-security/optee-imx/optee-os-fslc.inc87
1 files changed, 87 insertions, 0 deletions
diff --git a/recipes-security/optee-imx/optee-os-fslc.inc b/recipes-security/optee-imx/optee-os-fslc.inc
new file mode 100644
index 00000000..b91a5531
--- /dev/null
+++ b/recipes-security/optee-imx/optee-os-fslc.inc
@@ -0,0 +1,87 @@
+# Copyright (C) 2017-2021 NXP
+
+SUMMARY = "OPTEE OS"
+DESCRIPTION = "OPTEE OS"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
+
+require optee-fslc.inc
+
+DEPENDS += "python3-pyelftools-native u-boot-mkimage-native"
+DEPENDS:append:toolchain-clang = " compiler-rt"
+
+inherit deploy autotools
+
+# 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 += " \
+ PLATFORM=imx-${PLATFORM_FLAVOR} \
+ CROSS_COMPILE=${HOST_PREFIX} \
+ CROSS_COMPILE64=${HOST_PREFIX} \
+ CFLAGS32=--sysroot=${STAGING_DIR_HOST} \
+ CFLAGS64=--sysroot=${STAGING_DIR_HOST} \
+ CFG_TEE_TA_LOG_LEVEL=0 \
+ CFG_TEE_CORE_LOG_LEVEL=0 \
+"
+
+EXTRA_OEMAKE:append:imx8mq-lpddr4-wevk = " \
+ CFG_CORE_LARGE_PHYS_ADDR=y \
+ CFG_CORE_ARM64_PA_BITS=36 \
+ CFG_DDR_SIZE=0x100000000 \
+ CFG_TZDRAM_START=0xfe000000 \
+"
+
+LDFLAGS[unexport] = "1"
+CPPFLAGS[unexport] = "1"
+AS[unexport] = "1"
+LD[unexport] = "1"
+
+do_configure[noexec] = "1"
+
+do_compile:prepend() {
+ PLAT_LIBGCC_PATH=$(${CC} -print-libgcc-file-name)
+}
+
+do_compile:arm () {
+ oe_runmake all uTee
+}
+
+do_compile:aarch64 () {
+ oe_runmake all
+}
+do_compile[cleandirs] = "${B}"
+
+do_deploy () {
+ install -d ${DEPLOYDIR}
+ cp ${B}/core/tee-raw.bin ${DEPLOYDIR}/tee.${PLATFORM_FLAVOR}.bin
+ ln -sf tee.${PLATFORM_FLAVOR}.bin ${DEPLOYDIR}/tee.bin
+}
+
+do_deploy:append:arm () {
+ cp ${B}/core/uTee ${DEPLOYDIR}/uTee-${OPTEE_BIN_EXT}
+}
+
+do_install () {
+ install -d ${D}${nonarch_base_libdir}/firmware/
+ install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
+
+ # Install embedded TAs
+ install -d ${D}${nonarch_base_libdir}/optee_armtz/
+ install -m 444 ${B}/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
+
+ # Install the TA devkit
+ install -d ${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
+ cp -aR ${B}/export-ta_${OPTEE_ARCH}/* \
+ ${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
+}
+
+addtask deploy after do_compile before do_install
+
+FILES:${PN} = "${nonarch_base_libdir}/firmware/ ${nonarch_base_libdir}/optee_armtz/"
+FILES:${PN}-staticdev = "${includedir}/optee/"
+RDEPENDS:${PN}-dev += "${PN}-staticdev"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"