From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Petazzoni Date: Sun, 17 Feb 2019 22:28:39 +0100 Subject: [Buildroot] [PATCH v4 3/7] optee-examples: new package In-Reply-To: <1548845249-28201-3-git-send-email-etienne.carriere@linaro.org> References: <1548845249-28201-1-git-send-email-etienne.carriere@linaro.org> <1548845249-28201-3-git-send-email-etienne.carriere@linaro.org> Message-ID: <20190217222839.322d0955@windsurf.home> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hello ?tienne, On Wed, 30 Jan 2019 11:47:25 +0100 Etienne Carriere wrote: > This package generates embedded Linux based OS userland client > applications and OP-TEE OS trusted applications all embedded in > the file system. These applications shows how to use the APIs > OP-TEE OS is based on, both in the non secure and secure worlds. > > Package is added next to the OP-TEE client package in the BR > package configuration. > > This change references in Buildroot the today's latest OP-TEE > revision release tagged 3.4.0 with an added patch to fix an issue > reported by recent GCC toolchains. > > Signed-off-by: Etienne Carriere I have applied to next, but with a number of changes, see below. > diff --git a/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch b/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch > new file mode 100644 > index 0000000..ba1716a > --- /dev/null > +++ b/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch > @@ -0,0 +1,37 @@ > +commit fca0caba591f31f66325826c74acd26aefd52dee > +Author: Etienne Carriere > +Date: Tue Dec 18 22:35:16 2018 +0100 > + > + secure_storage: fix deprecated size_t type for size > + > + size_t types is an deprecated type used in GPD API v1.0. > + Update > + > + Error reported by GCC 7.3-2018.05: > + secure_storage_ta.c:203:6: warning: passing argument 4 of 'TEE_ReadObjectData' from incompatible pointer type [-Wincompatible-pointer-types] > + &read_bytes); > + > + Signed-off-by: Etienne Carriere Patches should be generated with "git format-patch" and not "git show". Indeed, patches generated by "git format-patch" can conveniently be applied by "git am". I've re-generated the patch to use the proper format. > diff --git a/package/optee-examples/3.4.0/optee-examples.hash b/package/optee-examples/3.4.0/optee-examples.hash > new file mode 100644 > index 0000000..077fd97 > --- /dev/null > +++ b/package/optee-examples/3.4.0/optee-examples.hash > @@ -0,0 +1,4 @@ > +# From https://github.com/linaro-swg/optee_examples/archive/3.4.0.tar.gz > +sha256 d833753980ac438c1675787857bb8352997352212334274de9419770097ce039 optee-examples-3.4.0.tar.gz > +# Locally computed > +sha256 6f1ef8449cb82ae79d2155605f7985bdf0f08e7ab5007de9b4362e8bf28733b9 LICENSE > diff --git a/package/optee-examples/Config.in b/package/optee-examples/Config.in > new file mode 100644 > index 0000000..a240e54 > --- /dev/null > +++ b/package/optee-examples/Config.in > @@ -0,0 +1,59 @@ > +config BR2_PACKAGE_OPTEE_EXAMPLES > + bool "optee-examples" > + depends on BR2_TARGET_OPTEE_OS In fact, building OP-TEE itself is not sufficient, because this does not guarantee the SDK has been built, so I have added a: select BR2_TARGET_OPTEE_OS_SDK here. > + select BR2_PACKAGE_OPTEE_CLIENT This now depends on !BR2_STATIC_LIBS, so I've propagated this dependency. > + help > + Enable the OP-TEE examples package that brings examples of > + implementation of OP-TEE non-secure client applications and > + secure trusted applications. OP-TEE examples is a > + component delivered by the OP-TEE project. > + > + Trusted application binary files are installed in the target > + directory /lib/optee_armtz as other trusted applications. > + At runtime OP-TEE OS can load trusted applications from this > + non-secure filesystem/directory into the secure world for > + execution. > + > + https://github.com/linaro-swg/optee_examples > + > +if BR2_PACKAGE_OPTEE_EXAMPLES > + > +choice > + prompt "version" > + default BR2_PACKAGE_OPTEE_EXAMPLES_LATEST > + help > + Select the version of OP-TEE exmaples you want to use > + > +config BR2_PACKAGE_OPTEE_EXAMPLES_LATEST > + bool "3.4.0" > + help > + This fetches the registered release tag from the > + OP-TEE official Git repository. > + > +config BR2_PACKAGE_OPTEE_EXAMPLES_CUSTOM_GIT > + bool "Custom Git repository" > + help > + Sync with a specific OP-TEE Git repository. > + > +endchoice Here as well, I don't think the version selection makes a lot of sense, so I dropped it. > +ifeq ($(BR2_aarch64),y) > +OPTEE_EXAMPLES_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64 > +endif > +ifeq ($(BR2_arm),y) Changed: endif ifeq ($(BR2_arm),y) to just: else ifeq ($(BR2_arm),y) > +OPTEE_EXAMPLES_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm32 > +endif > + > +# Trusted Application are not built from CMake due to ta_dev_kit dependencies. > +# We must build and install them on target. > +define OPTEE_EXAMPLES_BUILD_TAS > + @$(foreach f,$(wildcard $(@D)/*/ta/Makefile), \ > + $(TARGET_CONFIGURE_OPTS) \ > + $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \ > + TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_SDK) \ > + O=out -C $(dir $f) all &&) true Convoluted syntax here. Changed to: $(foreach f,$(wildcard $(@D)/*/ta/Makefile), \ $(TARGET_CONFIGURE_OPTS) \ $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \ TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_SDK) \ O=out -C $(dir $f) all ) Also: could this be fixed upstream, so that the CMake build system builds/installs everything ? Thanks! Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com