[PATCH 1/5] ARM: mvebu: Add common reset_cpu function

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Tue Sep 16 12:17:03 PDT 2014


On 09/15/2014 09:41 AM, Sascha Hauer wrote:
> mvebu has a reset_cpu function per SoC this does not work when multiple
> SoCs are selected, so add a common reset_cpu function which calls into
> the SoC specific ones.
> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  arch/arm/mach-mvebu/armada-370-xp.c       | 19 ++++++++++---------
>  arch/arm/mach-mvebu/common.c              | 15 ++++++++++++++-
>  arch/arm/mach-mvebu/dove.c                | 21 +++++++++++----------
>  arch/arm/mach-mvebu/include/mach/common.h |  1 +
>  arch/arm/mach-mvebu/kirkwood.c            | 19 ++++++++++---------
>  5 files changed, 46 insertions(+), 29 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
> index f2b991e..6251100 100644
> --- a/arch/arm/mach-mvebu/armada-370-xp.c
> +++ b/arch/arm/mach-mvebu/armada-370-xp.c
> @@ -44,11 +44,21 @@ static inline void armada_370_xp_memory_find(unsigned long *phys_base,
>  	}
>  }
>  
> +static void __noreturn armada_370_xp_reset_cpu(unsigned long addr)
> +{
> +	writel(0x1, ARMADA_370_XP_SYSCTL_BASE + 0x60);
> +	writel(0x1, ARMADA_370_XP_SYSCTL_BASE + 0x64);
> +	while (1)
> +		;
> +}
> +
>  static int armada_370_xp_init_soc(void)
>  {
>  	unsigned long phys_base, phys_size;
>  	u32 reg;
>  
> +	mvebu_set_reset(armada_370_xp_reset_cpu);
> +
>  	barebox_set_model("Marvell Armada 370/XP");
>  	barebox_set_hostname("armada");
>  
> @@ -65,12 +75,3 @@ static int armada_370_xp_init_soc(void)
>  	return 0;
>  }
>  core_initcall(armada_370_xp_init_soc);
> -
> -void __noreturn reset_cpu(unsigned long addr)
> -{
> -	writel(0x1, ARMADA_370_XP_SYSCTL_BASE + 0x60);
> -	writel(0x1, ARMADA_370_XP_SYSCTL_BASE + 0x64);
> -	while (1)
> -		;
> -}
> -EXPORT_SYMBOL(reset_cpu);
> diff --git a/arch/arm/mach-mvebu/common.c b/arch/arm/mach-mvebu/common.c
> index ac4b332..5c3ac14 100644
> --- a/arch/arm/mach-mvebu/common.c
> +++ b/arch/arm/mach-mvebu/common.c
> @@ -21,6 +21,7 @@
>  #include <of.h>
>  #include <of_address.h>
>  #include <linux/clk.h>
> +#include <mach/common.h>
>  
>  /*
>   * Marvell MVEBU SoC id and revision can be read from any PCIe
> @@ -137,4 +138,16 @@ static int mvebu_memory_of_fixup(struct device_node *root, void *context)
>  static int mvebu_memory_fixup_register(void) {
>  	return of_register_fixup(mvebu_memory_of_fixup, NULL);
>  }
> -pure_initcall(mvebu_memory_fixup_register);

Unrelated removal, this should move to the next patch.

Sebastian



More information about the barebox mailing list