From 7b2d5699be47e6847e8880ab3956024ae3aaaed7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 9 Jul 2021 10:39:01 +0200 Subject: bsp/imx: Fix SMP start Flush imx_gic_dist_base so that secondary processors can use the right address. --- bsps/arm/imx/start/bspstart.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'bsps/arm') diff --git a/bsps/arm/imx/start/bspstart.c b/bsps/arm/imx/start/bspstart.c index 238bc2bd28..2f59f95752 100644 --- a/bsps/arm/imx/start/bspstart.c +++ b/bsps/arm/imx/start/bspstart.c @@ -153,6 +153,18 @@ static void imx_find_gic(const void *fdt) node = fdt_path_offset(fdt, "/soc/interrupt-controller"); } imx_gic_dist_base = (uintptr_t) imx_get_reg_of_node(fdt, node); + +#if defined(RTEMS_SMP) + /* + * Secondary processors start with a disabled data cache and use the GIC to + * deterine if they can continue the initialization, see + * arm_gic_irq_initialize_secondary_cpu(). + */ + rtems_cache_flush_multiple_data_lines( + &imx_gic_dist_base, + sizeof(imx_gic_dist_base) + ); +#endif } void bsp_start(void) -- cgit v1.2.3