From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de> To: Stephen Boyd <sboyd@codeaurora.org> Cc: Russell King <linux@arm.linux.org.uk>, Kevin Hilman <khilman@linaro.org>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, linux-arm-msm@vger.kernel.org, Andy Gross <agross@codeaurora.org>, linux-kernel@vger.kernel.org, Lina Iyer <lina.iyer@linaro.org>, Kumar Gala <galak@codeaurora.org>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 1/2] ARM: Add cpu_resume_arm() for firmwares that resume in ARM state Date: Mon, 15 Jun 2015 08:33:25 +0200 [thread overview] Message-ID: <20150615063324.GY18985@pengutronix.de> (raw) In-Reply-To: <1433272378-8470-2-git-send-email-sboyd@codeaurora.org> Hello, On Tue, Jun 02, 2015 at 12:12:57PM -0700, Stephen Boyd wrote: > Some platforms always enter the kernel in the ARM state even if > the kernel is compiled for THUMB2. Add a small wrapper on top of > cpu_resume() that switches into THUMB2 state. > > This fixes a problem reported by Kevin Hilman on next-20150601 > where the ifc6410 fails to boot a THUMB2 kernel because the > platform's firmware always enters the kernel in ARM mode from > deep idle states. > > Reported-by: Kevin Hilman <khilman@linaro.org> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Lina Iyer <lina.iyer@linaro.org> > Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> > diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S > index 76bb3128e135..f37593567ef5 100644 > --- a/arch/arm/kernel/sleep.S > +++ b/arch/arm/kernel/sleep.S > @@ -118,6 +118,12 @@ ENDPROC(cpu_resume_after_mmu) > > .text > .align > + .arm > +ENTRY(cpu_resume_arm) > + THUMB( badr r9, 1f ) @ Kernel is entered in ARM. > + THUMB( bx r9 ) @ If this is a Thumb-2 kernel, > + THUMB( .thumb ) @ switch to Thumb now. > + THUMB(1: ) > ENTRY(cpu_resume) > ARM_BE8(setend be) @ ensure we are in BE mode > #ifdef CONFIG_ARM_VIRT_EXT this patch is in next as 51ac91b7f6b11b0da55ac93885ee7b864865bcb1 and breaks efm32_defconfig. The exact error message is: AS arch/arm/kernel/sleep.o arch/arm/kernel/sleep.S: Assembler messages: arch/arm/kernel/sleep.S:121: Error: selected processor does not support ARM opcodes arch/arm/kernel/sleep.S:123: Error: bad instruction `badr r9,1f' arch/arm/kernel/sleep.S:124: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bx r9' scripts/Makefile.build:294: recipe for target 'arch/arm/kernel/sleep.o' failed make[3]: *** [arch/arm/kernel/sleep.o] Error 1 Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |
WARNING: multiple messages have this Message-ID (diff)
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 1/2] ARM: Add cpu_resume_arm() for firmwares that resume in ARM state Date: Mon, 15 Jun 2015 08:33:25 +0200 [thread overview] Message-ID: <20150615063324.GY18985@pengutronix.de> (raw) In-Reply-To: <1433272378-8470-2-git-send-email-sboyd@codeaurora.org> Hello, On Tue, Jun 02, 2015 at 12:12:57PM -0700, Stephen Boyd wrote: > Some platforms always enter the kernel in the ARM state even if > the kernel is compiled for THUMB2. Add a small wrapper on top of > cpu_resume() that switches into THUMB2 state. > > This fixes a problem reported by Kevin Hilman on next-20150601 > where the ifc6410 fails to boot a THUMB2 kernel because the > platform's firmware always enters the kernel in ARM mode from > deep idle states. > > Reported-by: Kevin Hilman <khilman@linaro.org> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Lina Iyer <lina.iyer@linaro.org> > Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> > diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S > index 76bb3128e135..f37593567ef5 100644 > --- a/arch/arm/kernel/sleep.S > +++ b/arch/arm/kernel/sleep.S > @@ -118,6 +118,12 @@ ENDPROC(cpu_resume_after_mmu) > > .text > .align > + .arm > +ENTRY(cpu_resume_arm) > + THUMB( badr r9, 1f ) @ Kernel is entered in ARM. > + THUMB( bx r9 ) @ If this is a Thumb-2 kernel, > + THUMB( .thumb ) @ switch to Thumb now. > + THUMB(1: ) > ENTRY(cpu_resume) > ARM_BE8(setend be) @ ensure we are in BE mode > #ifdef CONFIG_ARM_VIRT_EXT this patch is in next as 51ac91b7f6b11b0da55ac93885ee7b864865bcb1 and breaks efm32_defconfig. The exact error message is: AS arch/arm/kernel/sleep.o arch/arm/kernel/sleep.S: Assembler messages: arch/arm/kernel/sleep.S:121: Error: selected processor does not support ARM opcodes arch/arm/kernel/sleep.S:123: Error: bad instruction `badr r9,1f' arch/arm/kernel/sleep.S:124: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bx r9' scripts/Makefile.build:294: recipe for target 'arch/arm/kernel/sleep.o' failed make[3]: *** [arch/arm/kernel/sleep.o] Error 1 Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2015-06-15 6:33 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-06-02 19:12 [PATCH v2 0/2] Fix cpuidle on qcom's THUMB2 kernels Stephen Boyd 2015-06-02 19:12 ` Stephen Boyd 2015-06-02 19:12 ` [PATCH v2 1/2] ARM: Add cpu_resume_arm() for firmwares that resume in ARM state Stephen Boyd 2015-06-02 19:12 ` Stephen Boyd 2015-06-02 23:40 ` Russell King - ARM Linux 2015-06-02 23:40 ` Russell King - ARM Linux 2015-06-03 0:11 ` Stephen Boyd 2015-06-03 0:11 ` Stephen Boyd 2015-06-08 21:33 ` Kevin Hilman 2015-06-08 21:33 ` Kevin Hilman 2015-06-08 21:38 ` Stephen Boyd 2015-06-08 21:38 ` Stephen Boyd 2015-06-08 22:03 ` Kevin Hilman 2015-06-08 22:03 ` Kevin Hilman 2015-06-09 15:29 ` Russell King - ARM Linux 2015-06-09 15:29 ` Russell King - ARM Linux 2015-06-09 18:32 ` Stephen Boyd 2015-06-09 18:32 ` Stephen Boyd 2015-06-15 6:33 ` Uwe Kleine-König [this message] 2015-06-15 6:33 ` Uwe Kleine-König 2015-06-15 11:01 ` Russell King - ARM Linux 2015-06-15 11:01 ` Russell King - ARM Linux 2015-06-15 13:38 ` Uwe Kleine-König 2015-06-15 13:38 ` Uwe Kleine-König 2015-06-02 19:12 ` [PATCH v2 2/2] soc: qcom: spm: Fix idle on THUMB2 kernels Stephen Boyd 2015-06-02 19:12 ` Stephen Boyd 2015-06-04 16:15 ` Lina Iyer 2015-06-04 16:15 ` Lina Iyer 2015-06-02 21:23 ` [PATCH v2 0/2] Fix cpuidle on qcom's " Kevin Hilman 2015-06-02 21:23 ` Kevin Hilman
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=20150615063324.GY18985@pengutronix.de \ --to=u.kleine-koenig@pengutronix.de \ --cc=agross@codeaurora.org \ --cc=ard.biesheuvel@linaro.org \ --cc=galak@codeaurora.org \ --cc=khilman@linaro.org \ --cc=lina.iyer@linaro.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=sboyd@codeaurora.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: linkBe 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.