[Skiboot] [PATCH v5 0/8] Enable stop4 idle state
Stewart Smith
stewart at linux.vnet.ibm.com
Tue Sep 19 20:14:49 AEST 2017
Akshay Adiga <akshay.adiga at linux.vnet.ibm.com> writes:
> When cpu enters stop4 or deeper state it losses few critical hypervisor
> sprs. In the POWER9 platform stop-api provides interface for opal to call
> into low level platform firmware/microcode to configure and setup various
> actions on wakeup from deep idle state.
>
> Some SPRs that have implicit value like HRMOR are directly set from
> OPAL, while other are left to be configured from Linux using opal
> calls.
>
> p9 stop api is used to restore these hypervisor sprs with
> correct values. Sprs like HRMOR is configured from skiboot,
> where as LPCR, HID and MSR are configured by kernel. Kernel
> uses opal_slw_set_reg() to configure these sprs.
>
> Patch 1: p9_stop_api from hostboot code.
> Patch 2: Add glibc style endianness check in CCAN endian.h
> Patch 3: Fixes build erros caused due to mixed code and declaration
> Patch 4: Enable opal_slw_set_reg() for power9
> Patch 5: Configure HRMOR restore using stop api
> Patch 6: Allows deeper stop states (like stop4) if homer address is set
> Patch 7: Fix stop4 related flags that are exposed in device-tree for DD2
> Patch 8: Add Documentaion for opal_slw_set_reg
>
> Changes from v1 :
> * Added patch6, which adds stop4 to device-tree
>
> Changes from v2 :
> * Updated latest p9_stop_api code base from hostboot
> * Removed "code under development" from commit log for p9_stop_api
> * added Patch 2 , for a p9_stop_api build fix
> * Remove stop4 support for power9 DD1, stop1 is the deepest stop
> state in DD1.
> * Modify stop4 related flags (for DD2 and further rev's)
>
> Changes form v3 :
> * Added glib style endianess check to ccan.
> * Added documentation
> * Added explicit check for power8 in opal_slw_set_reg()
>
> Changes from v4 :
> * Changes in commit message as suggested by Vaidy in Patch 1.
>
> Akshay Adiga (8):
> SLW: Add support for p9_stop_api
> Add glibc style endianess check in CCAN
> libpore: Build fix for p9_stop_api
> SLW: Add opal_slw_set_reg support for power9
> SLW: Configure self-restore for HRMOR
> SLW: Allow deep states if homer address is known
> SLW: Removing timebase related flags for stop4
> Add Documenation for opal_slw_set_reg
>
> ccan/endian/endian.h | 9 +
> doc/opal-api/opal-slw-set-reg-100.rst | 46 ++
> hw/slw.c | 116 +++-
> include/p9_stop_api.H | 163 +++++
> libpore/Makefile.inc | 2 +-
> libpore/p9_cpu_reg_restore_instruction.H | 76 +++
> libpore/p9_hcd_header_defs.H | 152 +++++
> libpore/p9_hcd_memmap_base.H | 522 +++++++++++++++
> libpore/p9_stop_api.C | 1028 ++++++++++++++++++++++++++++++
> libpore/p9_stop_api.H | 163 +++++
> libpore/p9_stop_data_struct.H | 149 +++++
> libpore/p9_stop_util.C | 187 ++++++
> libpore/p9_stop_util.H | 145 +++++
> 13 files changed, 2729 insertions(+), 29 deletions(-)
> create mode 100644 doc/opal-api/opal-slw-set-reg-100.rst
> create mode 100644 include/p9_stop_api.H
> create mode 100644 libpore/p9_cpu_reg_restore_instruction.H
> create mode 100644 libpore/p9_hcd_header_defs.H
> create mode 100644 libpore/p9_hcd_memmap_base.H
> create mode 100644 libpore/p9_stop_api.C
> create mode 100644 libpore/p9_stop_api.H
> create mode 100644 libpore/p9_stop_data_struct.H
> create mode 100644 libpore/p9_stop_util.C
> create mode 100644 libpore/p9_stop_util.H
Thansk for this, especially adding documentation at the end - that's
*fantastic* and even closes out
https://github.com/open-power/skiboot/issues/129
Merged to master as of b7f41322c61ea903f298544463d386a8a9cc6de5
--
Stewart Smith
OPAL Architect, IBM.
More information about the Skiboot
mailing list