OPTEE-OS-STM32MP: v1.1.0 update

Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.com>
This commit is contained in:
Christophe Priouzeau 2019-10-09 11:28:43 +02:00
parent 3d3a8be098
commit 3329ceb81e
5 changed files with 2206 additions and 155 deletions

View File

@ -0,0 +1,51 @@
#
# Archiver Configuration
#
SRC_URI_append = " file://README.HOW_TO.txt "
inherit archiver
ARCHIVER_MODE[src] = "original"
COPYLEFT_LICENSE_INCLUDE_append = " BSD-3* "
inherit archiver_stm32mp_clean
archiver_create_makefile_for_sdk() {
mkdir -p ${ARCHIVER_OUTDIR}
#remove default variable
echo "LDFLAGS=" > ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CPPFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "LOCAL_PATH=\$(PWD)" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
#set default CONFIGURATION with configured OPTEE_CONF
if [ -n "${OPTEE_CONF}" ]; then
echo "PLATFORM ?= ${MACHINE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CFG_SECURE_DT ?= ${OPTEE_CONF}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
fi
echo -n "EXTRA_OEMAKE=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "${EXTRA_OEMAKE}" | sed "s|LIBGCC_LOCATE_CFLAGS=[^ ]* |LIBGCC_LOCATE_CFLAGS=\$(OECORE_NATIVE_SYSROOTK) |;s|comp-cflagscore='[^']*'|comp-cflagscore='\$(KCFLAGS)'|" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "all:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " if test -n \"\$(CFG_SECURE_DT)\" ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " for dt in \$(CFG_SECURE_DT) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/\$\$dt CFG_SECURE_DT=\$\$dt ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
# Copy binary files with explicit name
echo " cp ../build/\$\$dt/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ../build/${OPTEE_HEADER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/\$\$dt/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/\$\$dt/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGEABLE}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " done ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " else \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/ ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
# Copy binary files with explicit name
echo " cp ../build/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ../build/${OPTEE_HEADER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGEABLE}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " fi" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
}
do_ar_original[prefuncs] += "archiver_create_makefile_for_sdk"

View File

@ -0,0 +1,99 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/optee-os:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
B = "${WORKDIR}/build"
# Configure build dir for externalsrc class usage through devtool
EXTERNALSRC_BUILD_pn-${PN} = "${WORKDIR}/build"
DEPENDS += "dtc-native python-pycrypto-native"
inherit deploy pythonnative
OPTEEMACHINE ?= "${MACHINE}"
OPTEEOUTPUTMACHINE ?= "${MACHINE}"
EXTRA_OEMAKE = "PLATFORM=${OPTEEMACHINE} \
CROSS_COMPILE_core=${HOST_PREFIX} \
CROSS_COMPILE_ta_arm64=${HOST_PREFIX} \
${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'CFG_ARM64_core=y ta-targets=ta_arm64', 'CFG_ARM32_core=y CROSS_COMPILE_ta_arm32=${HOST_PREFIX}', d)} \
NOWERROR=1 \
LDFLAGS= \
LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \
"
EXTRA_OEMAKE += "CFG_TEE_CORE_LOG_LEVEL=2"
EXTRA_OEMAKE += "CFG_TEE_CORE_DEBUG=n"
EXTRA_OEMAKE += "comp-cflagscore='--sysroot=${STAGING_DIR_TARGET}'"
OPTEE_ARCH_armv7a = "arm32"
OPTEE_ARCH_armv7ve = "arm32"
OPTEE_ARCH_aarch64 = "arm64"
do_configure_prepend(){
chmod 755 ${S}/scripts/bin_to_c.py
}
do_compile() {
unset -v CFLAGS CPPFLAGS LDFLAGS LDADD
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
oe_runmake -C ${S} O=${B}/${conf} CFG_SECURE_DT=${conf}
done
else
oe_runmake -C ${S} O=${B}/out
fi
}
do_install() {
#install TA devkit
install -d ${D}${includedir}/optee/export-user_ta/
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
for f in ${B}/${conf}/export-ta_${OPTEE_ARCH}/* ; do
cp -aRf $f ${D}${includedir}/optee/export-user_ta/
done
done
fi
}
# Configure optee binaries
OPTEE_BOOTCHAIN = "optee"
OPTEE_HEADER = "tee-header_v2"
OPTEE_PAGEABLE = "tee-pageable_v2"
OPTEE_PAGER = "tee-pager_v2"
OPTEE_SUFFIX = "stm32"
# Output the ELF generated
ELF_DEBUG_ENABLE ?= ""
OPTEE_ELF = "tee"
OPTEE_ELF_SUFFIX = "elf"
do_deploy() {
install -d ${DEPLOYDIR}
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
install -m 644 ${B}/${conf}/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_HEADER}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/${conf}/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGER}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/${conf}/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGEABLE}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
if [ -n "${ELF_DEBUG_ENABLE}" ]; then
install -m 644 ${B}/${conf}/core/${OPTEE_ELF}.${OPTEE_ELF_SUFFIX} ${DEPLOYDIR}/${OPTEE_ELF}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_ELF_SUFFIX}
fi
done
else
install -m 644 ${B}/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_HEADER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGEABLE}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
if [ -n "${ELF_DEBUG_ENABLE}" ]; then
install -m 644 ${B}/core/${OPTEE_ELF}.${OPTEE_ELF_SUFFIX} ${DEPLOYDIR}/${OPTEE_ELF}-${OPTEE_BOOTCHAIN}.${OPTEE_ELF_SUFFIX}
fi
fi
}
addtask deploy before do_build after do_compile
FILES_${PN} = "${nonarch_base_libdir}/firmware/"
FILES_${PN}-dev = "/usr/include/optee"
INSANE_SKIP_${PN}-dev = "staticdev"
INHIBIT_PACKAGE_STRIP = "1"

View File

@ -1,145 +0,0 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/optee-os:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
B = "${WORKDIR}/build"
# Configure build dir for externalsrc class usage through devtool
EXTERNALSRC_BUILD_pn-${PN} = "${WORKDIR}/build"
DEPENDS += "dtc-native python-pycrypto-native"
inherit deploy pythonnative
OPTEEMACHINE ?= "${MACHINE}"
OPTEEOUTPUTMACHINE ?= "${MACHINE}"
EXTRA_OEMAKE = "PLATFORM=${OPTEEMACHINE} \
CROSS_COMPILE_core=${HOST_PREFIX} \
CROSS_COMPILE_ta_arm64=${HOST_PREFIX} \
${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'CFG_ARM64_core=y ta-targets=ta_arm64', 'CFG_ARM32_core=y CROSS_COMPILE_ta_arm32=${HOST_PREFIX}', d)} \
NOWERROR=1 \
LDFLAGS= \
LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \
"
EXTRA_OEMAKE += "CFG_TEE_CORE_LOG_LEVEL=2"
EXTRA_OEMAKE += "CFG_TEE_CORE_DEBUG=n"
EXTRA_OEMAKE += "comp-cflagscore='--sysroot=${STAGING_DIR_TARGET}'"
OPTEE_ARCH_armv7a = "arm32"
OPTEE_ARCH_armv7ve = "arm32"
OPTEE_ARCH_aarch64 = "arm64"
do_compile() {
unset -v CFLAGS CPPFLAGS LDFLAGS LDADD
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
oe_runmake -C ${S} O=${B}/${conf} CFG_SECURE_DT=${conf}
done
else
oe_runmake -C ${S} O=${B}/out
fi
}
do_install() {
#install TA devkit
install -d ${D}${includedir}/optee/export-user_ta/
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
for f in ${B}/${conf}/export-ta_${OPTEE_ARCH}/* ; do
cp -aRf $f ${D}${includedir}/optee/export-user_ta/
done
done
fi
}
# Configure optee binaries
OPTEE_BOOTCHAIN = "optee"
OPTEE_HEADER = "tee-header_v2"
OPTEE_PAGEABLE = "tee-pageable_v2"
OPTEE_PAGER = "tee-pager_v2"
OPTEE_SUFFIX = "stm32"
# Output the ELF generated
ELF_DEBUG_ENABLE ?= ""
OPTEE_ELF = "tee"
OPTEE_ELF_SUFFIX = "elf"
do_deploy() {
install -d ${DEPLOYDIR}
if [ -n "${OPTEE_CONF}" ]; then
for conf in ${OPTEE_CONF}; do
install -m 644 ${B}/${conf}/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_HEADER}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/${conf}/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGER}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/${conf}/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGEABLE}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
if [ -n "${ELF_DEBUG_ENABLE}" ]; then
install -m 644 ${B}/${conf}/core/${OPTEE_ELF}.${OPTEE_ELF_SUFFIX} ${DEPLOYDIR}/${OPTEE_ELF}-${conf}-${OPTEE_BOOTCHAIN}.${OPTEE_ELF_SUFFIX}
fi
done
else
install -m 644 ${B}/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_HEADER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
install -m 644 ${B}/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ${DEPLOYDIR}/${OPTEE_PAGEABLE}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX}
if [ -n "${ELF_DEBUG_ENABLE}" ]; then
install -m 644 ${B}/core/${OPTEE_ELF}.${OPTEE_ELF_SUFFIX} ${DEPLOYDIR}/${OPTEE_ELF}-${OPTEE_BOOTCHAIN}.${OPTEE_ELF_SUFFIX}
fi
fi
}
addtask deploy before do_build after do_compile
FILES_${PN} = "${nonarch_base_libdir}/firmware/"
FILES_${PN}-dev = "/usr/include/optee"
INSANE_SKIP_${PN}-dev = "staticdev"
INHIBIT_PACKAGE_STRIP = "1"
# ----------------------------------------
# ARCHIVER
#
inherit archiver
ARCHIVER_MODE[src] = "${@'original' if d.getVar('ST_ARCHIVER_ENABLE') == '1' else ''}"
SRC_URI += "file://README.HOW_TO.txt"
inherit archiver_stm32mp_clean
archiver_create_makefile_for_sdk() {
mkdir -p ${ARCHIVER_OUTDIR}
#remove default variable
echo "LDFLAGS=" > ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CPPFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "LOCAL_PATH=\$(PWD)" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
#set default CONFIGURATION with configured OPTEE_CONF
if [ -n "${OPTEE_CONF}" ]; then
echo "PLATFORM ?= ${MACHINE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "CFG_SECURE_DT ?= ${OPTEE_CONF}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
fi
echo -n "EXTRA_OEMAKE=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "${EXTRA_OEMAKE}" | sed "s|LIBGCC_LOCATE_CFLAGS=[^ ]* |LIBGCC_LOCATE_CFLAGS=\$(OECORE_NATIVE_SYSROOTK) |;s|comp-cflagscore='[^']*'|comp-cflagscore='\$(KCFLAGS)'|" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo "all:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " if test -n \"\$(CFG_SECURE_DT)\" ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " for dt in \$(CFG_SECURE_DT) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/\$\$dt CFG_SECURE_DT=\$\$dt ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
# Copy binary files with explicit name
echo " cp ../build/\$\$dt/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ../build/${OPTEE_HEADER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/\$\$dt/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGER}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/\$\$dt/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGEABLE}-\$\$dt-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " done ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " else \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) PREFIX=\$(SDKTARGETSYSROOT) O=\$(LOCAL_PATH)/../build/ ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
# Copy binary files with explicit name
echo " cp ../build/core/${OPTEE_HEADER}.${OPTEE_SUFFIX} ../build/${OPTEE_HEADER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/core/${OPTEE_PAGER}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGER}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " cp ../build/core/${OPTEE_PAGEABLE}.${OPTEE_SUFFIX} ../build/${OPTEE_PAGEABLE}-${OPTEE_BOOTCHAIN}.${OPTEE_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
echo " fi" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
}
do_ar_original[prefuncs] += "archiver_create_makefile_for_sdk"

View File

@ -1,29 +1,31 @@
SUMMARY = "OPTEE TA development kit for stm32mp"
LICENSE = "BSD"
LICENSE = "BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b"
COMPATIBLE_MACHINE = "(stm32mpcommon)"
SRC_URI = "https://github.com/OP-TEE/optee_os/archive/${PV}.tar.gz"
SRC_URI[md5sum] = "7cb56c333066fd576460358fc97da85f"
SRC_URI[sha256sum] = "7b62e9fe650e197473eb2f4dc35c09d1e6395eb48dc1c16cc139d401b359ac6f"
SRC_URI += " \
file://0001-st-updates-r1.patch \
"
require optee-os-stm32mp.inc
file://0002-st-updates-r2.patch \
"
OPTEE_VERSION = "3.3.0"
PV = "${OPTEE_VERSION}"
S = "${WORKDIR}/optee_os-${PV}"
COMPATIBLE_MACHINE = "(stm32mpcommon)"
PROVIDES += "optee-os"
do_configure_prepend(){
chmod 755 ${S}/scripts/bin_to_c.py
}
require optee-os-stm32mp-common.inc
# ---------------------------------
# Configure archiver use
# ---------------------------------
include ${@oe.utils.ifelse(d.getVar('ST_ARCHIVER_ENABLE') == '1', 'optee-os-stm32mp-archiver.inc','')}
# ---------------------------------
# Configure devupstream class usage
@ -31,7 +33,7 @@ do_configure_prepend(){
BBCLASSEXTEND = "devupstream:target"
SRC_URI_class-devupstream = "git://github.com/STMicroelectronics/optee_os.git;protocol=https;name=opteeos;branch=3.3.0-stm32mp"
SRCREV_class-devupstream = "5f5cc70dfd04419be2ba66b87f41584b6136118c"
SRCREV_class-devupstream = "2d2ec9752d49db633b4295ee509629642dfd8748"
SRCREV_FORMAT_class-devupstream = "opteeos"
PV_class-devupstream = "${OPTEE_VERSION}+github+${SRCPV}"

File diff suppressed because it is too large Load Diff