aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2024-02-26 18:37:18 +0100
committerFabio Estevam <festevam@gmail.com>2024-03-04 08:18:13 -0300
commitc2666fdab6f22914141e934cd06d967b91bbce10 (patch)
tree52e9052ad21f5256edb21bef88b0ceadf2140065
parenteac52e4be4e234d563d6911737ee7ccdc0ada1f1 (diff)
downloadu-boot-c2666fdab6f22914141e934cd06d967b91bbce10.zip
u-boot-c2666fdab6f22914141e934cd06d967b91bbce10.tar.gz
u-boot-c2666fdab6f22914141e934cd06d967b91bbce10.tar.bz2
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>
-rw-r--r--arch/arm/mach-imx/imx9/container.cfg3
-rw-r--r--board/freescale/imx93_evk/spl.c7
-rw-r--r--board/phytec/phycore_imx93/spl.c7
-rw-r--r--board/variscite/imx93_var_som/spl.c6
4 files changed, 22 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/imx9/container.cfg b/arch/arm/mach-imx/imx9/container.cfg
index f268bc9..72fe791 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 a98ed69..2fd5559 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 dabc531..16303fc 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 e6db4eb..36e1721 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));
}