public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Nishanth Menon <nm@ti.com>
To: "Varadarajan, Charulatha" <charu@ti.com>
Cc: linux-omap <linux-omap@vger.kernel.org>,
	Jean <jean.pihet@newoldbits.com>, Tony <tony@atomide.com>,
	Kevin <khilman@deeprootsystems.com>,
	Vishwa <vishwanath.bs@ti.com>
Subject: Re: [PATCH 3/5] OMAP3630: PM: Erratum i608: disable RTA
Date: Tue, 30 Nov 2010 08:15:32 -0600	[thread overview]
Message-ID: <4CF50704.9060606@ti.com> (raw)
In-Reply-To: <AANLkTiktZPHxGJCTRUg63bR91J28mpw2Rf4riqrybMKV@mail.gmail.com>

Varadarajan, Charulatha had written, on 11/30/2010 12:07 AM, the following:
> Nishant,
> 
> On Tue, Nov 30, 2010 at 01:49, Nishanth Menon <nm@ti.com> wrote:
>> Erratum id: i608
>> RTA (Retention Till Access) feature is not supported and leads to device
>> stability issues when enabled. This impacts modules with embedded memories
>> on OMAP3630
>>
>> Workaround is to disable RTA on boot and coming out of core off.
>> For disabling rta coming out of off mode, we do this by overriding the
>> restore pointer for 3630 to allow us restore handler as the first point of
>> entry before caches are touched and is common for GP and HS devices.
>> to disable earlier than this could be possible by modifying the ppa for HS
>> devices, but not for GP devices.
>>
>> Signed-off-by: Ambresh K <ambresh@ti.com>
> 
> not in Cc?
It was initially written by me and co-developed with Ambresh  and I took 
it up back again for upstreaming :)
> 
>> Signed-off-by: Nishanth Menon <nm@ti.com>
>> ---
>> v2: fixed missing b restore for 3430 es3.1 code.
>>        introduced erratum handling logic here splitting it out of uart errata
>>        typo fixes for erratum
>> v1: http://marc.info/?l=linux-omap&m=129013172825240&w=2
>>
>>  arch/arm/mach-omap2/control.c   |    5 ++++-
>>  arch/arm/mach-omap2/control.h   |    5 +++++
>>  arch/arm/mach-omap2/pm34xx.c    |   23 +++++++++++++++++++++++
>>  arch/arm/mach-omap2/sleep34xx.S |   26 ++++++++++++++++++++++++++
>>  4 files changed, 58 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
>> index 1fa3294..728f268 100644
>> --- a/arch/arm/mach-omap2/control.c
>> +++ b/arch/arm/mach-omap2/control.c
>> @@ -241,7 +241,10 @@ void omap3_save_scratchpad_contents(void)
>>
>>        /* Populate the Scratchpad contents */
>>        scratchpad_contents.boot_config_ptr = 0x0;
>> -       if (omap_rev() != OMAP3430_REV_ES3_0 &&
>> +       if (cpu_is_omap3630())
>> +               scratchpad_contents.public_restore_ptr =
>> +                       virt_to_phys(get_omap3630_restore_pointer());
>> +       else if (omap_rev() != OMAP3430_REV_ES3_0 &&
>>                                        omap_rev() != OMAP3430_REV_ES3_1)
>>                scratchpad_contents.public_restore_ptr =
>>                        virt_to_phys(get_restore_pointer());
>> diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h
>> index b6c6b7c..d7911c5 100644
>> --- a/arch/arm/mach-omap2/control.h
>> +++ b/arch/arm/mach-omap2/control.h
>> @@ -204,6 +204,10 @@
>>  #define OMAP343X_CONTROL_WKUP_DEBOBS3 (OMAP343X_CONTROL_GENERAL_WKUP + 0x014)
>>  #define OMAP343X_CONTROL_WKUP_DEBOBS4 (OMAP343X_CONTROL_GENERAL_WKUP + 0x018)
>>
>> +/* 36xx-only RTA - Retention till Accesss control registers and bits */
>> +#define OMAP36XX_CONTROL_MEM_RTA_CTRL  0x40C
>> +#define OMAP36XX_RTA_DISABLE           0x0
>> +
>>  /* 34xx D2D idle-related pins, handled by PM core */
>>  #define OMAP3_PADCONF_SAD2D_MSTANDBY   0x250
>>  #define OMAP3_PADCONF_SAD2D_IDLEACK    0x254
>> @@ -347,6 +351,7 @@ extern void omap3_save_scratchpad_contents(void);
>>  extern void omap3_clear_scratchpad_contents(void);
>>  extern u32 *get_restore_pointer(void);
>>  extern u32 *get_es3_restore_pointer(void);
>> +extern u32 *get_omap3630_restore_pointer(void);
>>  extern u32 omap3_arm_context[128];
>>  extern void omap3_control_save_context(void);
>>  extern void omap3_control_restore_context(void);
>> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
>> index 75c0cd1..bd426cc 100644
>> --- a/arch/arm/mach-omap2/pm34xx.c
>> +++ b/arch/arm/mach-omap2/pm34xx.c
>> @@ -54,6 +54,10 @@
>>  #define OMAP343X_TABLE_VALUE_OFFSET       0xc0
>>  #define OMAP343X_CONTROL_REG_VALUE_OFFSET  0xc8
>>
>> +#define RTA_ERRATUM_i608               (1 << 0)
>> +static u16 pm34xx_errata;
>> +#define IS_PM34XX_ERRATUM(id)          (pm34xx_errata & (id))
>> +
>>  struct power_state {
>>        struct powerdomain *pwrdm;
>>        u32 next_state;
>> @@ -979,6 +983,14 @@ void omap_push_sram_idle(void)
>>                                save_secure_ram_context_sz);
>>  }
>>
>> +static void pm_errata_configure(void)
>> +{
>> +       if (cpu_is_omap34xx()) {
>> +               if (cpu_is_omap3630())
> 
> Is it required to have both the cpu_is checks*?  Why?
hmm... good point.. pm_init already checks of cpu_is_omap34xx() and 
returns.. I guess I was simply paranoid -> I will remove this in next 
rev. thanks.

-- 
Regards,
Nishanth Menon

  reply	other threads:[~2010-11-30 14:15 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-29 20:19 [PATCH 0/5 v2] OMAP: idle path errata fixes Nishanth Menon
2010-11-29 20:19 ` [PATCH 1/5 v2] OMAP3: PM: Update clean_l2 to use v7_flush_dcache_all Nishanth Menon
2010-11-29 20:19 ` [PATCH 2/5 v2] OMAP3: PM: Erratum i581 support: dll kick strategy Nishanth Menon
2010-11-29 20:19 ` [PATCH 3/5] OMAP3630: PM: Erratum i608: disable RTA Nishanth Menon
2010-11-30  6:07   ` Varadarajan, Charulatha
2010-11-30 14:15     ` Nishanth Menon [this message]
2010-11-29 20:19 ` [PATCH 4/5 v2] OMAP3630: PM: Disable L2 cache while invalidating L2 cache Nishanth Menon
2010-11-30  6:03   ` TAO HU
2010-11-30 14:18     ` Nishanth Menon
2010-12-01  8:56       ` TAO HU
2010-12-01 14:38         ` Nishanth Menon
2010-12-02  5:05           ` Santosh Shilimkar
2010-11-30  6:12   ` Varadarajan, Charulatha
2010-11-30 14:18     ` Nishanth Menon
2010-11-29 20:19 ` [PATCH 5/5] OMAP3630: PM: Erratum i583: disable coreoff if < ES1.2 Nishanth Menon

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=4CF50704.9060606@ti.com \
    --to=nm@ti.com \
    --cc=charu@ti.com \
    --cc=jean.pihet@newoldbits.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=tony@atomide.com \
    --cc=vishwanath.bs@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox