Question about e300 core decrementer interrupt
Scott Wood
scottwood at freescale.com
Thu Sep 10 04:43:43 EST 2009
On Wed, Sep 09, 2009 at 01:16:07PM +0200, Kenneth Johansson wrote:
> On Tue, 2009-09-08 at 13:48 +0800, Li Tao-B22598 wrote:
> > Dear all,
> >
> > I have a problem in MPC5121 sleep mode. As you know MPC5121 use e300c4
> > core. When I make the e300c4 core into sleep mode, it will return to
> > full power mode when the“decrementer interrupt” occurred.
> >
> > But in the e300 core reference manual said that the “decrementer
> > interrupt”have no effect when e300 core in sleep mode, because the
> > time
> > base and decrementer are disabled while the core is in sleep mode.
> > Can anybody explain about this procedure ?
I'm not specifically familiar with MPC5121, but I'll answer from the
perspective of MPC83xx which has a similar core:
The decrementer stops ticking when the core goes to sleep. However, if a
decrementer was already pending (but masked with MSR[EE]) before you
enter sleep mode, it will cause a wakeup.
To avoid this, the decrementer is set to a very large value prior to and
after disabling interrupts. See generic_suspend_disable_irqs() in
arch/powerpc/kernel/time.c. Is this not happening for you? Which kernel
version are you using, and what mechanism are you using to go to sleep?
> I'm a bit irritated that it's not as the "solution" can mean hardware
> changes an thus it's potentially expensive.
What sort of hardware changes?
-Scott
More information about the Linuxppc-dev
mailing list