[Skiboot] [PATCH v5 0/4] Support for Self Save API in OPAL
Pratik Sampat
psampat at linux.ibm.com
Mon Mar 2 15:45:00 AEDT 2020
Hello Oliver,
Are there any concerns or anything more that needs to be done for this patch series to go
upstream?
On 24/02/20 5:05 pm, Pratik Rajesh Sampat wrote:
> v4: https://lists.ozlabs.org/pipermail/skiboot/2020-February/016404.html
> Changelog
> v4 --> v5
> 1. Based on Michael Neuling, updated SPR in device tree list
> 2. Updated documentation in doc/power-management.rst to elaborate on the
> saving and restoring mechanism, along with highlighting the differences
> between self-save and self-restore APIs.
>
> Currently the stop API supports a mechanism called as self-restore
> which allows us to restore the values of certain SPRs on wakeup from a
> deep-stop state to a desired value. To use this, the Kernel makes an
> OPAL call passing the PIR of the CPU, the SPR number and the value to
> which the SPR should be restored when that CPU wakes up from a deep
> stop state.
>
> Recently, a new feature, named self-save has been enabled in the
> stop API, which is an alternative mechanism to do the same, except
> that self-save will save the current content of the SPR before
> entering a deep stop state and also restore the content back on
> waking up from a deep stop state.
>
> This patch series aims to add support for the Self saving of registers
> and advertises the support for self save and restore along with the list
> of SPRs it supports to the device tree.
>
> The node for self-save or self-restore has the attribute:
> sprn-bitmask = bitmask where each bit signifies the presence of a SPR
>
> The key difference between self-save and self-restore is the
> use-case. If the Kernel expects the SPR to contain a particular value
> on waking up from a deep-stop state, that wasn't the value of that SPR
> before entering deep stop-state, then self-restore is preferable.
> When deep stop states are to be supported in an Ultravisor
> environment, since HOMER is in a secure region, the stop-api cannot
> update the HOMER if invoked from a context when the OPAL/Kernel is
> executing without the ultravisor privilege. In this scenario, at the
> time of early OPAL boot, while OPAL has ultravisor privileges, it can
> make the self-save stop-api call for all the supported SPRs, so that
> the microcode in the HOMER will always save and restore all the
> supported SPRs during entry/exit from a deep stop state.
>
> Patch1:
> Commit adds support calling into the self save firmware API.
> Also adds abstraction for making platform agnostic calls.
>
> Patch2:
> Commit adds wrappers for the Self Save API for which an OPAL call can be
> made.
>
> Patch3:
> Commit adds API to determine the version of the STOP API. This helps to
> identify support for self save in the firmware
>
> Patch4:
> Commit adds device tree attributes to advertise self save and self
> restore functionality along with the register set as a bitmask currently
> supported in the firmware. It also uses the versioning API to determine
> support for the self-save feature as a whole.
>
> Pratik Rajesh Sampat (2):
> Self save API integration
> Advertise the self-save and self-restore attributes in the device tree
>
> Prem Shanker Jha (2):
> Self Save: Introducing Support for SPR Self Save
> API to verify the STOP API and image compatibility
>
> .../ibm,opal/power-mgt/self-restore.rst | 25 +
> .../ibm,opal/power-mgt/self-save.rst | 25 +
> doc/opal-api/opal-slw-self-save-reg-181.rst | 49 +
> doc/opal-api/opal-slw-set-reg-100.rst | 5 +
> doc/power-management.rst | 44 +
> hw/slw.c | 201 ++++
> include/opal-api.h | 3 +-
> include/p9_stop_api.H | 122 ++-
> include/skiboot.h | 4 +
> libpore/p9_cpu_reg_restore_instruction.H | 11 +-
> libpore/p9_hcd_memmap_base.H | 7 +
> libpore/p9_stop_api.C | 964 ++++++++++--------
> libpore/p9_stop_api.H | 141 ++-
> libpore/p9_stop_data_struct.H | 4 +-
> libpore/p9_stop_util.H | 27 +-
> 15 files changed, 1200 insertions(+), 432 deletions(-)
> create mode 100644 doc/device-tree/ibm,opal/power-mgt/self-restore.rst
> create mode 100644 doc/device-tree/ibm,opal/power-mgt/self-save.rst
> create mode 100644 doc/opal-api/opal-slw-self-save-reg-181.rst
>
---
Thanks
Pratik
More information about the Skiboot
mailing list