Question about e300 core decrementer interrupt

Li Tao b22598 at freescale.com
Thu Sep 10 21:58:42 EST 2009


Hi Scott Wood,
Thanks for your response

在 2009-09-09三的 13:43 -0500,Scott Wood写道:
> 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 use 2.6.24 kernel. The PM driver code have set decrementer to
0x7fffffff before go to sleep mode.
The driver set HID0[10]=1, then set MSR POW bit. PMCCR = 00111.
>  
> 
> > 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