[PATCH v2 5/5] optee: Support Rockchip OP-TEE binaries
Kever Yang
kever.yang at rock-chips.com
Wed Jul 26 10:02:09 CEST 2023
On 2023/7/20 15:39, Alex Bee wrote:
> Hi Kever,
>
> Am 19.07.23 um 09:28 schrieb Kever Yang:
>> 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 for your review.
>
> I'm aware of Heiko's ATF BL32 implemenation for RK3288. But what about
> RK3128/RK3036? They might wwork w/o RK OPTEE-binaries in regards of
> SMP bringup, but still you have no TEE.
>
> You're right: It's not strictly required to have support for RK
> OPTEE-binaries, but also it doesn't hurt and it's fully optional to
> use it for those SoCs. Besides RK's TEE-implementations provide some
> more services via SMCC calls (DVFS for DRAM, for instance) which are
> not supported (yet) by upstream variants.
The mainline U-Boot is target to work with mainline kernel, so we don't
need this patch for now.
> I don't like the requirement of this patch either, but unfortunately
> the TEE binaries RK provides are built with wrong/incompatible flags.
The better way is to push Rockchip TEE to use the same parameter with
mainline OP-TEE, I will sync with rockchip OPTEE owner, and I would like
this patch stay out of tree for now.
Thanks,
- Kever
>
> Regards,
> Alex
>>
>> 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