[PATCH 1/2] ARM: i.MX6ull: Add SoC specific lowlevel_init function

Lucas Stach l.stach at pengutronix.de
Thu Sep 28 02:09:08 PDT 2017


Am Mittwoch, den 27.09.2017, 14:16 +0200 schrieb Sascha Hauer:
> On i.MX6ull (Cortex A7) We have to set the SMP bit before enabling
> the
> caches, otherwise they won't work. Add a SoC specific lowlevel_init
> function to be called by the i.MX6ull boards.

This isn't specific to the MX6ULL, but the Cortex-A7, which is used in
the whole MX6UL family. So I would prefer if this is called imx6ul_... 

Also a follow-up commit should switch over the already supported
MX6UL/ULL boards to the new init function.

Regards,
Lucas

> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  arch/arm/mach-imx/cpu_init.c             | 12 ++++++++++++
>  arch/arm/mach-imx/include/mach/generic.h |  1 +
>  2 files changed, 13 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/cpu_init.c b/arch/arm/mach-
> imx/cpu_init.c
> index 2b388cad8c..8f6d4b7902 100644
> --- a/arch/arm/mach-imx/cpu_init.c
> +++ b/arch/arm/mach-imx/cpu_init.c
> @@ -14,6 +14,7 @@
>  
>  #include <asm/barebox-arm-head.h>
>  #include <asm/errata.h>
> +#include <linux/types.h>
>  
>  void imx5_cpu_lowlevel_init(void)
>  {
> @@ -34,6 +35,17 @@ void imx6_cpu_lowlevel_init(void)
>  	enable_arm_errata_845369_war();
>  }
>  
> +void imx6ull_cpu_lowlevel_init(void)
> +{
> +	u32 val;
> +
> +	asm volatile ("mrc p15, 0, %0, c1, c0, 1\n" : "=r"(val));
> +	val |= (1 << 6);
> +	asm volatile("mcr p15, 0, %0, c1, c0, 1" : : "r" (val));
> +
> +	arm_cpu_lowlevel_init();
> +}
> +
>  void imx7_cpu_lowlevel_init(void)
>  {
>  	arm_cpu_lowlevel_init();
> diff --git a/arch/arm/mach-imx/include/mach/generic.h
> b/arch/arm/mach-imx/include/mach/generic.h
> index 73be9ceb55..eb8c7a5b7b 100644
> --- a/arch/arm/mach-imx/include/mach/generic.h
> +++ b/arch/arm/mach-imx/include/mach/generic.h
> @@ -48,6 +48,7 @@ int imx6_devices_init(void);
>  
>  void imx5_cpu_lowlevel_init(void);
>  void imx6_cpu_lowlevel_init(void);
> +void imx6ull_cpu_lowlevel_init(void);
>  void imx7_cpu_lowlevel_init(void);
>  void vf610_cpu_lowlevel_init(void);
>  



More information about the barebox mailing list