From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: VFP handling in multiplatform feroceon kernels
Date: Tue, 24 Jun 2014 15:25:05 +0100 [thread overview]
Message-ID: <20140624142505.GF4489@arm.com> (raw)
In-Reply-To: <20140624141423.GP32514@n2100.arm.linux.org.uk>
On Tue, Jun 24, 2014 at 03:14:23PM +0100, Russell King - ARM Linux wrote:
> On Tue, Jun 24, 2014 at 03:10:56PM +0100, Catalin Marinas wrote:
> > On Tue, Jun 24, 2014 at 03:04:14PM +0100, Nicolas Pitre wrote:
> > > On Tue, 24 Jun 2014, Catalin Marinas wrote:
> > >
> > > > On Tue, Jun 24, 2014 at 02:17:06PM +0100, Arnd Bergmann wrote:
> > > > > Since 3.16, we have the ability to build a multiplatform kernel
> > > > > that includes both kirkwood (feroceon) and some other ARMv5 CPU.
> > > > >
> > > > > I accidentally stumbled over a bug in the VFP code that looks
> > > > > like it will break at least ARM9 VFP support if CPU_FEROCEON
> > > > > is also enabled, introduced by this (old) commit:
> > > >
> > > > I would argue that the bug is in the CPU (feroceon). See the end of this
> > > > email:
> > > >
> > > > http://www.spinics.net/lists/arm-kernel/msg41460.html
> > > >
> > > > and my follow-up. Basically you can't avoid the conditional compilation
> > > > as Feroceon doesn't follow the VFP sub-architecture spec and doesn't
> > > > present itself as a different CPU from an _ARM_ 9. Unless things have
> > > > changed with Marvell's hardware implementation and they got a new id, I
> > > > suggest you don't enable this for multi-platform.
> > >
> > > Only the early revision did hijack the ARM9 ID but still. We certainly
> > > can determine at run time if the platform being booted is equiped with a
> > > Feroceon before user space is started. In that case I'd suggest some
> > > runtime code patching to branch to some out-of-line assembly code for
> > > Feroceon.
> >
> > You don't even need to branch to out of line assembly, just branch over
> > the imprecise VFP abort handling in arch/arm/vfp/vfphw.S.
>
> This is not just about VFP - it's much bigger than that. Feroceon can't
> use proc-arm926.S (it has errata in the cache maintanence instructions)
> which also need handing. That's why we have a separate implementation
> (proc-feroceon.S) so that ARM926 is not hurt by this stupidity.
As Arnd suggested, we could enable multi-platform only for newer
Feroceon chips which presumably have different id, keeping
CONFIG_CPU_FEROCEON_OLD_ID disabled. The VFP code needs to be changed to
depend on CPU_FEROCEON_OLD_ID, otherwise do proper id checking.
Are there other places where we need to check for CPU_FEROCEON_OLD_ID?
--
Catalin
next prev parent reply other threads:[~2014-06-24 14:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-24 13:17 VFP handling in multiplatform feroceon kernels Arnd Bergmann
2014-06-24 13:31 ` Andrew Lunn
2014-06-24 13:47 ` Arnd Bergmann
2014-06-24 13:42 ` Catalin Marinas
2014-06-24 13:57 ` Arnd Bergmann
2014-06-24 14:04 ` Nicolas Pitre
2014-06-24 14:10 ` Catalin Marinas
2014-06-24 14:14 ` Russell King - ARM Linux
2014-06-24 14:25 ` Catalin Marinas [this message]
2014-06-24 14:32 ` Arnd Bergmann
2014-06-24 14:45 ` Nicolas Pitre
2014-06-24 14:35 ` Russell King - ARM Linux
2014-06-24 14:56 ` Nicolas Pitre
2014-06-24 15:01 ` Arnd Bergmann
2014-06-24 14:49 ` Nicolas Pitre
2014-06-24 14:56 ` Arnd Bergmann
2014-06-24 14:08 ` Russell King - ARM Linux
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=20140624142505.GF4489@arm.com \
--to=catalin.marinas@arm.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).