summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorIgor Opaniuk <igor.opaniuk@toradex.com>2019-11-28 15:56:20 +0200
committerStefano Babic <sbabic@denx.de>2020-01-07 10:26:56 +0100
commit89038264bb242787826fa4621dca80f7f9594a7f (patch)
tree49ac0abf3dc7f5e656696fe205fb9df03410f2c5 /arch
parent0ba1b4de0e2d05a9b10cf25b1ee45631606db6ba (diff)
downloadu-boot-89038264bb242787826fa4621dca80f7f9594a7f.tar.gz
mach-imx: bootaux: add dcache flushing before enabling M4
This patch fixes the issue with broken bootaux command, when M4 binary is loaded and data cache isn't flushed before M4 core is enabled. Reproducing: > tftpboot ${loadaddr} ${board_name}/hello_world.bin > cp.b ${loadaddr} 0x7F8000 $filesize > bootaux 0x7F8000 Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/imx_bootaux.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
index ee786f7d06..7c8195e715 100644
--- a/arch/arm/mach-imx/imx_bootaux.c
+++ b/arch/arm/mach-imx/imx_bootaux.c
@@ -9,6 +9,7 @@
#include <command.h>
#include <imx_sip.h>
#include <linux/compiler.h>
+#include <cpu_func.h>
int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
{
@@ -27,6 +28,8 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
writel(stack, M4_BOOTROM_BASE_ADDR);
writel(pc, M4_BOOTROM_BASE_ADDR + 4);
+ flush_dcache_all();
+
/* Enable M4 */
#ifdef CONFIG_IMX8M
call_imx_sip(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0, 0);