aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Miguel Silva <rui.silva@linaro.org>2018-09-05 11:56:05 +0100
committerStefano Babic <sbabic@denx.de>2018-10-22 14:37:28 +0200
commitbe277c3a89fcec9f837bf4fb562c606155b0999f (patch)
tree006051a89e52553ba5f22e09dc68297fcf60a3ca
parent7677c0de14739fa0e63f97cf290b68bec0c497c1 (diff)
downloadu-boot-be277c3a89fcec9f837bf4fb562c606155b0999f.zip
u-boot-be277c3a89fcec9f837bf4fb562c606155b0999f.tar.gz
u-boot-be277c3a89fcec9f837bf4fb562c606155b0999f.tar.bz2
imx: mx7: avoid some initialization if low level is skipped
We can have the case where u-boot is launched after some other low level enabler, like for example when u-boot runs after arm-trusted-firmware and/or optee. So, because of that we may need to jump the initialization of some IP blocks even because we may no longer have the permission for that. So, if the config option to skip low level init is set disable also timer, board and csu initialization. Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Peng Fan <peng.fan@nxp.com> Cc: u-boot@lists.denx.de Reviewed-by: Peng Fan <peng.fan@nxp.com>
-rw-r--r--arch/arm/mach-imx/mx7/soc.c2
-rw-r--r--arch/arm/mach-imx/syscounter.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
index 502f033..3f74f8a 100644
--- a/arch/arm/mach-imx/mx7/soc.c
+++ b/arch/arm/mach-imx/mx7/soc.c
@@ -164,6 +164,7 @@ u32 __weak get_board_rev(void)
}
#endif
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
/* enable all periherial can be accessed in nosec mode */
static void init_csu(void)
{
@@ -285,6 +286,7 @@ int arch_cpu_init(void)
return 0;
}
+#endif
#ifdef CONFIG_ARCH_MISC_INIT
int arch_misc_init(void)
diff --git a/arch/arm/mach-imx/syscounter.c b/arch/arm/mach-imx/syscounter.c
index 676bb3c..2c31968 100644
--- a/arch/arm/mach-imx/syscounter.c
+++ b/arch/arm/mach-imx/syscounter.c
@@ -55,6 +55,7 @@ static inline unsigned long long us_to_tick(unsigned long long usec)
return usec;
}
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
int timer_init(void)
{
struct sctr_regs *sctr = (struct sctr_regs *)SCTR_BASE_ADDR;
@@ -76,6 +77,7 @@ int timer_init(void)
return 0;
}
+#endif
unsigned long long get_ticks(void)
{