On Thu, Mar 30, 2023 at 02:06:19PM +0200, Ulf Hansson wrote: > On Thu, 30 Mar 2023 at 11:34, Sudeep Holla <sudeep.holla@xxxxxxx> wrote: > > > > On Thu, Mar 30, 2023 at 02:12:49PM +0530, Maulik Shah wrote: > > > A switch from OSI to PC mode is only possible if all CPUs other than the > > > calling one are OFF, either through a call to CPU_OFF or not yet booted. > > > > > > > As per the spec, all cores are in one of the following states: > > - Running > > - OFF, either through a call to CPU_OFF or not yet booted > > - Suspended, through a call to CPU_DEFAULT_SUSPEND > > > > Better to provide full information. > > > > > Currently OSI mode is enabled before power domains are created. In cases > > > where CPUidle states are not using hierarchical CPU topology the bail out > > > path tries to switch back to PC mode which gets denied by firmware since > > > other CPUs are online at this point and creates inconsistent state as > > > firmware is in OSI mode and Linux in PC mode. > > > > > > > OK what is the issue if the other cores are online ? As long as they are > > running, it is allowed in the spec, so your statement is incorrect. > > > > Is CPUidle enabled before setting the OSI mode. I see only that can cause > > issue as we don't use CPU_DEFAULT_SUSPEND. If idle is not yet enabled, it > > shouldn't be a problem. > > Sudeep, you may very well be correct here. Nevertheless, it looks like > the current public TF-A implementation doesn't work exactly like this, > as it reports an error in Maulik's case. We should fix it too, I > think. > > Although, to me it doesn't really matter as I think $subject patch > makes sense anyway. It's always nice to simplify code when it's > possible. > Agreed, I don't have any objection to the change. The wording the message worried me and wanted to check if there are any other issues because of this. As such it doesn't look like there are but the commit message needs to be updated as it gives a different impression/understanding. -- Regards, Sudeep