From: Stephen Boyd <sboyd@codeaurora.org>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Will Deacon <will.deacon@arm.com>,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: Fix SMP_ON_UP for non ARM ltd. implementations
Date: Mon, 31 Jan 2011 13:33:30 -0800 [thread overview]
Message-ID: <4D472AAA.501@codeaurora.org> (raw)
In-Reply-To: <20110130164007.GA27436@n2100.arm.linux.org.uk>
On 01/30/2011 08:40 AM, Russell King - ARM Linux wrote:
> Ok, so with that added, it becomes:
>
> arch/arm/kernel/head.S | 22 ++++++++++------------
> 1 files changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
> index f17d9a0..c0225da 100644
> --- a/arch/arm/kernel/head.S
> +++ b/arch/arm/kernel/head.S
> @@ -392,24 +392,22 @@ ENDPROC(__turn_mmu_on)
>
> #ifdef CONFIG_SMP_ON_UP
> __fixup_smp:
> - mov r4, #0x00070000
> - orr r3, r4, #0xff000000 @ mask 0xff070000
> - orr r4, r4, #0x41000000 @ val 0x41070000
> - and r0, r9, r3
> - teq r0, r4 @ ARM CPU and ARMv6/v7?
> + and r3, r9, #0x000f0000 @ architecture version
> + teq r3, #0x000f0000 @ CPU ID supported?
> bne __fixup_smp_on_up @ no, assume UP
>
> - orr r3, r3, #0x0000ff00
> - orr r3, r3, #0x000000f0 @ mask 0xff07fff0
> + bic r3, r9, #0x00ff0000
> + bic r3, r3, #0x0000000f @ mask 0xff00fff0
> + mov r4, #0x41000000
> orr r4, r4, #0x0000b000
> - orr r4, r4, #0x00000020 @ val 0x4107b020
> - and r0, r9, r3
> - teq r0, r4 @ ARM 11MPCore?
> + orr r4, r4, #0x00000020 @ val 0x4100b020
> + teq r3, r4 @ ARM 11MPCore?
> moveq pc, lr @ yes, assume SMP
>
> mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
> - tst r0, #1 << 31
> - movne pc, lr @ bit 31 => SMP
> + and r0, r0, #0xc0000000 @ multiprocessing extensions and
> + teq r0, #0x80000000 @ not part of a uniprocessor system?
> + moveq pc, lr @ yes, assume SMP
>
> __fixup_smp_on_up:
> adr r0, 1f
Great. Looks good to me too. If I had know that ARM 11MPCore had an 0xf
in the architecture bits I would have suggested this fix instead.
Also, I wasn't sure if we should send fixes for EXPERIMENTAL features to
the stable tree. If its appropriate, please Cc stable when the patch
goes in.
Reported-and-Tested-by: Stephen Boyd <sboyd@codeaurora.org>
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: Fix SMP_ON_UP for non ARM ltd. implementations
Date: Mon, 31 Jan 2011 13:33:30 -0800 [thread overview]
Message-ID: <4D472AAA.501@codeaurora.org> (raw)
In-Reply-To: <20110130164007.GA27436@n2100.arm.linux.org.uk>
On 01/30/2011 08:40 AM, Russell King - ARM Linux wrote:
> Ok, so with that added, it becomes:
>
> arch/arm/kernel/head.S | 22 ++++++++++------------
> 1 files changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
> index f17d9a0..c0225da 100644
> --- a/arch/arm/kernel/head.S
> +++ b/arch/arm/kernel/head.S
> @@ -392,24 +392,22 @@ ENDPROC(__turn_mmu_on)
>
> #ifdef CONFIG_SMP_ON_UP
> __fixup_smp:
> - mov r4, #0x00070000
> - orr r3, r4, #0xff000000 @ mask 0xff070000
> - orr r4, r4, #0x41000000 @ val 0x41070000
> - and r0, r9, r3
> - teq r0, r4 @ ARM CPU and ARMv6/v7?
> + and r3, r9, #0x000f0000 @ architecture version
> + teq r3, #0x000f0000 @ CPU ID supported?
> bne __fixup_smp_on_up @ no, assume UP
>
> - orr r3, r3, #0x0000ff00
> - orr r3, r3, #0x000000f0 @ mask 0xff07fff0
> + bic r3, r9, #0x00ff0000
> + bic r3, r3, #0x0000000f @ mask 0xff00fff0
> + mov r4, #0x41000000
> orr r4, r4, #0x0000b000
> - orr r4, r4, #0x00000020 @ val 0x4107b020
> - and r0, r9, r3
> - teq r0, r4 @ ARM 11MPCore?
> + orr r4, r4, #0x00000020 @ val 0x4100b020
> + teq r3, r4 @ ARM 11MPCore?
> moveq pc, lr @ yes, assume SMP
>
> mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
> - tst r0, #1 << 31
> - movne pc, lr @ bit 31 => SMP
> + and r0, r0, #0xc0000000 @ multiprocessing extensions and
> + teq r0, #0x80000000 @ not part of a uniprocessor system?
> + moveq pc, lr @ yes, assume SMP
>
> __fixup_smp_on_up:
> adr r0, 1f
Great. Looks good to me too. If I had know that ARM 11MPCore had an 0xf
in the architecture bits I would have suggested this fix instead.
Also, I wasn't sure if we should send fixes for EXPERIMENTAL features to
the stable tree. If its appropriate, please Cc stable when the patch
goes in.
Reported-and-Tested-by: Stephen Boyd <sboyd@codeaurora.org>
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
next prev parent reply other threads:[~2011-01-31 21:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-26 23:04 [PATCH] ARM: Fix SMP_ON_UP for non ARM ltd. implementations Stephen Boyd
2011-01-26 23:04 ` Stephen Boyd
2011-01-30 12:20 ` Russell King - ARM Linux
2011-01-30 12:20 ` Russell King - ARM Linux
2011-01-30 16:27 ` Will Deacon
2011-01-30 16:27 ` Will Deacon
2011-01-30 16:40 ` Russell King - ARM Linux
2011-01-30 16:40 ` Russell King - ARM Linux
2011-01-31 10:32 ` Will Deacon
2011-01-31 10:32 ` Will Deacon
2011-01-31 21:33 ` Stephen Boyd [this message]
2011-01-31 21:33 ` Stephen Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D472AAA.501@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.