All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tero Kristo <t-kristo@ti.com>
To: Kevin Hilman <khilman@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>,
	linux-omap@vger.kernel.org, paul@pwsan.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCHv2 14/19] ARM: OMAP4: wakeupgen: enable clocks for save_secure_all
Date: Mon, 21 May 2012 12:38:17 +0300	[thread overview]
Message-ID: <1337593097.28274.19.camel@sokoban> (raw)
In-Reply-To: <871umj4qnl.fsf@ti.com>

On Wed, 2012-05-16 at 17:06 -0700, Kevin Hilman wrote:
> +Benoit
> 
> Tero Kristo <t-kristo@ti.com> writes:
> 
> > save_secure_all needs l3_main_3_ick and l4_secure_clkdm enabled,
> > otherwise the secure ROM code will crash.
> >
> > Signed-off-by: Tero Kristo <t-kristo@ti.com>
> 
> I think I mentioned this already (I'm already lost in what I've said for
> thisseries), but I don't think the secure RAM stuff belongs in the
> wakeupgen driver.

As mentioned, save_secure_all saves:
- secure RAM
- GIC registers
- some other mysterious stuff

Attempting to do separate saves for secure RAM + GIC hang the device
during wakeup, in addition to being really inefficient (secure API calls
are expensive.)

-Tero

> 
> Also, this patch suggests that the OCM RAM block needs a proper hwmod
> instead of manually fiddling with the l3_main_3 hwmod and the l4_secure clkdm.
> 
> Kevin
> 
> > ---
> >  arch/arm/mach-omap2/omap-wakeupgen.c |   20 ++++++++++++++++++++
> >  1 files changed, 20 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
> > index b2165e4..c7c4db4 100644
> > --- a/arch/arm/mach-omap2/omap-wakeupgen.c
> > +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
> > @@ -29,10 +29,12 @@
> >  
> >  #include <mach/omap-wakeupgen.h>
> >  #include <mach/omap-secure.h>
> > +#include <plat/omap_hwmod.h>
> >  
> >  #include "omap4-sar-layout.h"
> >  #include "common.h"
> >  #include "pm.h"
> > +#include "clockdomain.h"
> >  
> >  #define NR_REG_BANKS		4
> >  #define MAX_IRQS		128
> > @@ -49,6 +51,8 @@ static DEFINE_SPINLOCK(wakeupgen_lock);
> >  static unsigned int irq_target_cpu[NR_IRQS];
> >  
> >  static struct powerdomain *mpuss_pd;
> > +static struct clockdomain *l4_secure_clkdm;
> > +static struct omap_hwmod *l3_main_3_oh;
> >  
> >  /*
> >   * Static helper functions.
> > @@ -300,10 +304,18 @@ static void save_secure_ram(void)
> >  static void save_secure_all(void)
> >  {
> >  	u32 ret;
> > +
> > +	omap_hwmod_enable(l3_main_3_oh);
> > +	clkdm_wakeup(l4_secure_clkdm);
> > +
> >  	ret = omap_secure_dispatcher(OMAP4_HAL_SAVEALL_INDEX,
> >  				FLAG_START_CRITICAL,
> >  				1, omap_secure_ram_mempool_base(),
> >  				0, 0, 0);
> > +
> > +	clkdm_allow_idle(l4_secure_clkdm);
> > +	omap_hwmod_idle(l3_main_3_oh);
> > +
> >  	if (ret != API_HAL_RET_VALUE_OK)
> >  		pr_err("Secure all context save failed\n");
> >  }
> > @@ -441,6 +453,14 @@ int __init omap_wakeupgen_init(void)
> >  			sar_writel(GIC_ISR_NON_SECURE, ICDISR_SPI_OFFSET, i);
> >  		iounmap(sar_base);
> >  		sar_base = NULL;
> > +	} else {
> > +		l3_main_3_oh = omap_hwmod_lookup("l3_main_3");
> > +		if (!l3_main_3_oh)
> > +			pr_err("%s: failed to get l3_main_3_oh\n", __func__);
> > +
> > +		l4_secure_clkdm = clkdm_lookup("l4_secure_clkdm");
> > +		if (!l4_secure_clkdm)
> > +			pr_err("%s: failed to get l4_secure_clkdm\n", __func__);
> >  	}
> >  
> >  	irq_hotplug_init();



WARNING: multiple messages have this Message-ID (diff)
From: t-kristo@ti.com (Tero Kristo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv2 14/19] ARM: OMAP4: wakeupgen: enable clocks for save_secure_all
Date: Mon, 21 May 2012 12:38:17 +0300	[thread overview]
Message-ID: <1337593097.28274.19.camel@sokoban> (raw)
In-Reply-To: <871umj4qnl.fsf@ti.com>

On Wed, 2012-05-16 at 17:06 -0700, Kevin Hilman wrote:
> +Benoit
> 
> Tero Kristo <t-kristo@ti.com> writes:
> 
> > save_secure_all needs l3_main_3_ick and l4_secure_clkdm enabled,
> > otherwise the secure ROM code will crash.
> >
> > Signed-off-by: Tero Kristo <t-kristo@ti.com>
> 
> I think I mentioned this already (I'm already lost in what I've said for
> thisseries), but I don't think the secure RAM stuff belongs in the
> wakeupgen driver.

As mentioned, save_secure_all saves:
- secure RAM
- GIC registers
- some other mysterious stuff

Attempting to do separate saves for secure RAM + GIC hang the device
during wakeup, in addition to being really inefficient (secure API calls
are expensive.)

-Tero

> 
> Also, this patch suggests that the OCM RAM block needs a proper hwmod
> instead of manually fiddling with the l3_main_3 hwmod and the l4_secure clkdm.
> 
> Kevin
> 
> > ---
> >  arch/arm/mach-omap2/omap-wakeupgen.c |   20 ++++++++++++++++++++
> >  1 files changed, 20 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
> > index b2165e4..c7c4db4 100644
> > --- a/arch/arm/mach-omap2/omap-wakeupgen.c
> > +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
> > @@ -29,10 +29,12 @@
> >  
> >  #include <mach/omap-wakeupgen.h>
> >  #include <mach/omap-secure.h>
> > +#include <plat/omap_hwmod.h>
> >  
> >  #include "omap4-sar-layout.h"
> >  #include "common.h"
> >  #include "pm.h"
> > +#include "clockdomain.h"
> >  
> >  #define NR_REG_BANKS		4
> >  #define MAX_IRQS		128
> > @@ -49,6 +51,8 @@ static DEFINE_SPINLOCK(wakeupgen_lock);
> >  static unsigned int irq_target_cpu[NR_IRQS];
> >  
> >  static struct powerdomain *mpuss_pd;
> > +static struct clockdomain *l4_secure_clkdm;
> > +static struct omap_hwmod *l3_main_3_oh;
> >  
> >  /*
> >   * Static helper functions.
> > @@ -300,10 +304,18 @@ static void save_secure_ram(void)
> >  static void save_secure_all(void)
> >  {
> >  	u32 ret;
> > +
> > +	omap_hwmod_enable(l3_main_3_oh);
> > +	clkdm_wakeup(l4_secure_clkdm);
> > +
> >  	ret = omap_secure_dispatcher(OMAP4_HAL_SAVEALL_INDEX,
> >  				FLAG_START_CRITICAL,
> >  				1, omap_secure_ram_mempool_base(),
> >  				0, 0, 0);
> > +
> > +	clkdm_allow_idle(l4_secure_clkdm);
> > +	omap_hwmod_idle(l3_main_3_oh);
> > +
> >  	if (ret != API_HAL_RET_VALUE_OK)
> >  		pr_err("Secure all context save failed\n");
> >  }
> > @@ -441,6 +453,14 @@ int __init omap_wakeupgen_init(void)
> >  			sar_writel(GIC_ISR_NON_SECURE, ICDISR_SPI_OFFSET, i);
> >  		iounmap(sar_base);
> >  		sar_base = NULL;
> > +	} else {
> > +		l3_main_3_oh = omap_hwmod_lookup("l3_main_3");
> > +		if (!l3_main_3_oh)
> > +			pr_err("%s: failed to get l3_main_3_oh\n", __func__);
> > +
> > +		l4_secure_clkdm = clkdm_lookup("l4_secure_clkdm");
> > +		if (!l4_secure_clkdm)
> > +			pr_err("%s: failed to get l4_secure_clkdm\n", __func__);
> >  	}
> >  
> >  	irq_hotplug_init();

  reply	other threads:[~2012-05-21  9:38 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-14 10:18 [PATCHv2 00/19] ARM: OMAP4: device off support Tero Kristo
2012-05-14 10:18 ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 01/19] ARM: OMAP4: PM: powerdomain: Add HWSAR flag to L3INIT Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 18:27   ` Kevin Hilman
2012-05-16 18:27     ` Kevin Hilman
2012-05-14 10:18 ` [PATCHv2 02/19] ARM: OMAP4: Add SAR ROM base address Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 18:28   ` Kevin Hilman
2012-05-16 18:28     ` Kevin Hilman
2012-05-21  8:28     ` Tero Kristo
2012-05-21  8:28       ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 03/19] ARM: OMAP4: PM: Add device-off support Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 22:36   ` Kevin Hilman
2012-05-16 22:36     ` Kevin Hilman
2012-05-17  7:10     ` Shilimkar, Santosh
2012-05-17  7:10       ` Shilimkar, Santosh
2012-05-21  8:48     ` Tero Kristo
2012-05-21  8:48       ` Tero Kristo
2012-05-21 14:05       ` Jean Pihet
2012-05-21 14:05         ` Jean Pihet
2012-05-29 18:34         ` Kevin Hilman
2012-05-29 18:34           ` Kevin Hilman
2012-05-29 18:31       ` Kevin Hilman
2012-05-29 18:31         ` Kevin Hilman
2012-05-30  8:20         ` Tero Kristo
2012-05-30  8:20           ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 04/19] ARM: OMAP4: PM: save/restore all DPLL settings in OFF mode Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 22:42   ` Kevin Hilman
2012-05-16 22:42     ` Kevin Hilman
2012-05-17  7:04     ` Shilimkar, Santosh
2012-05-17  7:04       ` Shilimkar, Santosh
2012-05-17  8:52       ` Shilimkar, Santosh
2012-05-17  8:52         ` Shilimkar, Santosh
2012-05-17 16:37         ` Kevin Hilman
2012-05-17 16:37           ` Kevin Hilman
2012-05-21  9:01           ` Tero Kristo
2012-05-21  9:01             ` Tero Kristo
2012-05-29 19:46         ` Menon, Nishanth
2012-05-29 19:46           ` Menon, Nishanth
2012-05-30 17:59           ` Kevin Hilman
2012-05-30 17:59             ` Kevin Hilman
2012-05-30 18:24             ` Menon, Nishanth
2012-05-30 18:24               ` Menon, Nishanth
2012-05-30 22:09               ` Kevin Hilman
2012-05-30 22:09                 ` Kevin Hilman
2012-05-31  2:38                 ` Shilimkar, Santosh
2012-05-31  2:38                   ` Shilimkar, Santosh
2012-05-21  8:58     ` Tero Kristo
2012-05-21  8:58       ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 05/19] ARM: OMAP4: PM: save/restore all CM1/2 " Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 22:48   ` Kevin Hilman
2012-05-16 22:48     ` Kevin Hilman
2012-05-17  7:05     ` Shilimkar, Santosh
2012-05-17  7:05       ` Shilimkar, Santosh
2012-05-14 10:18 ` [PATCHv2 06/19] ARM: OMAP4: PM: Add SAR backup support towards device OFF Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 22:58   ` Kevin Hilman
2012-05-16 22:58     ` Kevin Hilman
2012-05-17  7:02     ` Shilimkar, Santosh
2012-05-17  7:02       ` Shilimkar, Santosh
2012-05-17 16:42       ` Kevin Hilman
2012-05-17 16:42         ` Kevin Hilman
2012-05-18  5:53         ` Shilimkar, Santosh
2012-05-18  5:53           ` Shilimkar, Santosh
2012-05-21  9:07           ` Tero Kristo
2012-05-21  9:07             ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 07/19] ARM: OMAP4: Auto generate SAR layout contents Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 08/19] ARM: OMAP4: SAR: generate overwrite data based on SAR ROM contents Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 09/19] ARM: OMAP4: PM: add errata support Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-29 20:10   ` Menon, Nishanth
2012-05-29 20:10     ` Menon, Nishanth
2012-05-30  8:32     ` Tero Kristo
2012-05-30  8:32       ` Tero Kristo
2012-05-30 14:45       ` Menon, Nishanth
2012-05-30 14:45         ` Menon, Nishanth
2012-05-14 10:18 ` [PATCHv2 10/19] ARM: OMAP4: PM: Work-around for ROM code BUG of IVAHD/TESLA Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 23:05   ` Kevin Hilman
2012-05-16 23:05     ` Kevin Hilman
2012-05-16 23:07     ` Kevin Hilman
2012-05-16 23:07       ` Kevin Hilman
2012-05-21  9:11       ` Tero Kristo
2012-05-21  9:11         ` Tero Kristo
2012-05-29 20:13         ` Kevin Hilman
2012-05-29 20:13           ` Kevin Hilman
2012-05-17  6:52     ` Shilimkar, Santosh
2012-05-17  6:52       ` Shilimkar, Santosh
2012-05-17 16:45       ` Kevin Hilman
2012-05-17 16:45         ` Kevin Hilman
2012-05-18  5:55         ` Shilimkar, Santosh
2012-05-18  5:55           ` Shilimkar, Santosh
2012-05-14 10:18 ` [PATCHv2 11/19] ARM: OMAP4: PM: save/restore CM L3INSTR registers when MPU hits OSWR/OFF mode Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 23:17   ` Kevin Hilman
2012-05-16 23:17     ` Kevin Hilman
2012-05-17  6:53     ` Shilimkar, Santosh
2012-05-17  6:53       ` Shilimkar, Santosh
2012-05-14 10:18 ` [PATCHv2 12/19] ARM: OMAP4: PM: update ROM return address for OSWR and OFF Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 23:36   ` Kevin Hilman
2012-05-16 23:36     ` Kevin Hilman
2012-05-21  9:29     ` Tero Kristo
2012-05-21  9:29       ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 13/19] ARM: OMAP4: PM: Mark the PPI and SPI interrupts as non-secure for GP Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-16 23:48   ` Kevin Hilman
2012-05-16 23:48     ` Kevin Hilman
2012-05-21  9:32     ` Tero Kristo
2012-05-21  9:32       ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 14/19] ARM: OMAP4: wakeupgen: enable clocks for save_secure_all Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-17  0:06   ` Kevin Hilman
2012-05-17  0:06     ` Kevin Hilman
2012-05-21  9:38     ` Tero Kristo [this message]
2012-05-21  9:38       ` Tero Kristo
2012-05-21  9:43       ` Shilimkar, Santosh
2012-05-21  9:43         ` Shilimkar, Santosh
2012-05-29 20:15       ` Kevin Hilman
2012-05-29 20:15         ` Kevin Hilman
2012-05-29 20:48         ` Menon, Nishanth
2012-05-29 20:48           ` Menon, Nishanth
2012-05-30  8:44           ` Tero Kristo
2012-05-30  8:44             ` Tero Kristo
2012-05-30  8:33         ` Tero Kristo
2012-05-30  8:33           ` Tero Kristo
2012-05-17  0:17   ` Paul Walmsley
2012-05-17  0:17     ` Paul Walmsley
2012-05-21  9:35     ` Tero Kristo
2012-05-21  9:35       ` Tero Kristo
2012-05-21  9:39       ` Shilimkar, Santosh
2012-05-21  9:39         ` Shilimkar, Santosh
2012-05-14 10:18 ` [PATCHv2 15/19] ARM: OMAP4430: PM: workaround for DDR corruption on second CS Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-17  0:15   ` Kevin Hilman
2012-05-17  0:15     ` Kevin Hilman
2012-05-17  7:12     ` Shilimkar, Santosh
2012-05-17  7:12       ` Shilimkar, Santosh
2012-05-17 16:47       ` Kevin Hilman
2012-05-17 16:47         ` Kevin Hilman
2012-05-18  5:55         ` Shilimkar, Santosh
2012-05-18  5:55           ` Shilimkar, Santosh
2012-05-14 10:18 ` [PATCHv2 16/19] TEMP: ARM: OMAP4: prevent voltage transitions Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 17/19] ARM: OMAP4: put cpu1 back to sleep if no wake request Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-17  0:31   ` Kevin Hilman
2012-05-17  0:31     ` Kevin Hilman
2012-05-21 10:21     ` Tero Kristo
2012-05-21 10:21       ` Tero Kristo
2012-05-21 10:40       ` Shilimkar, Santosh
2012-05-21 10:40         ` Shilimkar, Santosh
2012-05-29 20:17         ` Kevin Hilman
2012-05-29 20:17           ` Kevin Hilman
2012-05-30 15:18         ` Menon, Nishanth
2012-05-30 15:18           ` Menon, Nishanth
2012-05-14 10:18 ` [PATCHv2 18/19] ARM: OMAP4460: wakeupgen: set GIC_CPU0 backup status flag always Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-17  0:33   ` Kevin Hilman
2012-05-17  0:33     ` Kevin Hilman
2012-05-21  9:12     ` Tero Kristo
2012-05-21  9:12       ` Tero Kristo
2012-05-14 10:18 ` [PATCHv2 19/19] ARM: OMAP4: powerdomain: update mpu / core off counters during device off Tero Kristo
2012-05-14 10:18   ` Tero Kristo
2012-05-30 21:08   ` Menon, Nishanth
2012-05-30 21:08     ` Menon, Nishanth
2012-05-31  6:50     ` Tero Kristo
2012-05-31  6:50       ` Tero Kristo

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=1337593097.28274.19.camel@sokoban \
    --to=t-kristo@ti.com \
    --cc=b-cousson@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.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.