[PATCH 00/11] SBI system suspend (SUSP) extension

Andrew Jones ajones at ventanamicro.com
Wed Jan 18 06:56:07 PST 2023


On Wed, Jan 18, 2023 at 03:42:23PM +0100, Andrew Jones wrote:
> This series implements the SBI system suspend support in OpenSBI
> as-per the draft proposal for SBI system suspend which can be found at
> https://github.com/jones-drew/riscv-sbi-doc/commit/d9e43e9a938fc3eb510e023c3f352462876f7785
> 
> The first half of the series are a few cleanups and fixes for HSM,
> as system suspend makes use of some of its code and patterns. The
> second half implements support for the extension and includes a patch
> which allows testing to be enabled, even when low-level firmware does
> not provide support. Regarding the test mode, it's currently enabled
> by adding a 'system-suspend-test' DT property, but Anup has suggested
> that FW_OPTION could also be used. I'm all ears for what people think
> the best way to control test functionality in OpenSBI is and am happy
> to switch it. To test with Linux the kernel must include the patch at
> https://github.com/jones-drew/linux/commits/riscv/sbi-susp-rfc and
> be built with CONFIG_SUSPEND enabled.
> 
> The patches are based on commit da5594bf853d ("platform: generic:
> allwinner: Fix PLIC array bounds") and can also be found at
> https://github.com/jones-drew/opensbi/commits/susp-v1
> 
> v2:
  ^ This should be v1, since I started at RFC (v0).

>  - Rebased on latest master
>  - Added a print line to sbi_boot_print_general() [Anup]
>  - Picked up Anup's r-b's
> 
> Andrew Jones (11):
>   lib: sbi_hsm: Factor out invalid state detection
>   lib: sbi_hsm: Don't try to restore state on failed change
>   lib: sbi_hsm: Ensure errors are consistent with spec
>   lib: sbi_hsm: Move misplaced comment
>   lib: sbi_hsm: Remove unnecessary include
>   lib: sbi_hsm: Export some functions
>   lib: sbi: Add system suspend skeleton
>   lib: sbi: Add system_suspend_allowed domain property
>   lib: sbi: Implement system suspend
>   docs: Correct opensbi-domain property name
>   platform: generic: Add system suspend test
> 
>  docs/domain_support.md            |  15 +++-
>  include/sbi/sbi_domain.h          |   2 +
>  include/sbi/sbi_ecall_interface.h |   8 +++
>  include/sbi/sbi_hsm.h             |   4 ++
>  include/sbi/sbi_system.h          |  18 +++++
>  lib/sbi/Kconfig                   |   4 ++
>  lib/sbi/objects.mk                |   3 +
>  lib/sbi/sbi_domain.c              |   4 ++
>  lib/sbi/sbi_ecall_hsm.c           |   4 +-
>  lib/sbi/sbi_ecall_susp.c          |  48 +++++++++++++
>  lib/sbi/sbi_hsm.c                 |  92 +++++++++++--------------
>  lib/sbi/sbi_init.c                |   4 ++
>  lib/sbi/sbi_system.c              | 111 ++++++++++++++++++++++++++++++
>  lib/utils/fdt/fdt_domain.c        |   7 ++
>  platform/generic/platform.c       |  20 +++++-
>  15 files changed, 287 insertions(+), 57 deletions(-)
>  create mode 100644 lib/sbi/sbi_ecall_susp.c
> 
> -- 
> 2.39.0
> 



More information about the opensbi mailing list