IMX8M OP-TEE

Tim Harvey tharvey at gateworks.com
Tue Oct 12 01:32:52 CEST 2021


On Mon, Oct 11, 2021 at 3:29 PM Marcel Ziswiler
<marcel.ziswiler at toradex.com> wrote:
>
> 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).
>

Marcel,

Thanks for checking into OP-TEE for me.

I haven't tested your series yet as I tried to apply it and it failed.
Do you have a git repo I can cherry-pick from or what did you base it
on top of?

Thanks,

Tim


More information about the U-Boot mailing list