IMX8M OP-TEE
Marcel Ziswiler
marcel.ziswiler at toradex.com
Tue Oct 12 00:29:19 CEST 2021
Hi Tim
On Mon, 2021-10-11 at 15:15 -0700, Tim Harvey wrote:
> Greetings,
>
> Is anyone successfully booting U-Boot with OP-TEE support on the IMX8M?
I am not aware that anybody at Toradex played with OP-TEE so far but let me ask around again.
However, maybe Igor or Oleksandr (added to CC, now both with Foundries) might have some experience. I know that
Igor used to work on this kind of stuff.
> My understanding is that you need to add tee.bin to the images in the
> FIT image and include it in loadables following the ATF.
>
> While this was done with arch/arm/mach-imx/mkimage_fit_atf.sh before
> the switch to binman by simply having tee.bin in the U-Boot directory
> and passing in TEE_LOAD_ADDR (or accepting the default of 0xfe000000)
> once you switch to binman it needs to be added for your board.
>
> Additionally in order to use OP-TEE from U-Boot (ie for dek_blob
> command) you need to add a node with compatible=linaro,optee-tz as
> well.
>
> I've done the following to add OP-TEE for imx8mm_venice:
> diff --git a/configs/imx8mm_venice_defconfig b/configs/imx8mm_venice_defconfig
> index d85827b588..85d2b20810 100644
> -u-boot.dtsi
> index e0fa9ff4bf..7a71b974e1 100644
> --- a/arch/arm/dts/imx8mm-venice-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mm-venice-u-boot.dtsi
> @@ -10,6 +10,13 @@
> multiple-images;
> };
>
> + firmware {
> + optee {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +
> wdt-reboot {
> compatible = "wdt-reboot";
> wdt = <&wdog1>;
> @@ -152,6 +159,16 @@
> };
> };
>
> + tee {
> + description = "TEE firmware";
> + type = "firmware";
> + arch = "arm64";
> + compression = "none";
> + data = "tee.bin";
> + load = <0xbe000000>;
> + entry = <0xbe000000>;
> + };
> +
> @fdt-SEQ {
> description = "NAME";
> type = "flat_dt";
> @@ -165,7 +182,7 @@
> @config-SEQ {
> description = "NAME";
> firmware = "uboot";
> - loadables = "atf";
> + loadables = "atf", "tee";
> fdt = "fdt-SEQ";
> };
> };
>
>
> However, when I attempt to boot I hang when the ATF is run.
>
> Where does the TEE_LOAD_ADDR come from specifically? I would think
> this needs to be defined when building tee and needs to match the load
> address used in the FIT image. It appears that perhaps this is supped
> to be DDR_BASE + DDR_SIZE - 32MIB but I'm not entirely sure.
>
> I'm currently using NXP's ATF (imx_5.4.3_2.0.0) and NXP's TEE
> (imx_5.4.70_2.3.0) and would also like to understand if NXP's branches
> are strictly required here and if so what the pros and cons of using
> them are.
>
> Anyone using IMX8MM OP-TEE that could point me in the right direction?
>
> Best regards,
>
> Tim
BTW: Have you tried my latest stuff [1] on venice? Did/does it work? And yeah, my cover letter subject is
slightly misleading as I forgot to update that one (;-p).
[1] https://marc.info/?l=u-boot&m=163372696806292
Cheers
Marcel
More information about the U-Boot
mailing list