[PATCH v2 5/5] optee: Support Rockchip OP-TEE binaries

Kever Yang kever.yang at rock-chips.com
Wed Jul 19 09:28:37 CEST 2023


Hi Alex,


On 2023/7/18 22:57, Alex Bee wrote:
> Currently the only ARM Rockchip SoC which is supported by upstream
> optee-os is RK322x. For all other ARM SoCs a
> vendor-provided OP-TEE binary has to be used to have a TEE available.
> Those are using a calling convension different from upstream optee-os.
>
> This introduces CONFIG_ROCKCHIP_OPTEE_BINARY which signals that any
> of those vendor binaries is used and changes the calling convension
> accordingly.
>
> Signed-off-by: Alex Bee <knaerzche at gmail.com>
> ---
>   arch/arm/mach-rockchip/Kconfig | 8 ++++++++
>   common/spl/spl_optee.S         | 4 ++++
>   2 files changed, 12 insertions(+)
>
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index 17dd43155d..83d8a2a056 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -449,6 +449,14 @@ config ROCKCHIP_BOOT_MODE_REG
>   	  The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
>   	  according to the value from this register.
>   
> +config ROCKCHIP_OPTEE_BINARY
> +	bool "Use a OP-TEE binary provided by Rockchip"
> +	depends on SPL_OPTEE_IMAGE
> +	default y if ROCKCHIP_RK3036 || ROCKCHIP_RK3128 || ROCKCHIP_RK3288

     This patch is not need for now.

     the  rk3036 works without OPTEE, and rk3288 is able to use ATF 
instead for OPTEE which upstreamed by Heiko.


Thanks,

- Kever

> +	help
> +	  This option enables the usage of vendor-provided OP-TEE binaries.
> +	  Say Y if you are using OP-TEE binary provided by Rockchip.
> +
>   config ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON
>   	bool "Disable device boot on power plug-in"
>   	depends on PMIC_RK8XX
> diff --git a/common/spl/spl_optee.S b/common/spl/spl_optee.S
> index a269904d38..ea41d8adb6 100644
> --- a/common/spl/spl_optee.S
> +++ b/common/spl/spl_optee.S
> @@ -7,6 +7,10 @@
>   #include <asm/assembler.h>
>   
>   ENTRY(spl_optee_entry)
> +#ifdef CONFIG_ROCKCHIP_OPTEE_BINARY
> +	ldr r1, =CONFIG_TEXT_BASE
> +#else
>   	ldr lr, =CONFIG_TEXT_BASE
> +#endif
>   	mov pc, r3
>   ENDPROC(spl_optee_entry)


More information about the U-Boot mailing list