GICR_WAKER.ChildrenAsleep conditions to go to 0x0, post PE power-up

As stated in GIC v3 Arch: After powering up a PE, software must set ProcessorSleep to 0 and wait until ChildrenAsleep == 0.

Can you please also state the conditions for GICR_WAKER.ChildrenAsleep to go 0? As in my case at a particular operating frequency of GIC500, for some ARM A53 cores ChildrenAsleep do not go to 0 indefinitely (post clearing ProcessorSleep).

And hence respective cores do not come out of WFI.

P.S. Interrupt targeted to the Core and PE clocks enabled with WakeRequst signal.

Parents
  • ProcessorSleep is used to tell the GIC whether the connected core is awake.  Software sets the bit to 1 brefpre the cores is enters a low power state.  It clears the bit to 0 once after the core wakes up again.

    When ProcessorSleep is written, there is some handshaking between the core and the GIC.  ChildrenAsleep is reporting when that's finished.

    So is ChildrenAsleep is updating as expected, it suggests the core hasn't responded properly.

    I'm a bit confused by the WFI comment, is GICR_WAKER being written by a different processors?

    Also remember that after clearing ProcessorSleep (and seeing ChildrenAsleep==0), only then can you re-program the ICC registers

Reply
  • ProcessorSleep is used to tell the GIC whether the connected core is awake.  Software sets the bit to 1 brefpre the cores is enters a low power state.  It clears the bit to 0 once after the core wakes up again.

    When ProcessorSleep is written, there is some handshaking between the core and the GIC.  ChildrenAsleep is reporting when that's finished.

    So is ChildrenAsleep is updating as expected, it suggests the core hasn't responded properly.

    I'm a bit confused by the WFI comment, is GICR_WAKER being written by a different processors?

    Also remember that after clearing ProcessorSleep (and seeing ChildrenAsleep==0), only then can you re-program the ICC registers

Children