Hi,
I'm working on a system which is built from two cluster, each includes two cores Cortex-A72
I have a dedicated CPU (Cortex-M3) which is used for power management functionality, and receives the wake up events for power down cores.
The trigger is defined by each core wake up timer - which means each core before power down configures the wake up timer to generate wake up interrupt.
Linux device tree defines two levels of idles state
CPU Idle state - power down core
Cluster Idle state - power down cluster
My Question is for Cluster Power Down
Core A enters idle, PSCI coordination defines CPU power down (since CPU B is active), the core execute power down sequence - set the wake up timer to 200usec
Core B enters idle, PSCI coordination defines Cluster power down (since CPU A is already down), the core execute Cluster power down - wake up timer is set to 2000usec
Core A wakes up after 200usec has passed, since Cluster was power down it will power up the Cluster
How do I overcome this issue?
Thanks
Oren
Not my area, but basically are you saying that 200usec is a short enough period the cluster should be left up and 2000usec is long enough that it should shut down? If you have both those figures stored then you should have the 200usec associated with the cluster as being the shortest of the times associated with the CPUs in the cluster. Probably I'd have had Linux do most of the deciding since other events can also wake up a CPU and pass over some advice, I know throwing things over the fence sounds bad but sometimes it can be best. So yes talking with them sounds a good idea.