[U-Boot] "optee" Kbuild seems to have weird dependencies

Bryan O'Donoghue bryan.odonoghue at linaro.org
Tue Apr 23 10:01:40 UTC 2019



On 23/04/2019 10:22, Jens Wiklander wrote:
> Hi Robert,
> 
> On Thu, Apr 18, 2019 at 10:19 PM Robert P. J. Day <rpjday at crashcourse.ca> wrote:
>>
>>
>>    going over the u-boot.cfg generated from zynq_zed_defconfig, and
>> noticed the following:
>>
>>    #define CONFIG_OPTEE_TZDRAM_BASE 0x00000000
>>    #define CONFIG_OPTEE_TZDRAM_SIZE 0x0000000
>>
>> i thought that was strange as CONFIG_OPTEE was not selected, so i
>> checked, and here's the relevant snippet from lib/optee/Kconfig:
>>
>>    config OPTEE
>>          bool "Support OPTEE images"
>>          help
>>            U-Boot can be configured to boot OPTEE images.
>>            Selecting this option will enable shared OPTEE library code and
>>            enable an OPTEE specific bootm command that will perform additional
>>            OPTEE specific checks before booting an OPTEE image created with
>>            mkimage.
>>
>>    config OPTEE_TZDRAM_SIZE
>>          hex "Amount of Trust-Zone RAM for the OPTEE image"
>>          default 0x0000000
>>          help
>>            The size of pre-allocated Trust Zone DRAM to allocate for the OPTEE
>>            runtime.
>>
>>    config OPTEE_TZDRAM_BASE
>>          hex "Base address of Trust-Zone RAM for the OPTEE image"
>>          default 0x00000000
>>          help
>>            The base address of pre-allocated Trust Zone DRAM for
>>            the OPTEE runtime.
>>
>> those two Kbuild directives are (strangely?) not dependent on OPTEE,
>> which is why they show up in u-boot.cfg. is this deliberate? i know
>> nothing about TEE, but it seems odd that OPTEE-related settings don't
>> depend on OPTEE.
>>
>>    am i misreading something?
> 
> It seems that the dependency was removed by Rui in c7b3a7ee5351
> ("optee: adjust dependencies and default values for dram").
> 
> If OPTEE_TZDRAM_SIZE and OPTEE_TZDRAM_BASE are needed or not depends
> on the platform and should be selected in some way by the platform.

We can probably zap those two defines. Do we really need them to verify 
the image ? No. Could we live without them ? Yes. You could just as 
easily have an environment variable and ignore the size, which is in 
effect what we do with most other load addresses anyway.

I'll patch that out.

> 
>>
>> rday
>>
>> p.s. the MAINTAINERS entry for TEE seems incomplete as well:
>>
>> TEE
>> M:      Jens Wiklander <jens.wiklander at linaro.org>
>> S:      Maintained
>> F:      drivers/tee/
>> F:      include/tee.h
>> F:      include/tee/
>>
>>    one suspects that should include, at the very least:
>>
>>    * lib/optee
>>    * include/config/optee
>>
> 
> I understand that this is confusing. OP-TEE is supported by U-Boot in
> two in two ways which are orthogonal.
> 
> We have loading and booting OP-TEE which is handled by lib/optee. In
> this case U-Boot is used as a Secure world boot loader. This was added
> by Bryan.
> 
> Then there's the TEE subsystem which includes a driver for
> communicating with OP-TEE in Secure world. This is mostly to support
> the Android Verified Boot 2.0 (AVB) use case, but can be used for
> other purposes too. In this case U-Boot is a Normal world boot loader.
> This was added by me.
> 
> I happen to know something about how OP-TEE is loaded, but I don't
> know much about the boards on which U-Boot is used for that purpose. I
> guess the best would be if Bryan added an entry for lib/optee in
> MAINTAINERS.

and I'll patch that too :)

---
bod


More information about the U-Boot mailing list