Add Rust examples
Add OPTEE_RUST_ENABLE option to common.mk and define buildroot packages
for OP-TEE Rust examples
Build Rust examples in optee_rust/examples:
$ cd build && make OPTEE_RUST_ENABLE=y CFG_TEE_RAM_VA_SIZE=0x00300000
Signed-off-by: Rong Fan <fanrong03@baidu.com>
Signed-off-by: Yuan Zhuang <zhuangyuan04@baidu.com>
Acked-by: Joakim Bech <joakim.bech@linaro.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org>
Acked-by: Jerome Forissier <jerome@forissier.org>
diff --git a/common.mk b/common.mk
index f72ea86..388fd85 100644
--- a/common.mk
+++ b/common.mk
@@ -34,6 +34,7 @@
OPTEE_CLIENT_PATH ?= $(ROOT)/optee_client
OPTEE_TEST_PATH ?= $(ROOT)/optee_test
OPTEE_EXAMPLES_PATH ?= $(ROOT)/optee_examples
+OPTEE_RUST_PATH ?= $(ROOT)/optee_rust
BUILDROOT_TARGET_ROOT ?= $(ROOT)/out-br/target
# default high verbosity. slow uarts shall specify lower if prefered
@@ -275,6 +276,12 @@
BR2_PACKAGE_OPTEE_EXAMPLES_EXT_CROSS_COMPILE ?= $(CROSS_COMPILE_S_USER)
BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SDK ?= $(OPTEE_OS_TA_DEV_KIT_DIR)
BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SITE ?= $(OPTEE_EXAMPLES_PATH)
+OPTEE_RUST_ENABLE ?= n
+ifeq ($(OPTEE_RUST_ENABLE),y)
+BR2_PACKAGE_OPTEE_RUST_EXAMPLES_EXT ?= y
+BR2_PACKAGE_OPTEE_RUST_EXAMPLES_EXT_CROSS_COMPILE ?= $(CROSS_COMPILE_S_USER)
+BR2_PACKAGE_OPTEE_RUST_EXAMPLES_EXT_SITE ?= $(OPTEE_RUST_PATH)
+endif
# The OPTEE_OS package builds nothing, it just installs files into the
# root FS when applicable (for example: shared libraries)
BR2_PACKAGE_OPTEE_OS_EXT ?= y
@@ -307,7 +314,7 @@
append-br2-vars = $(foreach var,$(filter BR2_%,$(.VARIABLES)),$(call append-var,$(var),$(1)))
.PHONY: buildroot
-buildroot: optee-os
+buildroot: optee-os optee-rust
@mkdir -p ../out-br
@rm -f ../out-br/build/optee_*/.stamp_*
@rm -f ../out-br/extra.conf
@@ -325,7 +332,7 @@
$(DEFCONFIG_FTPM) \
--br-defconfig out-br/extra.conf \
--make-cmd $(MAKE))
- @$(MAKE) -C ../out-br all
+ @$(OPTEE_RUST_SET_ENV) $(MAKE) -C ../out-br all
.PHONY: buildroot-clean
buildroot-clean:
@@ -504,6 +511,16 @@
$(MAKE) -C $(OPTEE_OS_PATH) $(OPTEE_OS_COMMON_FLAGS) clean
################################################################################
+# OP-TEE Rust
+################################################################################
+.PHONY: optee-rust
+optee-rust:
+ifeq ($(OPTEE_RUST_ENABLE),y)
+ @(cd $(OPTEE_RUST_PATH) && ./setup.sh)
+OPTEE_RUST_SET_ENV = source ~/.cargo/env &&
+endif
+
+################################################################################
# fTPM Rules
################################################################################