summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/cpu_init.c
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-03-12 20:31:47 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2019-03-18 09:02:29 +0100
commitf4634187cfda8db89121a5fbc88992ad79882db2 (patch)
tree527b152a6fce8ef0a1722265f3e74c3f5a175086 /arch/arm/mach-imx/cpu_init.c
parent99ddaa5c52a3567f0ae928ce90c44e0976cf58ad (diff)
downloadbarebox-f4634187cfda8db89121a5fbc88992ad79882db2.tar.gz
barebox-f4634187cfda8db89121a5fbc88992ad79882db2.tar.xz
ARM: i.MX8MQ: Don't use cpu_is_mx8mq() at core_initcall level
Since __imx_cpu_type won't be initialized until imx_init()@postcore_initcall is executed cpu_is_mx8mq() will only work correctly at core_initcall level so long as imx_cpu_type does not resolve into __imx_cpu_type. This is currently the case and imx8mq_init_syscnt_frequency() works as expected, but it probably won't be in the future. To avoid this problem introduce imx8mq_cpu_lowlevel_init() and do system counter frequency initialization there. Also convert all of the i.MX8MQ boards to use this new function. Fixes: 5691aed9a ("ARM: i.MX8MQ: Check CPU type in imx8mq_init_syscnt_frequency()") Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/cpu_init.c')
-rw-r--r--arch/arm/mach-imx/cpu_init.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/cpu_init.c b/arch/arm/mach-imx/cpu_init.c
index ba45a1aef5..7a980cf912 100644
--- a/arch/arm/mach-imx/cpu_init.c
+++ b/arch/arm/mach-imx/cpu_init.c
@@ -18,6 +18,7 @@
#include <linux/bitops.h>
#include <mach/generic.h>
#include <mach/imx7-regs.h>
+#include <mach/imx8mq-regs.h>
#include <common.h>
#include <io.h>
#include <asm/syscounter.h>
@@ -66,4 +67,12 @@ void vf610_cpu_lowlevel_init(void)
{
arm_cpu_lowlevel_init();
}
+#else
+void imx8mq_cpu_lowlevel_init(void)
+{
+ arm_cpu_lowlevel_init();
+
+ if (current_el() == 3)
+ imx_cpu_timer_init(IOMEM(MX8MQ_SYSCNT_CTRL_BASE_ADDR));
+}
#endif