Even though the riotboard is a i.MX6S, the flashheader is the same for
QDLS variants. It allows to integrate OP-TEE and does not hinder in
normal operation.
Signed-off-by: Fabian Pflug <redacted>
---
arch/arm/boards/embest-riotboard/flash-header-embest-riotboard.imxcfg | 1 +
1 file changed, 1 insertion(+)
Make use of the imx6q_barebox_entry instead of calling
barebox_arm_entry directly, which allows us to profit from optional
OP-TEE loading in this function.
Always setup UART, in case OP-TEE gets integrated, which will crash if
the UART is not configured correctly and debug is enabled.
Since now a bit more functions are called, we use
relocate_to_current_adr instead of get_runtime_offset.
This should not change behaviour of current implementations, but makes
way for OP-TEE implementations.
Signed-off-by: Fabian Pflug <redacted>
---
arch/arm/boards/embest-riotboard/lowlevel.c | 37 ++++++++++++++++++-----------
1 file changed, 23 insertions(+), 14 deletions(-)
@@ -11,26 +11,35 @@#include<asm/cache.h>#include<asm/mmu.h>#include<mach/imx/imx6.h>+#include<mach/imx/iomux-mx6.h>+#include<mach/imx/esdctl.h>externchar__dtb_imx6s_riotboard_start[];-ENTRY_FUNCTION(start_imx6s_riotboard,r0,r1,r2)+staticnoinlinevoidsetup_riotboard_uart(void){-void*fdt;+void__iomem*iomuxbase=IOMEM(MX6_IOMUXC_BASE_ADDR);-imx6_cpu_lowlevel_init();+writel(0x4,iomuxbase+0x016c);++imx6_ungate_all_peripherals();+// if uart ist not set-up, then OP-TEE will fail if debugging is enabled.+imx6_uart_setup(IOMEM(MX6_UART2_BASE_ADDR));if(IS_ENABLED(CONFIG_DEBUG_LL)){-/*-*CONFIG_DEBUG_IMX6Q_UART=y-*CONFIG_DEBUG_IMX_UART_PORT=2-*/-writel(0x4,0x020e016c);-imx6_ungate_all_peripherals();-imx6_uart_setup_ll();-putc_ll('a');+pbl_set_putc(imx_uart_putc,IOMEM(MX6_UART2_BASE_ADDR));+putc_ll('>');}--fdt=__dtb_imx6s_riotboard_start+get_runtime_offset();-barebox_arm_entry(0x10000000,SZ_1G,fdt);+}++ENTRY_FUNCTION(start_imx6s_riotboard,r0,r1,r2)+{+imx6_cpu_lowlevel_init();++relocate_to_current_adr();+setup_c();++setup_riotboard_uart();++imx6q_barebox_entry(__dtb_imx6s_riotboard_start);}
From: Ahmad Fatoum <a.fatoum@pengutronix.de> Date: 2026-05-08 15:04:24
Hi,
On 5/8/26 4:43 PM, Fabian Pflug wrote:
Make use of the imx6q_barebox_entry instead of calling
barebox_arm_entry directly, which allows us to profit from optional
OP-TEE loading in this function.
maybe change commit message title to
ARM: i.MX: riotboard: switch to imx6q_barebox_entry
?
quoted hunk
Always setup UART, in case OP-TEE gets integrated, which will crash if
the UART is not configured correctly and debug is enabled.
Since now a bit more functions are called, we use
relocate_to_current_adr instead of get_runtime_offset.
This should not change behaviour of current implementations, but makes
way for OP-TEE implementations.
Signed-off-by: Fabian Pflug <redacted>
---
arch/arm/boards/embest-riotboard/lowlevel.c | 37 ++++++++++++++++++-----------
1 file changed, 23 insertions(+), 14 deletions(-)
@@ -11,26 +11,35 @@#include<asm/cache.h>#include<asm/mmu.h>#include<mach/imx/imx6.h>+#include<mach/imx/iomux-mx6.h>+#include<mach/imx/esdctl.h>externchar__dtb_imx6s_riotboard_start[];-ENTRY_FUNCTION(start_imx6s_riotboard,r0,r1,r2)+staticnoinlinevoidsetup_riotboard_uart(void){-void*fdt;+void__iomem*iomuxbase=IOMEM(MX6_IOMUXC_BASE_ADDR);-imx6_cpu_lowlevel_init();+writel(0x4,iomuxbase+0x016c);++imx6_ungate_all_peripherals();+// if uart ist not set-up, then OP-TEE will fail if debugging is enabled.+imx6_uart_setup(IOMEM(MX6_UART2_BASE_ADDR));if(IS_ENABLED(CONFIG_DEBUG_LL)){-/*-*CONFIG_DEBUG_IMX6Q_UART=y-*CONFIG_DEBUG_IMX_UART_PORT=2-*/-writel(0x4,0x020e016c);-imx6_ungate_all_peripherals();-imx6_uart_setup_ll();-putc_ll('a');+pbl_set_putc(imx_uart_putc,IOMEM(MX6_UART2_BASE_ADDR));+putc_ll('>');}--fdt=__dtb_imx6s_riotboard_start+get_runtime_offset();-barebox_arm_entry(0x10000000,SZ_1G,fdt);
From: Ahmad Fatoum <a.fatoum@pengutronix.de> Date: 2026-05-08 15:34:04
On 5/8/26 4:43 PM, Fabian Pflug wrote:
Even though the riotboard is a i.MX6S, the flashheader is the same for
QDLS variants. It allows to integrate OP-TEE and does not hinder in
normal operation.
Signed-off-by: Fabian Pflug <redacted>
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>