[PATCH v3 0/1] riscv: Introduce system suspend support

Andrew Jones ajones at ventanamicro.com
Wed Dec 6 03:08:08 PST 2023


OpenSBI v1.3 and later supports the SUSP SBI extension which has recently
been frozen with the freezing of SBI 2.0. This one patch series adds
system suspend support to Linux, which implements "suspend-to-RAM". To
use it, build the kernel with CONFIG_SUSPEND, boot on a platform which
supports system suspend, and then issue 'echo mem > /sys/power/state'.
It's also possible to test this Linux support on a platform without
system suspend by using OpenSBI's system suspend test support. To enable
test support add

      opensbi-domains {
          compatible = "opensbi,domain,config";
          system-suspend-test;
      };

to the chosen node of the device tree. With the test node present,
OpenSBI will wait 5 seconds on a suspend and then kick a resume.

Changes for v3:
  - Drop the redundant ARCH_SUSPEND_POSSIBLE addition [Samuel]
    (v1 changed the def_bool to RISCV_SBI, but now it's 'y'
     again. This should be fine since an S-mode Linux will always
     have RISCV_SBI and an M-mode might actually be able to use
     s2idle.)

Changes for v2:
  - Rebase on v6.7-rc1
  - Added check for SBI spec version 2.0, which is the first ratified
    spec version with SUSP [Conor, Anup]
  - Picked up t-b from Samuel

Changes for v1:
  - Rebase on v6.6-rc1 -- only minor Kconfig change needed

Changes for RFC-v2:
  - RISCV_SBI dependency [Conor]
  - Rename SBI_EXT_SUSP_SUSPEND to SBI_EXT_SUSP_SYSTEM_SUSPEND and
    SBI_SUSP_SLEEP_TYPE_SUSPEND to SBI_SUSP_SLEEP_TYPE_SUSPEND_TO_RAM [Ley Foon]


Andrew Jones (1):
  riscv: sbi: Introduce system suspend support

 arch/riscv/Kconfig           |  2 +-
 arch/riscv/include/asm/sbi.h |  9 ++++++++
 arch/riscv/kernel/suspend.c  | 44 ++++++++++++++++++++++++++++++++++++
 3 files changed, 54 insertions(+), 1 deletion(-)

-- 
2.43.0




More information about the linux-riscv mailing list