summaryrefslogtreecommitdiffstats
path: root/recipes-security/optee-imx/optee-os_3.17.0.imx.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-security/optee-imx/optee-os_3.17.0.imx.bb')
-rw-r--r--recipes-security/optee-imx/optee-os_3.17.0.imx.bb105
1 files changed, 105 insertions, 0 deletions
diff --git a/recipes-security/optee-imx/optee-os_3.17.0.imx.bb b/recipes-security/optee-imx/optee-os_3.17.0.imx.bb
new file mode 100644
index 00000000..93e0ff6e
--- /dev/null
+++ b/recipes-security/optee-imx/optee-os_3.17.0.imx.bb
@@ -0,0 +1,105 @@
1# Copyright (C) 2017-2021 NXP
2
3SUMMARY = "OPTEE OS"
4DESCRIPTION = "OPTEE OS"
5HOMEPAGE = "http://www.optee.org/"
6LICENSE = "BSD-2-Clause"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
8
9DEPENDS = "python3-cryptography-native python3-pyelftools-native u-boot-mkimage-native"
10
11SRC_URI = "git://source.codeaurora.org/external/imx/imx-optee-os.git;protocol=https;branch=${SRCBRANCH}"
12SRCBRANCH = "lf-5.15.32_2.0.0"
13SRCREV = "984996422c25c99ebfc5194c1bb393028605bb0c"
14
15SRC_URI:append = " \
16 file://0008-no-warn-rwx-segments.patch \
17 "
18
19S = "${WORKDIR}/git"
20
21inherit deploy python3native autotools features_check
22
23REQUIRED_MACHINE_FEATURES = "optee"
24
25# The platform flavor corresponds to the Yocto machine without the leading 'i'.
26PLATFORM_FLAVOR = "${@d.getVar('MACHINE')[1:]}"
27PLATFORM_FLAVOR:imx6qdlsabresd = "mx6qsabresd"
28PLATFORM_FLAVOR:imx6qdlsabreauto = "mx6qsabreauto"
29PLATFORM_FLAVOR:imx6qpdlsolox = "mx6qsabresd"
30PLATFORM_FLAVOR:mx6ul-nxp-bsp = "mx6ulevk"
31PLATFORM_FLAVOR:mx6ull-nxp-bsp = "mx6ullevk"
32PLATFORM_FLAVOR:mx6ulz-nxp-bsp = "mx6ulzevk"
33PLATFORM_FLAVOR:mx8mq-nxp-bsp = "mx8mqevk"
34PLATFORM_FLAVOR:mx8mm-nxp-bsp = "mx8mmevk"
35PLATFORM_FLAVOR:mx8mn-nxp-bsp = "mx8mnevk"
36PLATFORM_FLAVOR:mx8mnul-nxp-bsp = "mx8mnevk"
37PLATFORM_FLAVOR:mx8mp-nxp-bsp = "mx8mpevk"
38PLATFORM_FLAVOR:mx8mpul-nxp-bsp = "mx8mpevk"
39PLATFORM_FLAVOR:mx8qm-nxp-bsp = "mx8qmmek"
40PLATFORM_FLAVOR:mx8qxp-nxp-bsp = "mx8qxpmek"
41PLATFORM_FLAVOR:mx8dx-nxp-bsp = "mx8dxmek"
42PLATFORM_FLAVOR:mx8dxl-nxp-bsp = "mx8dxlevk"
43PLATFORM_FLAVOR:mx8ulp-nxp-bsp = "mx8ulpevk"
44
45OPTEE_ARCH:arm = "arm32"
46OPTEE_ARCH:aarch64 = "arm64"
47
48# Optee-os can be built for 32 bits and 64 bits at the same time
49# as long as the compilers are correctly defined.
50# For 64bits, CROSS_COMPILE64 must be set
51# When defining CROSS_COMPILE and CROSS_COMPILE64, we assure that
52# any 32 or 64 bits builds will pass
53EXTRA_OEMAKE = " \
54 PLATFORM=imx-${PLATFORM_FLAVOR} \
55 CROSS_COMPILE=${HOST_PREFIX} \
56 CROSS_COMPILE64=${HOST_PREFIX} \
57 CFG_TEE_TA_LOG_LEVEL=0 \
58 CFG_TEE_CORE_LOG_LEVEL=0 \
59 OPENSSL_MODULES=${STAGING_LIBDIR_NATIVE}/ossl-modules \
60 -C ${S} O=${B} \
61"
62
63LDFLAGS = ""
64CFLAGS += "--sysroot=${STAGING_DIR_HOST}"
65CXXFLAGS += "--sysroot=${STAGING_DIR_HOST}"
66
67do_deploy () {
68 install -d ${DEPLOYDIR}
69 cp ${B}/core/tee-raw.bin ${DEPLOYDIR}/tee.${PLATFORM_FLAVOR}.bin
70 ln -sf tee.${PLATFORM_FLAVOR}.bin ${DEPLOYDIR}/tee.bin
71
72 if [ "${OPTEE_ARCH}" != "arm64" ]; then
73 IMX_LOAD_ADDR=`${TARGET_PREFIX}readelf -h ${B}/core/tee.elf | grep "Entry point address" | awk '{print $4}'`
74 uboot-mkimage -A arm -O linux -C none -a ${IMX_LOAD_ADDR} -e ${IMX_LOAD_ADDR} \
75 -d ${DEPLOYDIR}/tee.${PLATFORM_FLAVOR}.bin ${DEPLOYDIR}/uTee-${OPTEE_BIN_EXT}
76 fi
77}
78
79do_install () {
80 install -d ${D}${nonarch_base_libdir}/firmware/
81 install -m 644 ${B}/core/*.bin ${D}${nonarch_base_libdir}/firmware/
82
83 # Install the TA devkit
84 install -d ${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
85
86 for f in ${B}/export-ta_${OPTEE_ARCH}/*; do
87 cp -aR $f ${D}${includedir}/optee/export-user_ta_${OPTEE_ARCH}/
88 done
89
90 # Install embedded TAs
91 install -d ${D}${nonarch_base_libdir}/optee_armtz
92 find ${B}/ta -name '*.ta' | while read name; do
93 install -m 444 $name ${D}${nonarch_base_libdir}/optee_armtz/
94 done
95}
96
97addtask deploy after do_compile before do_install
98
99
100FILES:${PN} = "${nonarch_base_libdir}/firmware/ ${nonarch_base_libdir}/optee_armtz/"
101FILES:${PN}-staticdev = "${includedir}/optee/"
102RDEPENDS:${PN}-dev += "${PN}-staticdev"
103
104PACKAGE_ARCH = "${MACHINE_ARCH}"
105COMPATIBLE_MACHINE = "(imx-nxp-bsp)"