Subject: Re: Cannot wake-up from standby with MPC8313

From: Norbert van Bolhuis <[email-masked]>
Date: Fri, 13 Jan 2012 15:13:43 +0100

On 01/06/12 22:03, Scott Wood wrote:
 > On 01/06/2012 07:53 AM, Norbert van Bolhuis wrote:
 >> On 01/05/12 19:22, Scott Wood wrote:
 >>> On 01/05/2012 09:58 AM, Norbert van Bolhuis wrote:
 >>>> thanks for your response.
 >>>>
 >>>> not setting MSR_POW gives same result.
 >>>
 >>> OK, so you're not getting an interrupt regardless of low-power state.
 >>>
 >>> Check whether the interrupt is getting masked during standby preparation.
 >>>
 >>> Does the interrupt handler run when you're not trying to enter standby?
 >>>
 >>
 >>
 >> The GPIO/UART interrupt nor the PMC interrupt are being masked during
 >> standby
 >> preperation.
 >> The GPIO/UART interrupt works fine in "operational" mode.
 >> The PMC interrupt I do not know, is it possible to to get PMC interrupt
 >> without going to standby or deep-sleep ?
 >
 > The PMC interrupt is mainly of interest when running as a PCI agent, to
 > be notified when the host changed the desired suspend state in config space.
 >
 > What changes from operational mode to the test where you omit setting
 > MSR_POW?
 >
 > Try dumping SIPNR/SIMSR and GPIER/GPIMR/GPDAT at various points.
 >

I dumped SIPNR/SIMSR and uart IIR/EIR (since console triggers wake-up)
but they do not change just before entering standby (via mpc6xx_enter_standby
which omits setting MSR_POW). uart IRQ is always enabled, unmasked and
not pending.

I tried to log to physical memory to see what's going on whenever the
board fails to wake-up.
(I can examine physical memory after CPU is stuck in sleep, by connecting
  a JTAG debugger, start u-boot and stop after DDR2 SDRAM ctrl is
  re-configured)

It looks like an interupt does occur, but do_IRQ seems to be stuck
in ppc_md.get_irq=ipic_get_irq where it reads SIVCR.

I have no idea why, any more suggestions ?

---
NvBolhuis