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 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.