From: Tony Lindgren <tony@atomide.com> To: Sebastian Reichel <sre@kernel.org> Cc: Matthijs van Duin <matthijsvanduin@gmail.com>, Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>, Pavel Machek <pavel@ucw.cz> Subject: Re: ARM errata 430973 on multi platform kernels Date: Mon, 6 Apr 2015 08:24:03 -0700 [thread overview] Message-ID: <20150406152402.GH18048@atomide.com> (raw) In-Reply-To: <20150405133934.GC9186@earth> * Sebastian Reichel <sre@kernel.org> [150405 06:40]: > Hi, > > On Sun, Apr 05, 2015 at 06:13:47AM +0200, Matthijs van Duin wrote: > > On 4 April 2015 at 00:52, Tony Lindgren <tony@atomide.com> wrote: > > > Right, it affects n900 for sure. My point is that it also seems to > > > affect 37xx versions not listed to suffer from this issue. > > > > They shouldn't... erratum 430973 only affected Cortex-A8 r1, and the > > dm37xx should have an r3p2 right? > > > > A word of caution though: at least on the DM814x and AM335x, secure > > ROM sets bit 6 (IBE) in the Auxiliary Control Register, thereby > > enabling BTB invalidate instructions (which normally execute as nops). > > This is presumably a leftover of the erratum 430973 workaround, but it > > means there is a risk of running afoul of erratum 687067 if BTB > > invalidate by MVA instructions are actually used. > > > > I would actually suggest clearing IBE if it set on Cortex-A8 r2 or > > later processors and a secure monitor call is available to do so > > (there is on the DM814x and AM335x, dunno about the 37xx), also for > > performance reasons: BTB invalidates are quite expensive instructions > > (when enabled). > > So if I understand the issue correct, it would be ok to enable the > 430973 workaround in cpu_v7_switch_mm for arm multiplatform kernels > (mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB). On unaffected > Cortex-A8 platforms the IBE bit should be unset (resulting in a nop > instead of the BTB flush). Well we only want to enable for cortex-a8 revisions affected by 430973, so a custom cpu_v7_switch_mm seems like the way to go there. And then we need checks for clearing IBE for unaffected cortex-a8 revisions. I'll check to today if I have IBE bit set on the systems where I'm seeing issues that should not be affected by 430973. > So assuming, that the same is true for non Cortex-A8 platforms: Can > the workaround simply be enabled by default if CPU_V7 is selected? It should be enabled conditionally. Regards, Tony
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren) To: linux-arm-kernel@lists.infradead.org Subject: ARM errata 430973 on multi platform kernels Date: Mon, 6 Apr 2015 08:24:03 -0700 [thread overview] Message-ID: <20150406152402.GH18048@atomide.com> (raw) In-Reply-To: <20150405133934.GC9186@earth> * Sebastian Reichel <sre@kernel.org> [150405 06:40]: > Hi, > > On Sun, Apr 05, 2015 at 06:13:47AM +0200, Matthijs van Duin wrote: > > On 4 April 2015 at 00:52, Tony Lindgren <tony@atomide.com> wrote: > > > Right, it affects n900 for sure. My point is that it also seems to > > > affect 37xx versions not listed to suffer from this issue. > > > > They shouldn't... erratum 430973 only affected Cortex-A8 r1, and the > > dm37xx should have an r3p2 right? > > > > A word of caution though: at least on the DM814x and AM335x, secure > > ROM sets bit 6 (IBE) in the Auxiliary Control Register, thereby > > enabling BTB invalidate instructions (which normally execute as nops). > > This is presumably a leftover of the erratum 430973 workaround, but it > > means there is a risk of running afoul of erratum 687067 if BTB > > invalidate by MVA instructions are actually used. > > > > I would actually suggest clearing IBE if it set on Cortex-A8 r2 or > > later processors and a secure monitor call is available to do so > > (there is on the DM814x and AM335x, dunno about the 37xx), also for > > performance reasons: BTB invalidates are quite expensive instructions > > (when enabled). > > So if I understand the issue correct, it would be ok to enable the > 430973 workaround in cpu_v7_switch_mm for arm multiplatform kernels > (mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB). On unaffected > Cortex-A8 platforms the IBE bit should be unset (resulting in a nop > instead of the BTB flush). Well we only want to enable for cortex-a8 revisions affected by 430973, so a custom cpu_v7_switch_mm seems like the way to go there. And then we need checks for clearing IBE for unaffected cortex-a8 revisions. I'll check to today if I have IBE bit set on the systems where I'm seeing issues that should not be affected by 430973. > So assuming, that the same is true for non Cortex-A8 platforms: Can > the workaround simply be enabled by default if CPU_V7 is selected? It should be enabled conditionally. Regards, Tony
next prev parent reply other threads:[~2015-04-06 15:27 UTC|newest] Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-01 19:07 [PATCH RESEND] ARM: dts: OMAP3-N900: Add microphone bias voltages Jarkko Nikula 2015-03-30 16:30 ` Jarkko Nikula [not found] ` <55197A12.1050009-FVTvWyuFUl3QT0dZR+AlfA@public.gmane.org> 2015-03-30 16:42 ` Tony Lindgren 2015-03-30 17:45 ` Jarkko Nikula [not found] ` <55198BA4.5010207-FVTvWyuFUl3QT0dZR+AlfA@public.gmane.org> 2015-03-30 17:50 ` Tony Lindgren 2015-03-31 12:32 ` Sebastian Reichel 2015-04-01 19:47 ` Tony Lindgren 2015-04-03 16:35 ` ARM errata 430973 on multi platform kernels (was: OMAP3-N900: Add microphone bias voltages) Sebastian Reichel 2015-04-03 18:39 ` Tony Lindgren 2015-04-03 18:39 ` Tony Lindgren 2015-04-03 19:21 ` Robert Nelson 2015-04-03 19:21 ` Robert Nelson 2015-04-05 13:00 ` Sebastian Reichel 2015-04-05 13:00 ` Sebastian Reichel 2015-04-05 13:26 ` Pali Rohár 2015-04-05 13:26 ` Pali Rohár 2015-04-05 13:45 ` Sebastian Reichel 2015-04-05 13:45 ` Sebastian Reichel 2015-04-05 13:52 ` Pali Rohár 2015-04-05 13:52 ` Pali Rohár 2015-04-06 17:38 ` Sebastian Reichel 2015-04-06 17:38 ` Sebastian Reichel 2015-04-03 20:42 ` Pavel Machek 2015-04-03 20:42 ` Pavel Machek 2015-04-03 22:08 ` ARM errata 430973 on multi platform kernels Ivaylo Dimitrov 2015-04-03 22:08 ` Ivaylo Dimitrov 2015-04-03 22:15 ` Tony Lindgren 2015-04-03 22:15 ` Tony Lindgren 2015-04-03 22:47 ` Ivaylo Dimitrov 2015-04-03 22:47 ` Ivaylo Dimitrov 2015-04-03 22:52 ` Tony Lindgren 2015-04-03 22:52 ` Tony Lindgren 2015-04-05 4:13 ` Matthijs van Duin 2015-04-05 4:13 ` Matthijs van Duin 2015-04-05 7:23 ` Ivaylo Dimitrov 2015-04-05 7:23 ` Ivaylo Dimitrov 2015-04-05 16:50 ` Matthijs van Duin 2015-04-05 16:50 ` Matthijs van Duin 2015-04-05 16:52 ` Matthijs van Duin 2015-04-05 16:52 ` Matthijs van Duin 2015-04-05 21:08 ` Ivaylo Dimitrov 2015-04-05 21:08 ` Ivaylo Dimitrov 2015-04-05 23:52 ` Matthijs van Duin 2015-04-05 23:52 ` Matthijs van Duin 2015-04-06 15:19 ` Tony Lindgren 2015-04-06 15:19 ` Tony Lindgren 2015-04-06 15:40 ` Tony Lindgren 2015-04-06 15:40 ` Tony Lindgren 2015-04-06 17:14 ` Ivaylo Dimitrov 2015-04-06 17:14 ` Ivaylo Dimitrov 2015-04-06 17:42 ` Tony Lindgren 2015-04-06 17:42 ` Tony Lindgren 2015-04-06 18:14 ` Matthijs van Duin 2015-04-06 18:14 ` Matthijs van Duin 2015-04-07 2:23 ` Tony Lindgren 2015-04-07 2:23 ` Tony Lindgren 2015-04-07 3:12 ` Sebastian Reichel 2015-04-07 3:12 ` Sebastian Reichel 2015-04-07 3:49 ` Matthijs van Duin 2015-04-07 3:49 ` Matthijs van Duin 2015-04-07 14:48 ` Tony Lindgren 2015-04-07 14:48 ` Tony Lindgren 2015-04-09 22:37 ` Grazvydas Ignotas 2015-04-09 22:37 ` Grazvydas Ignotas 2015-04-09 22:44 ` Tony Lindgren 2015-04-09 22:44 ` Tony Lindgren 2015-04-09 23:44 ` Nishanth Menon 2015-04-09 23:44 ` Nishanth Menon 2015-04-10 22:05 ` Grazvydas Ignotas 2015-04-10 22:05 ` Grazvydas Ignotas 2015-04-10 23:08 ` Tony Lindgren 2015-04-10 23:08 ` Tony Lindgren 2015-04-16 16:53 ` Matthijs van Duin 2015-04-16 16:53 ` Matthijs van Duin 2015-04-07 13:58 ` Russell King - ARM Linux 2015-04-07 13:58 ` Russell King - ARM Linux 2015-04-07 13:57 ` Russell King - ARM Linux 2015-04-07 13:57 ` Russell King - ARM Linux 2015-04-07 15:22 ` Tony Lindgren 2015-04-07 15:22 ` Tony Lindgren 2015-04-07 15:44 ` Tony Lindgren 2015-04-07 15:44 ` Tony Lindgren 2015-04-08 23:08 ` Russell King - ARM Linux 2015-04-08 23:08 ` Russell King - ARM Linux 2015-04-08 23:15 ` Tony Lindgren 2015-04-08 23:15 ` Tony Lindgren 2015-04-08 23:06 ` Russell King - ARM Linux 2015-04-08 23:06 ` Russell King - ARM Linux 2015-04-09 13:48 ` Russell King - ARM Linux 2015-04-09 13:48 ` Russell King - ARM Linux 2015-04-09 15:09 ` Tony Lindgren 2015-04-09 15:09 ` Tony Lindgren 2015-04-09 15:30 ` Russell King - ARM Linux 2015-04-09 15:30 ` Russell King - ARM Linux 2015-04-15 16:31 ` Sebastian Reichel 2015-04-15 16:31 ` Sebastian Reichel 2015-04-16 16:08 ` Tony Lindgren 2015-04-16 16:08 ` Tony Lindgren 2015-04-17 18:41 ` Sebastian Reichel 2015-04-17 18:41 ` Sebastian Reichel 2015-04-20 23:40 ` Tony Lindgren 2015-04-20 23:40 ` Tony Lindgren 2015-04-23 10:25 ` Russell King - ARM Linux 2015-04-23 10:25 ` Russell King - ARM Linux 2015-04-23 14:17 ` Tony Lindgren 2015-04-23 14:17 ` Tony Lindgren 2015-04-28 18:13 ` Russell King - ARM Linux 2015-04-28 18:13 ` Russell King - ARM Linux 2015-04-29 14:40 ` Tony Lindgren 2015-04-29 14:40 ` Tony Lindgren 2015-05-04 14:24 ` Tony Lindgren 2015-05-04 14:24 ` Tony Lindgren 2015-04-24 8:54 ` Matthijs van Duin 2015-04-24 8:54 ` Matthijs van Duin 2015-04-28 18:11 ` Russell King - ARM Linux 2015-04-28 18:11 ` Russell King - ARM Linux 2015-05-02 6:51 ` Matthijs van Duin 2015-05-02 6:51 ` Matthijs van Duin 2015-04-05 13:39 ` Sebastian Reichel 2015-04-05 13:39 ` Sebastian Reichel 2015-04-06 15:24 ` Tony Lindgren [this message] 2015-04-06 15:24 ` Tony Lindgren 2015-05-04 16:07 ` [PATCH RESEND] ARM: dts: OMAP3-N900: Add microphone bias voltages Tony Lindgren
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=20150406152402.GH18048@atomide.com \ --to=tony@atomide.com \ --cc=ivo.g.dimitrov.75@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=matthijsvanduin@gmail.com \ --cc=pavel@ucw.cz \ --cc=sre@kernel.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: linkBe 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.