From 7c5b6c1e9f7914d87e69678ad502363ae8e61f99 Mon Sep 17 00:00:00 2001 From: Yu Chien Peter Lin Date: Sat, 17 Aug 2024 19:22:03 +0800 Subject: [PATCH] boot: optee-os: enable RISC-V (64-bit) architecture OP-TEE OS and TAs can run on RISC-V (64-bit) machines, so allow optee-os to be compiled for the new architecture. Signed-off-by: Yu Chien Peter Lin [Arnout: - set CROSS_COMPILE_ta_rv64 even on arm builds; - ARCH=arm for aarch64. ] Signed-off-by: Arnout Vandecappelle --- boot/optee-os/Config.in | 2 +- boot/optee-os/optee-os.mk | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/boot/optee-os/Config.in b/boot/optee-os/Config.in index 2f996cbafc..cc0044f00a 100644 --- a/boot/optee-os/Config.in +++ b/boot/optee-os/Config.in @@ -1,6 +1,6 @@ config BR2_TARGET_OPTEE_OS bool "optee_os" - depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A + depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A || BR2_RISCV_64 help OP-TEE OS provides the secure world boot image and the trust application development kit of the OP-TEE project. OP-TEE OS diff --git a/boot/optee-os/optee-os.mk b/boot/optee-os/optee-os.mk index 6b04a0f5e1..8d0169448f 100644 --- a/boot/optee-os/optee-os.mk +++ b/boot/optee-os/optee-os.mk @@ -54,16 +54,26 @@ OPTEE_OS_MAKE_OPTS = \ CROSS_COMPILE_core="$(TARGET_CROSS)" \ CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \ CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)" \ + CROSS_COMPILE_ta_rv64="$(TARGET_CROSS)" \ PYTHON3="$(HOST_DIR)/bin/python3" +ifeq ($(BR2_riscv),y) +OPTEE_OS_MAKE_OPTS += \ + ARCH=riscv \ + CFG_RV64_core=y \ + CFG_USER_TA_TARGETS=ta_rv64 +else ifeq ($(BR2_aarch64),y) OPTEE_OS_MAKE_OPTS += \ + ARCH=arm \ CFG_ARM64_core=y \ CFG_USER_TA_TARGETS=ta_arm64 else OPTEE_OS_MAKE_OPTS += \ + ARCH=arm \ CFG_ARM32_core=y endif +endif # Get mandatory PLAFORM and optional PLATFORM_FLAVOR and additional # variables @@ -77,6 +87,10 @@ OPTEE_OS_MAKE_OPTS += $(call qstrip,$(BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES)) # root path otherwise the output directory path depends on the target # platform name. OPTEE_OS_BUILDDIR_OUT = out +ifeq ($(BR2_riscv),y) +OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_rv64 +OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_rv64 +endif ifeq ($(BR2_aarch64),y) OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm64 OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64