All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Grazvydas Ignotas <notasas@gmail.com>
Cc: Matthijs van Duin <matthijsvanduin@gmail.com>,
	Pavel Machek <pavel@ucw.cz>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>,
	Sebastian Reichel <sre@kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: ARM errata 430973 on multi platform kernels
Date: Thu, 9 Apr 2015 15:44:46 -0700	[thread overview]
Message-ID: <20150409224446.GV18048@atomide.com> (raw)
In-Reply-To: <CANOLnOMyNesvA2nGC2uMnmYGLBQkU1dnfG1rBg1UWeGMrpHFzQ@mail.gmail.com>

* Grazvydas Ignotas <notasas@gmail.com> [150409 15:37]:
> On Tue, Apr 7, 2015 at 5:23 AM, Tony Lindgren <tony@atomide.com> wrote:
> > * Matthijs van Duin <matthijsvanduin@gmail.com> [150406 11:15]:
> >>
> >> On 6 April 2015 at 19:42, Tony Lindgren <tony@atomide.com> wrote:
> >> > Hmm but it still seems to do something also on cortex-a8 r3p2 that
> >> > is supposedly not affected by 430973.. Based on my tests so far, at least
> >> > armhf running cpuburn-a8 in the background and doing apt-get update
> >> > segfaults constantly without flush BTAC/BTB. This seems to be the case
> >> > no matter how the aux ctrl reg bits are set..
> >>
> >> That sounds.... really odd.  The TRM is fairly explicit about BTB
> >> flush executing as nop when IBE is not set. Of course the TRM is not
> >> exactly flawless, but still...
> >
> > Oops, sorry user error.. I was trying to clear IBE as a banked register
> > like L2 enable bit and of course it did not get cleared.. Clearing it
> > with a smc call really clears it. And in that case my test case seems to
> > work reliably on r3p2 without erratum 430973 enabled.
> 
> May I ask how do you perform the smc call? I wanted to clear IBE too
> to experiment, but it just hangs my board, even if I just write back
> the same value. Here is what I do:
> 
>         asm ("mrc p15, 0, %0, c1, c0, 1" : "=r"(val));
> 
>         asm (".arch_extension sec\n\t"
>              "mov r0,  %0\n"
>              "mov r12, #3\n"
>              "smc #0\n"
>              :: "r"(val) : "r0", "r12");
> 
> I just run this from a sysfs write handler, does it need to be run on
> SRAM or something?

Best done in the bootloader.. I just hacked it into the restore from
off-idle to test, see below. But for that you naturally need to have
a device with working idle and it's usable for just testing for lazy
people.

Regards,

Tony

--- a/arch/arm/mach-omap2/sleep34xx.S
+++ b/arch/arm/mach-omap2/sleep34xx.S
@@ -516,6 +516,7 @@ l2_inv_gp:
 	ldr	r4, scratchpad_base
 	ldr	r3, [r4,#0xBC]
 	ldr	r0, [r3,#4]
+	bic	r0, r1, #(1 << 6)
 	mov	r12, #0x3
 	smc	#0			@ Call SMI monitor (smieq)
 	ldr	r4, scratchpad_base

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: Thu, 9 Apr 2015 15:44:46 -0700	[thread overview]
Message-ID: <20150409224446.GV18048@atomide.com> (raw)
In-Reply-To: <CANOLnOMyNesvA2nGC2uMnmYGLBQkU1dnfG1rBg1UWeGMrpHFzQ@mail.gmail.com>

* Grazvydas Ignotas <notasas@gmail.com> [150409 15:37]:
> On Tue, Apr 7, 2015 at 5:23 AM, Tony Lindgren <tony@atomide.com> wrote:
> > * Matthijs van Duin <matthijsvanduin@gmail.com> [150406 11:15]:
> >>
> >> On 6 April 2015 at 19:42, Tony Lindgren <tony@atomide.com> wrote:
> >> > Hmm but it still seems to do something also on cortex-a8 r3p2 that
> >> > is supposedly not affected by 430973.. Based on my tests so far, at least
> >> > armhf running cpuburn-a8 in the background and doing apt-get update
> >> > segfaults constantly without flush BTAC/BTB. This seems to be the case
> >> > no matter how the aux ctrl reg bits are set..
> >>
> >> That sounds.... really odd.  The TRM is fairly explicit about BTB
> >> flush executing as nop when IBE is not set. Of course the TRM is not
> >> exactly flawless, but still...
> >
> > Oops, sorry user error.. I was trying to clear IBE as a banked register
> > like L2 enable bit and of course it did not get cleared.. Clearing it
> > with a smc call really clears it. And in that case my test case seems to
> > work reliably on r3p2 without erratum 430973 enabled.
> 
> May I ask how do you perform the smc call? I wanted to clear IBE too
> to experiment, but it just hangs my board, even if I just write back
> the same value. Here is what I do:
> 
>         asm ("mrc p15, 0, %0, c1, c0, 1" : "=r"(val));
> 
>         asm (".arch_extension sec\n\t"
>              "mov r0,  %0\n"
>              "mov r12, #3\n"
>              "smc #0\n"
>              :: "r"(val) : "r0", "r12");
> 
> I just run this from a sysfs write handler, does it need to be run on
> SRAM or something?

Best done in the bootloader.. I just hacked it into the restore from
off-idle to test, see below. But for that you naturally need to have
a device with working idle and it's usable for just testing for lazy
people.

Regards,

Tony

--- a/arch/arm/mach-omap2/sleep34xx.S
+++ b/arch/arm/mach-omap2/sleep34xx.S
@@ -516,6 +516,7 @@ l2_inv_gp:
 	ldr	r4, scratchpad_base
 	ldr	r3, [r4,#0xBC]
 	ldr	r0, [r3,#4]
+	bic	r0, r1, #(1 << 6)
 	mov	r12, #0x3
 	smc	#0			@ Call SMI monitor (smieq)
 	ldr	r4, scratchpad_base

  reply	other threads:[~2015-04-09 22:48 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 [this message]
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
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=20150409224446.GV18048@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=notasas@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: 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.