public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	ARM kernel mailing list
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Subject: Re: Multi-platform, and secure-only ARM errata workarounds
Date: Tue, 26 Feb 2013 18:11:15 +0000	[thread overview]
Message-ID: <20130226181114.GU17833@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <512CF87A.4090404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

On Tue, Feb 26, 2013 at 11:01:30AM -0700, Stephen Warren wrote:
> The conditional in that statement makes me wonder which of the following
> operations will fault in non-secure mode:
> 
> 1) Reading from the diagnostic register.

Won't fault.

> 2) Writing to the diagnostic register, of a value the same as what's
> already there.

Will fault.

> 3) Writing to the diagnostic register, of a value different than what's
> already there.

Will fault.

> Would the following not fault in both secure and non-secure mode:
> 
> read diagnostic register
> if desired bit already set:
>     b 1f
> set desired bit
> write value back to diagnostic register
> 1:

That is exactly what we do - the problem is, that if you require
workaround X to be enabled, and a different platform has that errata
fixed, then the other platform will not enable the work-around, and
the bit will be clear.

So, that causes the early boot code to read-check-modify-write the
secure-only register, and the write causes _that_ platform to fail to
boot.

Yes, yours continues to work just fine - but everyone else starts
failing.

Now, factor into that that any particular platform may have a range of
different versions of the ARM CPU core (OMAP CPUs have gone through
various Cortex-A9 CPU revisions) and you'll find that you can't tell
just from the platform information what work-arounds should be enabled.

The whole errata business is a total nightmare - and it gets much worse
with the advent of multi-SoC kernels.  We don't have an answer to this
other than disabling these troublesome errata and requiring the code
which comes before the kernel to do whatever is necessary.

As I've said, the alternative is to encode the errata information into
DT, and then write a DT parser purely in assembler... no one fancies
doing that though.

  parent reply	other threads:[~2013-02-26 18:11 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-25 23:47 Multi-platform, and secure-only ARM errata workarounds Stephen Warren
2013-02-26  9:36 ` Marc Dietrich
     [not found]   ` <4928288.ie8EUukfVD-D3pzGp0ZKuDWZbiwp4sFPyrtisivX6KghOMvlBiLbJSELgA04lAiVw@public.gmane.org>
2013-02-26 16:39     ` Stephen Warren
     [not found]       ` <512CE533.6020005-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-02-26 22:31         ` Nicolas Pitre
2013-02-27  9:03         ` Marc Dietrich
     [not found]           ` <22709540.96uJddbx1U-D3pzGp0ZKuDWZbiwp4sFPyrtisivX6KghOMvlBiLbJSELgA04lAiVw@public.gmane.org>
2013-02-27 14:00             ` Rob Herring
2013-02-27 17:42             ` Stephen Warren
2013-02-28 13:58               ` Marc Dietrich
     [not found] ` <512BF81A.3080700-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-02-26 10:23   ` Arnd Bergmann
     [not found]     ` <201302261023.26939.arnd-r2nGTMty4D4@public.gmane.org>
2013-02-26 10:31       ` Catalin Marinas
     [not found]         ` <20130226103114.GA16875-5wv7dgnIgG8@public.gmane.org>
2013-02-26 10:35           ` Catalin Marinas
     [not found]             ` <20130226103503.GB16875-5wv7dgnIgG8@public.gmane.org>
2013-02-26 10:48               ` Arnd Bergmann
     [not found]                 ` <201302261048.06644.arnd-r2nGTMty4D4@public.gmane.org>
2013-02-26 11:11                   ` Catalin Marinas
2013-02-26 11:35       ` Russell King - ARM Linux
     [not found]         ` <20130226113538.GS17833-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-02-26 14:07           ` Rob Herring
2013-02-26 18:01           ` Stephen Warren
     [not found]             ` <512CF87A.4090404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-02-26 18:11               ` Russell King - ARM Linux [this message]
     [not found]                 ` <20130226181114.GU17833-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-02-26 18:30                   ` Stephen Warren
     [not found]                     ` <512CFF30.9080300-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-02-26 18:49                       ` Russell King - ARM Linux
     [not found]                         ` <20130226184942.GV17833-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-02-27  6:07                           ` Santosh Shilimkar
2013-03-01 17:37                   ` Stephen Warren
     [not found]                     ` <5130E757.6090500-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-03-01 18:05                       ` Russell King - ARM Linux
2013-03-04  6:34                       ` Peter De Schrijver
     [not found]                         ` <20130304063436.GB27241-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2013-03-04  9:16                           ` Peter De Schrijver
     [not found]                             ` <20130304091600.GC27241-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2013-03-04 17:08                               ` Stephen Warren
     [not found]                                 ` <5134D50B.8060001-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-03-05  7:40                                   ` Peter De Schrijver
     [not found]                                     ` <20130305074047.GH27241-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2013-03-05 17:00                                       ` Stephen Warren
     [not found]                                         ` <513624AA.4090207-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-03-06  8:14                                           ` Peter De Schrijver
     [not found]                                             ` <20130306081401.GN27241-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2013-03-06 16:18                                               ` Stephen Warren
2013-03-10 17:25                                           ` Santosh Shilimkar
     [not found]                                             ` <513CC21E.7080901-l0cyMroinI0@public.gmane.org>
2013-03-10 18:47                                               ` Olof Johansson
     [not found]                                                 ` <CAOesGMgYL19+u-bLp080iasct5xtC=qfNCoz=SY7bbVgF=7JQg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-03-11 16:59                                                   ` Stephen Warren
2013-03-11 18:54                                                   ` Jason Gunthorpe

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=20130226181114.GU17833@n2100.arm.linux.org.uk \
    --to=linux-lfz/pmaqli7xmaaqvzeohq@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.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