Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1165045
| From | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2 1/2] ARM: Add cpu_resume_arm() for firmwares that resume in ARM state |
| Date | 2015-06-15 08:40 +0200 |
| Message-ID | <pBwdQ-3OT-17@gated-at.bofh.it> (permalink) |
| References | <pwZTc-29Z-9@gated-at.bofh.it> <pwZTc-29Z-13@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
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/ | -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH v2 1/2] ARM: Add cpu_resume_arm() for firmwares that resume in ARM state Uwe Kleine-König <u.kleine-koenig@pengutronix.de> - 2015-06-15 08:40 +0200
csiph-web