From: joelf@ti.com (Joel Fernandes)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP5: Switch to THUMB mode if needed on secondary CPU
Date: Mon, 28 Apr 2014 12:20:02 -0500 [thread overview]
Message-ID: <535E8DC2.4010504@ti.com> (raw)
In-Reply-To: <20140428164348.GA14354@e103592.cambridge.arm.com>
On 04/28/2014 11:43 AM, Dave Martin wrote:
> On Tue, Apr 22, 2014 at 01:31:46PM -0500, Joel Fernandes wrote:
>> On my DRA7 system, when the kernel is built in THUMB mode, the secondary CPU
>> (Cortex A15) fails to come up causing SMP boot on second CPU to timeout. This
>> seems to be because the CPU is in ARM mode once the ROM hands over control to
>> the kernel. Switch to THUMB mode if required once the kernel is control of
>> secondary CPU. On OMAP4 on the other hand, it appears to be in THUMB mode on
>> entry so this is not required and SMP boot works as is.
>>
>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Cc: Russell King <linux@arm.linux.org.uk>
>> Cc: Nishanth Menon <nm@ti.com>
>> Cc: Tony Lindgren <tony@atomide.com>
>> Signed-off-by: Joel Fernandes <joelf@ti.com>
>> ---
>> arch/arm/mach-omap2/omap-headsmp.S | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap-headsmp.S b/arch/arm/mach-omap2/omap-headsmp.S
>> index 75e9295..1809dce 100644
>> --- a/arch/arm/mach-omap2/omap-headsmp.S
>> +++ b/arch/arm/mach-omap2/omap-headsmp.S
>> @@ -1,7 +1,7 @@
>> /*
>> * Secondary CPU startup routine source file.
>> *
>> - * Copyright (C) 2009 Texas Instruments, Inc.
>> + * Copyright (C) 2014 Texas Instruments, Inc.
>> *
>> * Author:
>> * Santosh Shilimkar <santosh.shilimkar@ti.com>
>> @@ -28,9 +28,13 @@
>> * code. This routine also provides a holding flag into which
>> * secondary core is held until we're ready for it to initialise.
>> * The primary core will update this flag using a hardware
>> -+ * register AuxCoreBoot0.
>> + * register AuxCoreBoot0.
>> */
>> ENTRY(omap5_secondary_startup)
>
> Are you sure this problem is not caused by the missing ENDPROC() for
> omap5_secondary_startup?
>
> You have END() instead (which may have been accidental).
>
> Without ENDPROC(), the symbol is not marked as a function and so
> the Thumb bit won't be set when taking a pointer -- so the kernel
> is actually telling the firmware to enter in ARM state.
>
>
> Try changing END() to ENDPROC() without this patch, and see if it
> makes a difference.
>
> If it still doesn't work, then the firmware either doesn't support
> entering in ARM, or is buggy.
Thanks for the suggestion. I'm guessing what you mean is with ENDPROC,
interworking code uses bx instead of bl to set thumb mode.
But ROM/firmware doesn't have access to symbol table, how would it know
the type of the symbol to be ARM or THUMB before it branches?
regards,
-Joel
next prev parent reply other threads:[~2014-04-28 17:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-22 18:31 [PATCH] ARM: OMAP5: Switch to THUMB mode if needed on secondary CPU Joel Fernandes
2014-04-22 18:39 ` Santosh Shilimkar
2014-04-22 18:47 ` Nishanth Menon
2014-04-22 19:39 ` Joel Fernandes
2014-04-28 16:43 ` Dave Martin
2014-04-28 17:20 ` Joel Fernandes [this message]
2014-04-28 17:21 ` Joel Fernandes
2014-04-29 9:17 ` Dave Martin
2014-04-29 16:36 ` Joel Fernandes
2014-04-29 18:31 ` Dave Martin
2014-04-30 2:55 ` Joel Fernandes
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=535E8DC2.4010504@ti.com \
--to=joelf@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).