diff mbox

ARM: Versatile Express: extend the MPIDR range used for pen release check

Message ID 1358852200-4581-1-git-send-email-lorenzo.pieralisi@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lorenzo Pieralisi Jan. 22, 2013, 10:56 a.m. UTC
In ARM multi-cluster systems the MPIDR affinity level 0 cannot be used as a
single cpu identifier, affinity levels 1 and 2 must be taken into account as
well.
This patch extends the MPIDR usage to affinity levels 1 and 2 in versatile
secondary cores start up code in order to compare the passed pen_release
value with the full-blown affinity mask.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
---
 arch/arm/plat-versatile/headsmp.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Nicolas Pitre Jan. 22, 2013, 6:25 p.m. UTC | #1
On Tue, 22 Jan 2013, Lorenzo Pieralisi wrote:

> In ARM multi-cluster systems the MPIDR affinity level 0 cannot be used as a
> single cpu identifier, affinity levels 1 and 2 must be taken into account as
> well.
> This patch extends the MPIDR usage to affinity levels 1 and 2 in versatile
> secondary cores start up code in order to compare the passed pen_release
> value with the full-blown affinity mask.
> 
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>

Note that my b.L series makes this patch obsolete.



> ---
>  arch/arm/plat-versatile/headsmp.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
> index dd703ef..b178d44 100644
> --- a/arch/arm/plat-versatile/headsmp.S
> +++ b/arch/arm/plat-versatile/headsmp.S
> @@ -20,7 +20,7 @@
>   */
>  ENTRY(versatile_secondary_startup)
>  	mrc	p15, 0, r0, c0, c0, 5
> -	and	r0, r0, #15
> +	bic	r0, #0xff000000
>  	adr	r4, 1f
>  	ldmia	r4, {r5, r6}
>  	sub	r4, r4, r5
> -- 
> 1.7.12
> 
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
Lorenzo Pieralisi Jan. 22, 2013, 6:58 p.m. UTC | #2
On Tue, Jan 22, 2013 at 06:25:20PM +0000, Nicolas Pitre wrote:
> On Tue, 22 Jan 2013, Lorenzo Pieralisi wrote:
> 
> > In ARM multi-cluster systems the MPIDR affinity level 0 cannot be used as a
> > single cpu identifier, affinity levels 1 and 2 must be taken into account as
> > well.
> > This patch extends the MPIDR usage to affinity levels 1 and 2 in versatile
> > secondary cores start up code in order to compare the passed pen_release
> > value with the full-blown affinity mask.
> > 
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> 
> Note that my b.L series makes this patch obsolete.

This is needed to boot TC2 in the mainline. Agreed, when the power API
BSP support for TC2 is merged this can be removed, but waiting for that to
happen we should fix the current code to enable TC2 in its current state.

Lorenzo
Nicolas Pitre Jan. 22, 2013, 8:27 p.m. UTC | #3
On Tue, 22 Jan 2013, Lorenzo Pieralisi wrote:

> On Tue, Jan 22, 2013 at 06:25:20PM +0000, Nicolas Pitre wrote:
> > On Tue, 22 Jan 2013, Lorenzo Pieralisi wrote:
> > 
> > > In ARM multi-cluster systems the MPIDR affinity level 0 cannot be used as a
> > > single cpu identifier, affinity levels 1 and 2 must be taken into account as
> > > well.
> > > This patch extends the MPIDR usage to affinity levels 1 and 2 in versatile
> > > secondary cores start up code in order to compare the passed pen_release
> > > value with the full-blown affinity mask.
> > > 
> > > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> > 
> > Note that my b.L series makes this patch obsolete.
> 
> This is needed to boot TC2 in the mainline. Agreed, when the power API
> BSP support for TC2 is merged this can be removed, but waiting for that to
> happen we should fix the current code to enable TC2 in its current state.

Sensible.

Acked-by: Nicolas Pitre <nico@linaro.org>


Nicolas
diff mbox

Patch

diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
index dd703ef..b178d44 100644
--- a/arch/arm/plat-versatile/headsmp.S
+++ b/arch/arm/plat-versatile/headsmp.S
@@ -20,7 +20,7 @@ 
  */
 ENTRY(versatile_secondary_startup)
 	mrc	p15, 0, r0, c0, c0, 5
-	and	r0, r0, #15
+	bic	r0, #0xff000000
 	adr	r4, 1f
 	ldmia	r4, {r5, r6}
 	sub	r4, r4, r5