From c2666fdab6f22914141e934cd06d967b91bbce10 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe <othacehe@gnu.org> Date: Mon, 26 Feb 2024 18:37:18 +0100 Subject: [PATCH] imx9: Fix OP-TEE support This fixes OP-TEE support by: - Adding tee.bin to container.cfg - Starting ELE RNG in SPL Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> --- arch/arm/mach-imx/imx9/container.cfg | 3 ++- board/freescale/imx93_evk/spl.c | 7 +++++++ board/phytec/phycore_imx93/spl.c | 7 +++++++ board/variscite/imx93_var_som/spl.c | 6 ++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-imx/imx9/container.cfg b/arch/arm/mach-imx/imx9/container.cfg index f268bc9eb2..72fe791eae 100644 --- a/arch/arm/mach-imx/imx9/container.cfg +++ b/arch/arm/mach-imx/imx9/container.cfg @@ -7,4 +7,5 @@ BOOT_FROM SD 0x400 SOC_TYPE IMX9 CONTAINER IMAGE A55 bl31.bin 0x204E0000 -IMAGE A55 u-boot.bin CONFIG_TEXT_BASE \ No newline at end of file +IMAGE A55 u-boot.bin CONFIG_TEXT_BASE +IMAGE A55 tee.bin 0x96000000 \ No newline at end of file diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c index a98ed69db8..2fd5559195 100644 --- a/board/freescale/imx93_evk/spl.c +++ b/board/freescale/imx93_evk/spl.c @@ -20,6 +20,7 @@ #include <asm/mach-imx/boot_mode.h> #include <asm/mach-imx/mxc_i2c.h> #include <asm/arch-mx7ulp/gpio.h> +#include <asm/mach-imx/ele_api.h> #include <asm/mach-imx/syscounter.h> #include <asm/sections.h> #include <dm/uclass.h> @@ -43,6 +44,12 @@ int spl_board_boot_device(enum boot_device boot_dev_spl) void spl_board_init(void) { + int ret; + + ret = ele_start_rng(); + if (ret) + printf("Fail to start RNG: %d\n", ret); + puts("Normal Boot\n"); } diff --git a/board/phytec/phycore_imx93/spl.c b/board/phytec/phycore_imx93/spl.c index dabc5316f3..16303fc187 100644 --- a/board/phytec/phycore_imx93/spl.c +++ b/board/phytec/phycore_imx93/spl.c @@ -11,6 +11,7 @@ #include <asm/arch/sys_proto.h> #include <asm/arch/trdc.h> #include <asm/mach-imx/boot_mode.h> +#include <asm/mach-imx/ele_api.h> #include <asm/sections.h> #include <hang.h> #include <init.h> @@ -34,6 +35,12 @@ int spl_board_boot_device(enum boot_device boot_dev_spl) void spl_board_init(void) { + int ret; + + ret = ele_start_rng(); + if (ret) + printf("Fail to start RNG: %d\n", ret); + puts("Normal Boot\n"); } diff --git a/board/variscite/imx93_var_som/spl.c b/board/variscite/imx93_var_som/spl.c index e6db4eb562..36e17219d6 100644 --- a/board/variscite/imx93_var_som/spl.c +++ b/board/variscite/imx93_var_som/spl.c @@ -20,6 +20,7 @@ #include <asm/mach-imx/mxc_i2c.h> #include <asm/arch-mx7ulp/gpio.h> #include <asm/sections.h> +#include <asm/mach-imx/ele_api.h> #include <asm/mach-imx/syscounter.h> #include <dm/uclass.h> #include <dm/device.h> @@ -47,9 +48,14 @@ int spl_board_boot_device(enum boot_device boot_dev_spl) void spl_board_init(void) { struct var_eeprom *ep = VAR_EEPROM_DATA; + int ret; puts("Normal Boot\n"); + ret = ele_start_rng(); + if (ret) + printf("Fail to start RNG: %d\n", ret); + /* Copy EEPROM contents to DRAM */ memcpy(ep, &eeprom, sizeof(*ep)); } -- 2.39.5