[PATCH RFC 1/6] arm: dts: imx8m: add fit optee node

Yannic Moog Y.Moog at phytec.de
Fri Oct 25 14:26:41 CEST 2024


On Thu, 2024-10-24 at 08:32 -0700, Tim Harvey wrote:
> On Thu, Oct 24, 2024 at 12:04 AM Yannic Moog <y.moog at phytec.de>
> wrote:
> > 
> > Add tee node in SoC u-boot device trees. Each board adds their
> > specific
> > load and entry addresses for the op-tee image in the respective
> > board-u-boot.dtsi file.
> > 
> > Signed-off-by: Yannic Moog <y.moog at phytec.de>
> > ---
> >  arch/arm/dts/imx8mm-u-boot.dtsi | 15 ++++++++++++++-
> >  arch/arm/dts/imx8mn-u-boot.dtsi | 15 ++++++++++++++-
> >  arch/arm/dts/imx8mp-u-boot.dtsi | 15 ++++++++++++++-
> >  3 files changed, 42 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm/dts/imx8mm-u-boot.dtsi b/arch/arm/dts/imx8mm-
> > u-boot.dtsi
> > index d31bc822532..e7a6800b771 100644
> > --- a/arch/arm/dts/imx8mm-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mm-u-boot.dtsi
> > @@ -164,6 +164,19 @@
> >                                         };
> >  #endif
> > 
> > +                                       tee: tee {
> > +                                               description = "OP-
> > TEE";
> > +                                               type = "tee";
> > +                                               arch = "arm64";
> > +                                               compression =
> > "none";
> > +                                               os = "tee";
> > +
> > +                                               tee-os {
> > +                                                       filename =
> > "tee.bin";
> > +                                                       optional;
> > +                                               };
> > +                                       };
> > +
> >                                         binman_fip: fip {
> >                                                 arch = "arm64";
> >                                                 compression =
> > "none";
> > @@ -192,7 +205,7 @@
> >                                                 fdt = "fdt-SEQ";
> >                                                 firmware = "uboot";
> >  #ifndef CONFIG_ARMV8_PSCI
> > -                                               loadables = "atf";
> > +                                               loadables = "atf",
> > "tee";
> >  #endif
> >                                         };
> >                                 };
> > diff --git a/arch/arm/dts/imx8mn-u-boot.dtsi b/arch/arm/dts/imx8mn-
> > u-boot.dtsi
> > index 6875c6d44ff..bcb88f0a507 100644
> > --- a/arch/arm/dts/imx8mn-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mn-u-boot.dtsi
> > @@ -235,6 +235,19 @@
> >                                         };
> >  #endif
> > 
> > +                                       tee: tee {
> > +                                               description = "OP-
> > TEE";
> > +                                               type = "tee";
> > +                                               arch = "arm64";
> > +                                               compression =
> > "none";
> > +                                               os = "tee";
> > +
> > +                                               tee-os {
> > +                                                       filename =
> > "tee.bin";
> > +                                                       optional;
> > +                                               };
> > +                                       };
> > +
> >                                         binman_fip: fip {
> >                                                 arch = "arm64";
> >                                                 compression =
> > "none";
> > @@ -263,7 +276,7 @@
> >                                                 fdt = "fdt-SEQ";
> >                                                 firmware = "uboot";
> >  #ifndef CONFIG_ARMV8_PSCI
> > -                                               loadables = "atf";
> > +                                               loadables = "atf",
> > "tee";
> >  #endif
> >                                         };
> >                                 };
> > diff --git a/arch/arm/dts/imx8mp-u-boot.dtsi b/arch/arm/dts/imx8mp-
> > u-boot.dtsi
> > index 56749ccacd2..7a9c616fb1a 100644
> > --- a/arch/arm/dts/imx8mp-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mp-u-boot.dtsi
> > @@ -185,6 +185,19 @@
> >                                         };
> >  #endif
> > 
> > +                                       tee: tee {
> > +                                               description = "OP-
> > TEE";
> > +                                               type = "tee";
> > +                                               arch = "arm64";
> > +                                               compression =
> > "none";
> > +                                               os = "tee";
> > +
> > +                                               tee-os {
> > +                                                       filename =
> > "tee.bin";
> > +                                                       optional;
> > +                                               };
> > +                                       };
> > +
> >                                         @fdt-SEQ {
> >                                                 description =
> > "NAME";
> >                                                 type = "flat_dt";
> > @@ -204,7 +217,7 @@
> >                                                 fdt = "fdt-SEQ";
> >                                                 firmware = "uboot";
> >  #ifndef CONFIG_ARMV8_PSCI
> > -                                               loadables = "atf";
> > +                                               loadables = "atf",
> > "tee";
> >  #endif
> >                                         };
> >                                 };
> > 
> > --
> > 2.43.0
> > 

Hi Tim,

> 
> Hi Yannic,
> 
> I've attempted something like this in the past [1] but I added the
> load address and made it a Kconfig. It never made it in due to
> something happening in CI that I never had a chance to get back to.
> 
> What happens with the binman step if you don't have an overlay that
> specifies load/entry?

afaik binman does not handle such a case, i.e. there will be no
entry/load prop in the resulting binary. The tee node itself, however,
is present. That is why spl crashes at runtime; because it cannot find
the 'load' symbol for the tee node/blob.

Yannic

> 
> Best Regards,
> 
> Tim
> [1]
> https://patchwork.ozlabs.org/project/uboot/patch/20230622173006.3921891-1-tharvey@gateworks.com/



More information about the U-Boot mailing list