All of lore.kernel.org
 help / color / mirror / Atom feed
* OPTEE on i.MX8MP
@ 2026-03-17  2:07 Fabio Estevam
  2026-03-17  5:06 ` Peng Fan
  2026-03-17  6:41 ` Yannic Moog
  0 siblings, 2 replies; 4+ messages in thread
From: Fabio Estevam @ 2026-03-17  2:07 UTC (permalink / raw)
  To: Peng Fan (OSS), Ye Li
  Cc: U-Boot-Denx, Alice Guo, Yannic Moog, Tom Rini, Francesco Dolcini

Hi,

I'm trying to boot the imx8mp-evk board with Optee support.

TF-A v2.14
make -j12 CROSS_COMPILE=aarch64-linux-gnu- PLAT=imx8mp SPD=opteed bl31

Optee-OS 4.9.0
make -j12 CROSS_COMPILE=aarch64-linux-gnu- O=out/arm PLATFORM=imx-mx8mpevk

Then I copied the bl31.bin and tee.bin to the U-Boot directory:

U-Boot SPL 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:51:05 -0300)
WDT:   Started watchdog@30280000 with servicing every 1000ms (60s timeout)
SEC0:  RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, �
U-Boot SPL 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:53:30 -0300)
WDT:   Started watchdog@30280000 with servicing every 1000ms (60s timeout)
SEC0:  RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
load_simple_fit: Skip load 'tee': image size is 0!
***************************** Tee image is not found
NOTICE:  Do not release JR0 to NS as it can be used by HAB
NOTICE:  BL31: v2.14.0(release):sandbox/v2.14
NOTICE:  BL31: Built : 22:19:21, Mar 16 2026
ERROR:   Error initializing runtime service opteed_fast


U-Boot 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:53:30 -0300)

CPU:   NXP i.MX8MP[8] Rev1.0 A53 at 1200 MHz
Model: NXP i.MX8MPlus EVK board
DRAM:  6 GiB
optee optee: OP-TEE api uid mismatch  ************************* UID mismatch
....

Any ideas as to why Optee fails?

Does anyone have Optee working on imx8mp?

Thanks,

Fabio Estevam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: OPTEE on i.MX8MP
  2026-03-17  2:07 OPTEE on i.MX8MP Fabio Estevam
@ 2026-03-17  5:06 ` Peng Fan
  2026-03-17  6:41 ` Yannic Moog
  1 sibling, 0 replies; 4+ messages in thread
From: Peng Fan @ 2026-03-17  5:06 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Ye Li, U-Boot-Denx, Alice Guo, Yannic Moog, Tom Rini,
	Francesco Dolcini

Hi Fabio,

On Mon, Mar 16, 2026 at 11:07:54PM -0300, Fabio Estevam wrote:
>load_simple_fit: Skip load 'tee': image size is 0!

Not found tee?

>***************************** Tee image is not found
>NOTICE:  Do not release JR0 to NS as it can be used by HAB
>NOTICE:  BL31: v2.14.0(release):sandbox/v2.14
>NOTICE:  BL31: Built : 22:19:21, Mar 16 2026
>ERROR:   Error initializing runtime service opteed_fast

optee initialization failure.

>
>
>U-Boot 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:53:30 -0300)
>
>CPU:   NXP i.MX8MP[8] Rev1.0 A53 at 1200 MHz
>Model: NXP i.MX8MPlus EVK board
>DRAM:  6 GiB
>optee optee: OP-TEE api uid mismatch  ************************* UID mismatch
>....
>
>Any ideas as to why Optee fails?
>
>Does anyone have Optee working on imx8mp?

Are you using upstream ATF, upstream OP-TEE?

Regards
Peng

>
>Thanks,
>
>Fabio Estevam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: OPTEE on i.MX8MP
  2026-03-17  2:07 OPTEE on i.MX8MP Fabio Estevam
  2026-03-17  5:06 ` Peng Fan
@ 2026-03-17  6:41 ` Yannic Moog
  2026-03-17 17:06   ` Fabio Estevam
  1 sibling, 1 reply; 4+ messages in thread
From: Yannic Moog @ 2026-03-17  6:41 UTC (permalink / raw)
  To: Fabio Estevam, Peng Fan (OSS), Ye Li
  Cc: U-Boot-Denx, Alice Guo, Tom Rini, Francesco Dolcini

Hi Fabio,

On Mon, 2026-03-16 at 23:07 -0300, Fabio Estevam wrote:
> Hi,
> 
> I'm trying to boot the imx8mp-evk board with Optee support.
> 
> TF-A v2.14
> make -j12 CROSS_COMPILE=aarch64-linux-gnu- PLAT=imx8mp SPD=opteed bl31
> 
> Optee-OS 4.9.0
> make -j12 CROSS_COMPILE=aarch64-linux-gnu- O=out/arm PLATFORM=imx-mx8mpevk
> 
> Then I copied the bl31.bin and tee.bin to the U-Boot directory:

My guess is that you copied tee.bin, not tee-raw.bin [1] to the U-Boot directory.
We need tee-raw.bin.

Yannic

[1] https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html#id5

> 
> U-Boot SPL 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:51:05 -0300)
> WDT:   Started watchdog@30280000 with servicing every 1000ms (60s timeout)
> SEC0:  RNG instantiated
> Normal Boot
> Trying to boot from BOOTROM
> Boot Stage: Primary boot
> image offset 0x8000, �
> U-Boot SPL 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:53:30 -0300)
> WDT:   Started watchdog@30280000 with servicing every 1000ms (60s timeout)
> SEC0:  RNG instantiated
> Normal Boot
> Trying to boot from BOOTROM
> Boot Stage: Primary boot
> image offset 0x8000, pagesize 0x200, ivt offset 0x0
> load_simple_fit: Skip load 'tee': image size is 0!
> ***************************** Tee image is not found
> NOTICE:  Do not release JR0 to NS as it can be used by HAB
> NOTICE:  BL31: v2.14.0(release):sandbox/v2.14
> NOTICE:  BL31: Built : 22:19:21, Mar 16 2026
> ERROR:   Error initializing runtime service opteed_fast
> 
> 
> U-Boot 2026.04-rc4-00006-geefb822fb574 (Mar 16 2026 - 22:53:30 -0300)
> 
> CPU:   NXP i.MX8MP[8] Rev1.0 A53 at 1200 MHz
> Model: NXP i.MX8MPlus EVK board
> DRAM:  6 GiB
> optee optee: OP-TEE api uid mismatch  ************************* UID mismatch
> ....
> 
> Any ideas as to why Optee fails?
> 
> Does anyone have Optee working on imx8mp?
> 
> Thanks,
> 
> Fabio Estevam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: OPTEE on i.MX8MP
  2026-03-17  6:41 ` Yannic Moog
@ 2026-03-17 17:06   ` Fabio Estevam
  0 siblings, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2026-03-17 17:06 UTC (permalink / raw)
  To: Yannic Moog
  Cc: Peng Fan (OSS), Ye Li, U-Boot-Denx, Alice Guo, Tom Rini,
	Francesco Dolcini

Hi Yannic and Peng,

Thanks for your replies.

On Tue, Mar 17, 2026 at 3:41 AM Yannic Moog <Y.Moog@phytec.de> wrote:

> My guess is that you copied tee.bin, not tee-raw.bin [1] to the U-Boot directory.
> We need tee-raw.bin.

Yes, besides that, I had to pass the BL32_BASE option to TF-A and the
CFG_TZDRAM_START option to Optee-os:

TF-A (Mainline 2.14)
make -j12  SPD=opteed PLAT=imx8mp BL32_BASE=0x56000000
cp build/imx8mp/release/bl31.bin <u-boot-dir>

Optee-os (Mainline 4.9.0)
make -j12 CROSS_COMPILE=aarch64-linux-gnu- O=out/arm
PLATFORM=imx-mx8mpevk CFG_TZDRAM_START=0x56000000
cp out/arm/core/tee-raw.bin <u-boot-dir>/tee.bin

U-Boot:

--- a/configs/imx8mp_evk_defconfig
+++ b/configs/imx8mp_evk_defconfig
@@ -9,6 +9,7 @@ CONFIG_ENV_SIZE=0x4000
 CONFIG_ENV_OFFSET=0x200000
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-evk"
+CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
 CONFIG_TARGET_IMX8MP_EVK=y
 CONFIG_SYS_MONITOR_LEN=524288
 CONFIG_SPL_MMC=y

With that, Linux registers the optee device successfully on kernel 6.18:

# dmesg | grep optee
[    0.000000] OF: reserved mem:
0x0000000057c00000..0x0000000057ffffff (4096 KiB) nomap non-reusable
optee_shm@57c00000
[    0.000000] OF: reserved mem:
0x0000000056000000..0x0000000057bfffff (28672 KiB) nomap non-reusable
optee_core@56000000
[    0.501959] optee: probing for conduit method.
[    0.502012] optee: revision 4.9 (c2b0684fcd899299)
[    0.522839] optee: dynamic shared memory is enabled
[    0.523251] optee: initialized driver
# ls /dev/tee*
/dev/tee0      /dev/teepriv0

I'll submit the patch for the imx8mp_evk_defconfig change and will
also add an Optee entry in doc/board/nxp/imx8mp_evk.rst

Thanks,

Fabio Estevam

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-03-17 17:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-17  2:07 OPTEE on i.MX8MP Fabio Estevam
2026-03-17  5:06 ` Peng Fan
2026-03-17  6:41 ` Yannic Moog
2026-03-17 17:06   ` Fabio Estevam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.