[PATCH 07/10] ARM: mvebu: add SMP support for Armada 375 and Armada 38x

Stephen Boyd sboyd at codeaurora.org
Fri Mar 28 14:13:21 EDT 2014


On 03/28/14 06:07, Thomas Petazzoni wrote:
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 8634222..e88d951 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -45,6 +45,8 @@ config MACH_ARMADA_375
>  	select ARMADA_375_CLK
>  	select CPU_V7
>  	select HAVE_ARM_SCU
> +	select HAVE_ARM_TWD

This should have "if SMP" appended to it (same for HAVE_ARM_SCU).

>
> diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c
> index 6260cb8..9ded4b9 100644
> --- a/arch/arm/mach-mvebu/board-v7.c
> +++ b/arch/arm/mach-mvebu/board-v7.c
> @@ -146,6 +146,7 @@ static const char * const armada_375_dt_compat[] = {
>  };
>  
>  DT_MACHINE_START(ARMADA_375_DT, "Marvell Armada 375 (Device Tree)")
> +	.smp		= smp_ops(mvebu_cortex_a9_smp_ops),
>  	.init_time	= mvebu_timer_and_clk_init,
>  	.restart	= mvebu_restart,
>  	.dt_compat	= armada_375_dt_compat,
> @@ -158,6 +159,7 @@ static const char * const armada_38x_dt_compat[] = {
>  };
>  
>  DT_MACHINE_START(ARMADA_38X_DT, "Marvell Armada 380/385 (Device Tree)")
> +	.smp		= smp_ops(mvebu_cortex_a9_smp_ops),
>  	.init_time	= mvebu_timer_and_clk_init,
>  	.restart	= mvebu_restart,
>  	.dt_compat	= armada_38x_dt_compat,

You may want to look into using the enable-method property in devicetree
so that you don't have to set the smp ops here. The patch to support
that is sitting in -next as 6c3ff8b11a16 (ARM: Introduce
CPU_METHOD_OF_DECLARE() for cpu hotplug/smp, 2013-10-30).

> diff --git a/arch/arm/mach-mvebu/headsmp-a9.S b/arch/arm/mach-mvebu/headsmp-a9.S
> new file mode 100644
> index 0000000..78e66c9
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/headsmp-a9.S
> @@ -0,0 +1,22 @@
> +/*
> + * SMP support: Entry point for secondary CPUs of Marvell EBU
> + * Cortex-A9 based SOCs (Armada 375 and Armada 38x).
> + *
> + * Copyright (C) 2014 Marvell
> + *
> + * Gregory CLEMENT <gregory.clement at free-electrons.com>
> + * Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2.  This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#include <linux/linkage.h>
> +#include <linux/init.h>
> +
> +	__CPUINIT

__CPUINIT is dead. Don't use it.

> +ENTRY(mvebu_cortex_a9_secondary_startup)
> +	bl      v7_invalidate_l1
> +	b	secondary_startup
> +ENDPROC(mvebu_cortex_a9_secondary_startup)
>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation




More information about the linux-arm-kernel mailing list