[PATCH 0/5] Add hart state management and system suspend support for AE350
Ben Zong-You Xie
ben717 at andestech.com
Sun Dec 28 23:19:09 PST 2025
This patch series introduces support for hart state management and
system suspend functionalities on the Andes AE350 platform. For the hart
state management, AE350 platform supports CPU hotplug. For the
system suspend, there are two platform-specific low-power modes,
including deep sleep (suspend to RAM) and light sleep (suspend to standby).
Below is the patch summary:
[1/5]: The Andes System Management Unit (ATCSMU) logic is factored out into
a dedicated FDT-based HSM driver, improving code reuse and
maintainability.
[2/5]: Implement the functions to save and restore platform-specific CSRs
which are lost during CPU hotplug or deep sleep.
[3/5]: Add the functions to enable/disable the cache.
[4/5]: A new Last Level Cache (LLC) driver is introduced to handle required
cache operations for deep sleep.
[5/5]: An ATCSMU-based suspend driver is implemented to support Andes deep
sleep and light sleep, providing the OS with access to standardized
SBI system suspend extensions.
Ben Zong-You Xie (5):
lib: utils/hsm: factor out ATCSMU code into an HSM driver
platform: generic/andes: add CSR save and restore functions for AE350
platform
lib: utils/cache: add cache enable function
lib: utils/cache: add Andes last level cache controller
lib: utils/suspend: add Andes ATCSMU suspend driver
include/sbi_utils/cache/cache.h | 11 +
include/sbi_utils/cache/fdt_cmo_helper.h | 13 ++
include/sbi_utils/hsm/fdt_hsm_andes_atcsmu.h | 65 ++++++
include/sbi_utils/sys/atcsmu.h | 59 ------
lib/utils/cache/Kconfig | 5 +
lib/utils/cache/cache.c | 11 +
lib/utils/cache/fdt_andes_llcache.c | 166 +++++++++++++++
lib/utils/cache/fdt_cmo_helper.c | 23 ++
lib/utils/cache/objects.mk | 3 +
lib/utils/hsm/Kconfig | 4 +
lib/utils/hsm/fdt_hsm_andes_atcsmu.c | 210 +++++++++++++++++++
lib/utils/hsm/objects.mk | 5 +-
lib/utils/reset/Kconfig | 2 +-
lib/utils/reset/fdt_reset_atcwdt200.c | 22 +-
lib/utils/suspend/Kconfig | 5 +
lib/utils/suspend/fdt_suspend_andes_atcsmu.c | 119 +++++++++++
lib/utils/suspend/objects.mk | 3 +
lib/utils/sys/Kconfig | 4 -
lib/utils/sys/atcsmu.c | 89 --------
lib/utils/sys/objects.mk | 1 -
platform/generic/Kconfig | 1 -
platform/generic/andes/ae350.c | 147 +++++--------
platform/generic/andes/objects.mk | 2 +-
platform/generic/andes/sleep.S | 70 -------
platform/generic/configs/defconfig | 3 +
platform/generic/include/andes/andes.h | 84 +++++++-
26 files changed, 791 insertions(+), 336 deletions(-)
create mode 100644 include/sbi_utils/hsm/fdt_hsm_andes_atcsmu.h
delete mode 100644 include/sbi_utils/sys/atcsmu.h
create mode 100644 lib/utils/cache/fdt_andes_llcache.c
create mode 100644 lib/utils/hsm/fdt_hsm_andes_atcsmu.c
create mode 100644 lib/utils/suspend/fdt_suspend_andes_atcsmu.c
delete mode 100644 lib/utils/sys/atcsmu.c
delete mode 100644 platform/generic/andes/sleep.S
--
2.34.1
More information about the opensbi
mailing list