bao-project / bao-hypervisor

Bao, a Lightweight Static Partitioning Hypervisor
Apache License 2.0
379 stars 128 forks source link

feat(armv8/psci): Handle unexpected psci behavior #179

Closed DavidMCerdeira closed 1 month ago

DavidMCerdeira commented 1 month ago

We've observed that some platforms behave unexpectedly when performing power down, and others when performing standby. In these cases, the CPU cores are not awaken by interrupts as expected. These commit solve this, by adding the ability to skip the respective firmware call, instead relying on the fallback mechanism of using wfi.

josecm commented 1 month ago

@DavidMCerdeira Shouldn't we address other calls to psci_power_down such as in psci_cpu_suspend_handler?

DavidMCerdeira commented 1 month ago

This is a good point Let me first make a few tests to make sure the PSCI_WAKEUP_IDLE behavior is the same as the PSCI_STATE_TYPE_STANDBY

josecm commented 1 month ago

This is a good point Let me first make a few tests to make sure the PSCI_WAKEUP_IDLE behavior is the same as the PSCI_STATE_TYPE_STANDBY

Please make sure we are also inline with the PSCI in this respect.