diff options
Diffstat (limited to 'meta-rcar-gen3/recipes-bsp/optee')
4 files changed, 194 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-client/0001-optee-client-Respect-LDFLAGS-set-from-OE-build.patch b/meta-rcar-gen3/recipes-bsp/optee/optee-client/0001-optee-client-Respect-LDFLAGS-set-from-OE-build.patch new file mode 100644 index 0000000..39d6d31 --- /dev/null +++ b/meta-rcar-gen3/recipes-bsp/optee/optee-client/0001-optee-client-Respect-LDFLAGS-set-from-OE-build.patch @@ -0,0 +1,57 @@ +From 4ee8c61a0b85cc605993beaa117c46c9cbbca496 Mon Sep 17 00:00:00 2001 +From: Stephen Lawrence <stephen.lawrence@renesas.com> +Date: Wed, 26 Jul 2017 17:20:22 +0100 +Subject: [PATCH] optee-client: Respect LDFLAGS set from OE build + +Backport upstream fix to unify LFLAGS/LDFLAGS variable names. + +Fixes: + ERROR: optee-client-1.1.0+renesas+gitAUTOINC+db9c64d458-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'optee-client/1.1.0+renesas+gitAUTOINC+db9c64d458-r0/packages-split/optee-client/usr/bin/tee-supplicant' + No GNU_HASH in the elf binary: 'optee-client/1.1.0+renesas+gitAUTOINC+db9c64d458-r0/packages-split/optee-client/usr/lib/libteec.so.1.0' [ldflags] + ERROR: optee-client-1.1.0+renesas+gitAUTOINC+db9c64d458-r0 do_package_qa: QA run found fatal errors. Please consider fixing them. + ERROR: optee-client-1.1.0+renesas+gitAUTOINC+db9c64d458-r0 do_package_qa: Function failed: do_package_qa + +(From meta-linaro rev: a7131d143db3b51a49c88b5293b6aadcce0538d4) + +Signed-off-by: Stephen Lawrence <stephen.lawrence@renesas.com> +--- + libteec/Makefile | 2 +- + tee-supplicant/Makefile | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libteec/Makefile b/libteec/Makefile +index 9a69216..2e6ca8f 100644 +--- a/libteec/Makefile ++++ b/libteec/Makefile +@@ -28,7 +28,7 @@ TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \ + -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \ + -DBINARY_PREFIX=\"TEEC\" + +-TEEC_LFLAGS := -lpthread ++TEEC_LFLAGS := $(LDFLAGS) -lpthread + TEEC_LIBRARY := $(OUT_DIR)/$(LIB_MAJ_MIN) + + libteec: $(TEEC_LIBRARY) +diff --git a/tee-supplicant/Makefile b/tee-supplicant/Makefile +index 4f451f1..16816bb 100644 +--- a/tee-supplicant/Makefile ++++ b/tee-supplicant/Makefile +@@ -37,13 +37,13 @@ ifeq ($(RPMB_EMU),1) + TEES_CFLAGS += -DRPMB_EMU=1 + endif + TEES_FILE := $(OUT_DIR)/$(PACKAGE_NAME) +-TEES_LDFLAGS := -L$(OUT_DIR)/../libteec -lteec ++TEES_LFLAGS := $(LDFLAGS) -L$(OUT_DIR)/../libteec -lteec + + tee-supplicant: $(TEES_FILE) + + $(TEES_FILE): $(TEES_OBJS) + @echo " LD $@" +- $(VPREFIX)$(CC) -o $@ $+ $(TEES_LDFLAGS) ++ $(VPREFIX)$(CC) -o $@ $+ $(TEES_LFLAGS) + @echo "" + + $(TEES_OBJ_DIR)/%.o: $(TEES_SRC_DIR)/%.c +-- +1.9.1 + diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-client/optee.service b/meta-rcar-gen3/recipes-bsp/optee/optee-client/optee.service new file mode 100644 index 0000000..4396f9f --- /dev/null +++ b/meta-rcar-gen3/recipes-bsp/optee/optee-client/optee.service @@ -0,0 +1,11 @@ +[Unit] +Description=optee services + +[Service] +ExecStartPre=/sbin/modprobe -q optee_armtz +ExecStart=/usr/bin/tee-supplicant +ExecStop=/usr/bin/killall -s KILL tee-supplicant +ExecStopPost=/sbin/modprobe -r optee_armtz + +[Install] +WantedBy=multi-user.target diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-client_git.bb b/meta-rcar-gen3/recipes-bsp/optee/optee-client_git.bb new file mode 100644 index 0000000..f528ad5 --- /dev/null +++ b/meta-rcar-gen3/recipes-bsp/optee/optee-client_git.bb @@ -0,0 +1,59 @@ +DESCRIPTION = "OP-TEE Client" +LICENSE = "BSD-2-Clause" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=69663ab153298557a59c67a60a743e5b" +PR = "r0" +PV = "1.1.0+renesas+git${SRCPV}" +BRANCH = "master" +SRC_URI = "git://github.com/OP-TEE/optee_client.git;branch=${BRANCH}" +SRCREV = "db9c64d45818d146200297eaaedbd421a8b59e3a" + +SRC_URI += " \ + file://optee.service \ + file://0001-optee-client-Respect-LDFLAGS-set-from-OE-build.patch \ +" + +inherit systemd +SYSTEMD_SERVICE_${PN} = "optee.service" + +COMPATIBLE_MACHINE = "salvator-x|h3ulcb|m3ulcb" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "RPMB_EMU=0" + +do_install () { + # Create destination directories + install -d ${D}/${libdir} + install -d ${D}/${includedir} + + # Install library + install -m 0755 ${S}/out/export/lib/libteec.so.1.0 ${D}/${libdir} + + # Create symbolic link + cd ${D}/${libdir} + ln -sf libteec.so.1.0 libteec.so.1 + ln -sf libteec.so.1 libteec.so + + # Install header files + install -m 0644 ${S}/out/export/include/* ${D}/${includedir} + + # Install systemd service configure file for OP-TEE client + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}/${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/optee.service ${D}/${systemd_system_unitdir} + fi +} + +# install the tee-supplicant for 64 bit only. +do_install_append_aarch64 () { + # Create destination directory + install -d ${D}/${bindir} + + # Install binary to bindir + install -m 0755 ${S}/out/export/bin/tee-supplicant ${D}/${bindir} +} + +RPROVIDES_${PN} += "optee-client" diff --git a/meta-rcar-gen3/recipes-bsp/optee/optee-os_git.bb b/meta-rcar-gen3/recipes-bsp/optee/optee-os_git.bb new file mode 100644 index 0000000..bc26a46 --- /dev/null +++ b/meta-rcar-gen3/recipes-bsp/optee/optee-os_git.bb @@ -0,0 +1,67 @@ +DESCRIPTION = "OP-TEE OS" + +LICENSE = "BSD-2-Clause & BSD-3-Clause" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=69663ab153298557a59c67a60a743e5b \ + file://lib/libpng/LICENSE;md5=06a1b6fde6d93170bb72201c8000bf3d \ + file://${WORKDIR}/git_official/LICENSE;md5=69663ab153298557a59c67a60a743e5b \ + file://${WORKDIR}/git_official/lib/libpng/LICENSE;md5=06a1b6fde6d93170bb72201c8000bf3d \ +" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit deploy pythonnative + +PV = "2.2.0+renesas+git${SRCPV}" + +BRANCH = "rcar_gen3" +SRCREV_renesas = "1e959b66e877546d83b3ac7fb5d10baa4a034acc" +SRCREV_officialgit = "c0c5d399d81a0669f5c8e3bcb20039d65649a78d" +SRCREV_FORMAT = "renesas_officialgit" + +SRC_URI = " \ + git://github.com/renesas-rcar/optee_os.git;branch=${BRANCH};name=renesas \ + git://github.com/OP-TEE/optee_os.git;branch=master;name=officialgit;destsuffix=git_official \ +" + +COMPATIBLE_MACHINE = "(salvator-x|h3ulcb|m3ulcb)" +PLATFORM = "rcar" + +DEPENDS = "python-wand-native python-pycrypto-native" + +# Needed so that python-wand can find the installed imagemagick install. +export MAGICK_HOME="${STAGING_DIR_NATIVE}${prefix}" + +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" + +S = "${WORKDIR}/git" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_configure() { + cp -r ${WORKDIR}/git_official/core/lib/libtomcrypt ${B}/core/lib/. +} + +do_compile() { + oe_runmake PLATFORM=${PLATFORM} CFG_ARM64_core=y +} + +# do_install() nothing +do_install[noexec] = "1" + +do_deploy() { + # Create deploy folder + install -d ${DEPLOYDIR} + + # Copy TEE OS to deploy folder + install -m 0644 ${S}/out/arm-plat-${PLATFORM}/core/tee.elf ${DEPLOYDIR}/tee-${MACHINE}.elf + install -m 0644 ${S}/out/arm-plat-${PLATFORM}/core/tee.bin ${DEPLOYDIR}/tee-${MACHINE}.bin + install -m 0644 ${S}/out/arm-plat-${PLATFORM}/core/tee.srec ${DEPLOYDIR}/tee-${MACHINE}.srec +} +addtask deploy before do_build after do_compile |