[PATCH 12/19] ARM: OMAP4: PM: update ROM return address for OSWR and OFF
Tero Kristo
t-kristo at ti.com
Wed Apr 25 03:24:14 EDT 2012
On Tue, 2012-04-24 at 09:39 -0700, Tony Lindgren wrote:
> * Tero Kristo <t-kristo at ti.com> [120420 02:39]:
> > @@ -384,6 +386,17 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
> > set_cpu_next_pwrst(wakeup_cpu, PWRDM_POWER_ON);
> >
> > if (omap4_mpuss_read_prev_context_state()) {
> > + /*
> > + * Dummy dispatcher call after OSWR and OFF
> > + * Restore the right return Kernel address (with MMU on) for
> > + * subsequent calls to secure ROM. Otherwise the return address
> > + * will be to a PA return address and the system will hang.
> > + */
> > + if (omap_type() != OMAP2_DEVICE_TYPE_GP)
> > + omap_secure_dispatcher(OMAP4_PPA_SERVICE_0,
> > + FLAG_START_CRITICAL,
> > + 0, 0, 0, 0, 0);
> > +
> > restore_ivahd_tesla_regs();
> > restore_l3instr_regs();
>
> This SoC test here too should be only done once during init.
You sure about this one? I will end up creating a variable omap_is_gp or
such, which looks somewhat silly and is going to be a duplicate (it will
not provide any extra value in addition to the existing omap_type()
check.) Also, similar checks are used elsewhere in the kernel, look at
omap-wakeupgen.c, pm34xx.c, pm44xx.c, control.c for example. Should all
of these be replaced? Well, most of these are related to secure context
saving so maybe the mechanism behind these should be changed somehow
globally.
-Tero
More information about the linux-arm-kernel
mailing list