All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Rob Herring <robherring2@gmail.com>,
	Tony Lindgren <tony@atomide.com>,
	Dave Martin <dave.martin@linaro.org>,
	Will Deacon <Will.Deacon@arm.com>,
	Santosh Shilimkar <santosh.shilimkar@ti.com>,
	Jon Hunter <jon-hunter@ti.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] ARM: Fix errata 751472 handling on Cortex-A9 r1p*
Date: Fri, 16 Nov 2012 18:09:28 +0000	[thread overview]
Message-ID: <20121116180928.GB31456@arm.com> (raw)
In-Reply-To: <20121116095921.GH3332@n2100.arm.linux.org.uk>

On Fri, Nov 16, 2012 at 09:59:21AM +0000, Russell King - ARM Linux wrote:
> On Thu, Nov 15, 2012 at 08:31:33AM -0600, Rob Herring wrote:
> > So we should make all these work-arounds depend on !MULTI_PLATFORM then.
> 
> No, because some of the work-arounds don't require setting bits in magic
> registers.
> 
> Also realise this: we test for the revision of the CPU to which they're
> applicable before attempting to set them.  If you have a work-around
> enabled in the kernel, and it fails at boot, _that_ is an indicator not
> that the kernel is doing something wrong, but that you need to ensure
> that the work-around has been applied by the earlier stages.
> 
> It's not about "but platform X doesn't need it" - it's about platform X
> not having the earlier stages updated to fix the errata.

There is another aspect. Many CPUs in the field, even if they are a
certain rxpy revision, have ECO fixes applied for critical bugs and
don't require the workaround. Sometimes those undocumented bits have
considerable performance impact and vendors may apply an ECO (unless
they are very late in the tape-out process). But the ECO fix does not
change the CPU revision, hence the workaround becomes platform specific.

That's why I think it's better if those workarounds are just pushed to
the boot-loader for multi-platform kernels. Linux could still check the
bits and warn about them rather than failing to boot.

-- 
Catalin


WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: Fix errata 751472 handling on Cortex-A9 r1p*
Date: Fri, 16 Nov 2012 18:09:28 +0000	[thread overview]
Message-ID: <20121116180928.GB31456@arm.com> (raw)
In-Reply-To: <20121116095921.GH3332@n2100.arm.linux.org.uk>

On Fri, Nov 16, 2012 at 09:59:21AM +0000, Russell King - ARM Linux wrote:
> On Thu, Nov 15, 2012 at 08:31:33AM -0600, Rob Herring wrote:
> > So we should make all these work-arounds depend on !MULTI_PLATFORM then.
> 
> No, because some of the work-arounds don't require setting bits in magic
> registers.
> 
> Also realise this: we test for the revision of the CPU to which they're
> applicable before attempting to set them.  If you have a work-around
> enabled in the kernel, and it fails at boot, _that_ is an indicator not
> that the kernel is doing something wrong, but that you need to ensure
> that the work-around has been applied by the earlier stages.
> 
> It's not about "but platform X doesn't need it" - it's about platform X
> not having the earlier stages updated to fix the errata.

There is another aspect. Many CPUs in the field, even if they are a
certain rxpy revision, have ECO fixes applied for critical bugs and
don't require the workaround. Sometimes those undocumented bits have
considerable performance impact and vendors may apply an ECO (unless
they are very late in the tape-out process). But the ECO fix does not
change the CPU revision, hence the workaround becomes platform specific.

That's why I think it's better if those workarounds are just pushed to
the boot-loader for multi-platform kernels. Linux could still check the
bits and warn about them rather than failing to boot.

-- 
Catalin

  reply	other threads:[~2012-11-16 18:09 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 18:53 [PATCH] ARM: Fix errata 751472 handling on Cortex-A9 r1p* Tony Lindgren
2012-11-14 18:53 ` Tony Lindgren
2012-11-14 19:01 ` Russell King - ARM Linux
2012-11-14 19:01   ` Russell King - ARM Linux
2012-11-14 19:19   ` Tony Lindgren
2012-11-14 19:19     ` Tony Lindgren
2012-11-14 19:06 ` Jon Hunter
2012-11-14 19:06   ` Jon Hunter
2012-11-14 19:21   ` Tony Lindgren
2012-11-14 19:21     ` Tony Lindgren
2012-11-14 20:22   ` Russell King - ARM Linux
2012-11-14 20:22     ` Russell King - ARM Linux
2012-11-14 20:32     ` Tony Lindgren
2012-11-14 20:32       ` Tony Lindgren
2012-11-14 21:57       ` Rob Herring
2012-11-14 21:57         ` Rob Herring
2012-11-14 22:21         ` Tony Lindgren
2012-11-14 22:21           ` Tony Lindgren
2012-11-15  0:54           ` Rob Herring
2012-11-15  0:54             ` Rob Herring
2012-11-15  2:08             ` Tony Lindgren
2012-11-15  2:08               ` Tony Lindgren
2012-11-15 11:01             ` Catalin Marinas
2012-11-15 11:01               ` Catalin Marinas
2012-11-15 12:41               ` Siarhei Siamashka
2012-11-15 12:41                 ` Siarhei Siamashka
2012-11-15 13:36                 ` Russell King - ARM Linux
2012-11-15 13:36                   ` Russell King - ARM Linux
2012-11-15 13:52                 ` Catalin Marinas
2012-11-15 13:52                   ` Catalin Marinas
2012-11-15 15:14                   ` Måns Rullgård
2012-11-15 15:14                     ` Måns Rullgård
2012-11-15 14:31               ` Rob Herring
2012-11-15 14:31                 ` Rob Herring
2012-11-15 14:37                 ` Catalin Marinas
2012-11-15 14:37                   ` Catalin Marinas
2012-11-15 15:37                   ` Rob Herring
2012-11-15 15:37                     ` Rob Herring
2012-11-15 16:06                     ` Catalin Marinas
2012-11-15 16:06                       ` Catalin Marinas
2012-11-16 10:05                     ` Russell King - ARM Linux
2012-11-16 10:05                       ` Russell King - ARM Linux
2012-11-16 17:13                       ` Tony Lindgren
2012-11-16 17:13                         ` Tony Lindgren
2012-11-16 18:41                         ` Russell King - ARM Linux
2012-11-16 18:41                           ` Russell King - ARM Linux
2012-11-16  9:59                 ` Russell King - ARM Linux
2012-11-16  9:59                   ` Russell King - ARM Linux
2012-11-16 18:09                   ` Catalin Marinas [this message]
2012-11-16 18:09                     ` Catalin Marinas
2012-11-16 18:39                     ` Russell King - ARM Linux
2012-11-16 18:39                       ` Russell King - ARM Linux
2012-11-17 10:46                       ` Catalin Marinas
2012-11-17 10:46                         ` Catalin Marinas
2012-11-15  9:22           ` Russell King - ARM Linux
2012-11-15  9:22             ` Russell King - ARM Linux
2012-12-12  0:46         ` Jon Masters

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=20121116180928.GB31456@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=dave.martin@linaro.org \
    --cc=jon-hunter@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=robherring2@gmail.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=tony@atomide.com \
    /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.