[U-Boot] "optee" Kbuild seems to have weird dependencies
Jens Wiklander
jens.wiklander at linaro.org
Tue Apr 23 09:22:13 UTC 2019
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.
>
> 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.
Cheers,
Jens
More information about the U-Boot
mailing list