All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sekhar Nori <nsekhar@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: balbi@ti.com, Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Linux OMAP Mailing List <linux-omap@vger.kernel.org>,
	Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>,
	Nishanth Menon <nm@ti.com>,
	Santosh Shilimkar <santosh.shilimkar@ti.com>
Subject: Re: [PATCH] ARM: OMAP2+: l2c: squelch warning dump on power control setting
Date: Wed, 9 Jul 2014 17:56:37 +0530	[thread overview]
Message-ID: <53BD34FD.5070005@ti.com> (raw)
In-Reply-To: <20140709092531.GK28884@atomide.com>

On Wednesday 09 July 2014 02:55 PM, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [140708 01:32]:
>> * Sekhar Nori <nsekhar@ti.com> [140707 21:56]:
>>> On Monday 07 July 2014 08:40 PM, Felipe Balbi wrote:
>>>> On Mon, Jul 07, 2014 at 02:40:08PM +0100, Russell King - ARM Linux wrote:
>>>>> --- a/arch/arm/mm/cache-l2x0.c
>>>>> +++ b/arch/arm/mm/cache-l2x0.c
>>>>> @@ -732,7 +732,7 @@ static int l2c310_cpu_enable_flz(struct notifier_block *nb, unsigned long act, v
>>>>>  
>>>>>  static void __init l2c310_enable(void __iomem *base, u32 aux, unsigned num_lock)
>>>>>  {
>>>>> -	unsigned rev = readl_relaxed(base + L2X0_CACHE_ID) & L2X0_CACHE_ID_PART_MASK;
>>>>> +	unsigned rev = readl_relaxed(base + L2X0_CACHE_ID) & L2X0_CACHE_ID_RTL_MASK;
>>>>>  	bool cortex_a9 = read_cpuid_part() == ARM_CPU_PART_CORTEX_A9;
>>>>
>>>> even with this change, l2c still tries to write to power control
>>>> register, at least on AM437x. Looking a little deeper here, AM437x
>>>> identifies itself as l2c PL310 r3p3, which should have power control
>>>> register, but aparentely there's no way to write that register. I'll
>>>> file a bug to our ROM team, but we will certainly need a way to
>>>> workaround this inside omap4-common.c
>>>
>>> Looks like we need both my patch as well as Russell's patch. I can
>>> respin my patch with the pr_info_once() dropped if it helps further
>>> reduce boot noise.
>>
>> In that case I'm fine with the original patch in this series. Russell,
>> got any better ideas?
> 
> I guess no more comments. Took a look at the patch again, Sekhar, can
> you please update the description with what has been discovered in this
> thread and repost?

How does the following sound:

---
AM437x has L2C-310 version r3p2 and ROM code on that device does not
support writing to L2C-310 power control register. The L2C driver,
however, tries writing to this register for all revisions >= r3p0.

This leads to a warning dump on boot which leads most users to believe
that L2 cache is non-functional.

Since the problem is understood, and cannot be addressed through
software, replace the warning with a pr_info() while maintaining the
WARN_ON() for other truly unexpected scenarios.

>From the public TRM available for OMAP4470, even on that device, ROM
does not support writing to this register even though it uses a version
of L2C-310 which has the register implemented. So this patch should take
care of all variants of existing OMAPs.
---

Two things that I have added are the version of L2C on AM437x and the
fact that OMAP4470 also has the same issue (at least from the public
TRM). Let me know if you would like to see anything else mentioned.

Thanks,
Sekhar

WARNING: multiple messages have this Message-ID (diff)
From: nsekhar@ti.com (Sekhar Nori)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP2+: l2c: squelch warning dump on power control setting
Date: Wed, 9 Jul 2014 17:56:37 +0530	[thread overview]
Message-ID: <53BD34FD.5070005@ti.com> (raw)
In-Reply-To: <20140709092531.GK28884@atomide.com>

On Wednesday 09 July 2014 02:55 PM, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [140708 01:32]:
>> * Sekhar Nori <nsekhar@ti.com> [140707 21:56]:
>>> On Monday 07 July 2014 08:40 PM, Felipe Balbi wrote:
>>>> On Mon, Jul 07, 2014 at 02:40:08PM +0100, Russell King - ARM Linux wrote:
>>>>> --- a/arch/arm/mm/cache-l2x0.c
>>>>> +++ b/arch/arm/mm/cache-l2x0.c
>>>>> @@ -732,7 +732,7 @@ static int l2c310_cpu_enable_flz(struct notifier_block *nb, unsigned long act, v
>>>>>  
>>>>>  static void __init l2c310_enable(void __iomem *base, u32 aux, unsigned num_lock)
>>>>>  {
>>>>> -	unsigned rev = readl_relaxed(base + L2X0_CACHE_ID) & L2X0_CACHE_ID_PART_MASK;
>>>>> +	unsigned rev = readl_relaxed(base + L2X0_CACHE_ID) & L2X0_CACHE_ID_RTL_MASK;
>>>>>  	bool cortex_a9 = read_cpuid_part() == ARM_CPU_PART_CORTEX_A9;
>>>>
>>>> even with this change, l2c still tries to write to power control
>>>> register, at least on AM437x. Looking a little deeper here, AM437x
>>>> identifies itself as l2c PL310 r3p3, which should have power control
>>>> register, but aparentely there's no way to write that register. I'll
>>>> file a bug to our ROM team, but we will certainly need a way to
>>>> workaround this inside omap4-common.c
>>>
>>> Looks like we need both my patch as well as Russell's patch. I can
>>> respin my patch with the pr_info_once() dropped if it helps further
>>> reduce boot noise.
>>
>> In that case I'm fine with the original patch in this series. Russell,
>> got any better ideas?
> 
> I guess no more comments. Took a look at the patch again, Sekhar, can
> you please update the description with what has been discovered in this
> thread and repost?

How does the following sound:

---
AM437x has L2C-310 version r3p2 and ROM code on that device does not
support writing to L2C-310 power control register. The L2C driver,
however, tries writing to this register for all revisions >= r3p0.

This leads to a warning dump on boot which leads most users to believe
that L2 cache is non-functional.

Since the problem is understood, and cannot be addressed through
software, replace the warning with a pr_info() while maintaining the
WARN_ON() for other truly unexpected scenarios.

>From the public TRM available for OMAP4470, even on that device, ROM
does not support writing to this register even though it uses a version
of L2C-310 which has the register implemented. So this patch should take
care of all variants of existing OMAPs.
---

Two things that I have added are the version of L2C on AM437x and the
fact that OMAP4470 also has the same issue (at least from the public
TRM). Let me know if you would like to see anything else mentioned.

Thanks,
Sekhar

  reply	other threads:[~2014-07-09 12:27 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 10:34 [PATCH] ARM: OMAP2+: l2c: squelch warning dump on power control setting Sekhar Nori
2014-06-17 10:34 ` Sekhar Nori
2014-06-17 13:19 ` Felipe Balbi
2014-06-17 13:19   ` Felipe Balbi
2014-07-01 19:47   ` Felipe Balbi
2014-07-01 19:47     ` Felipe Balbi
2014-07-02  8:11     ` Tony Lindgren
2014-07-02  8:11       ` Tony Lindgren
2014-07-07 10:47       ` Tony Lindgren
2014-07-07 10:47         ` Tony Lindgren
2014-07-07 10:49         ` Russell King - ARM Linux
2014-07-07 10:49           ` Russell King - ARM Linux
2014-07-07 11:02           ` Tony Lindgren
2014-07-07 11:02             ` Tony Lindgren
2014-07-07 11:50             ` Sekhar Nori
2014-07-07 11:50               ` Sekhar Nori
2014-07-07 12:15               ` Russell King - ARM Linux
2014-07-07 12:15                 ` Russell King - ARM Linux
2014-07-07 12:39                 ` Tony Lindgren
2014-07-07 12:39                   ` Tony Lindgren
2014-07-07 13:40                   ` Russell King - ARM Linux
2014-07-07 13:40                     ` Russell King - ARM Linux
2014-07-07 15:10                     ` Felipe Balbi
2014-07-07 15:10                       ` Felipe Balbi
2014-07-08  4:54                       ` Sekhar Nori
2014-07-08  4:54                         ` Sekhar Nori
2014-07-08  8:29                         ` Tony Lindgren
2014-07-08  8:29                           ` Tony Lindgren
2014-07-09  9:25                           ` Tony Lindgren
2014-07-09  9:25                             ` Tony Lindgren
2014-07-09 12:26                             ` Sekhar Nori [this message]
2014-07-09 12:26                               ` Sekhar Nori
2014-07-09 12:31                               ` Tony Lindgren
2014-07-09 12:31                                 ` Tony Lindgren
2014-07-09 12:39                               ` Russell King - ARM Linux
2014-07-09 12:39                                 ` Russell King - ARM Linux
2014-07-09 14:15                                 ` Santosh Shilimkar
2014-07-09 14:15                                   ` Santosh Shilimkar
2014-07-14 10:46                                   ` Sekhar Nori
2014-07-14 10:46                                     ` Sekhar Nori
2014-07-09 13:55                               ` Felipe Balbi
2014-07-09 13:55                                 ` Felipe Balbi
2014-07-14 10:41                                 ` Sekhar Nori
2014-07-14 10:41                                   ` Sekhar Nori
2014-07-09 13:51                             ` Felipe Balbi
2014-07-09 13:51                               ` Felipe Balbi
2014-07-09 14:06                     ` Santosh Shilimkar
2014-07-09 14:06                       ` Santosh Shilimkar

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=53BD34FD.5070005@ti.com \
    --to=nsekhar@ti.com \
    --cc=balbi@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nm@ti.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.