From: Nick Hu <nick.hu@sifive.com>
To: opensbi@lists.infradead.org
Cc: Yong-Xuan Wang <yongxuan.wang@sifive.com>,
Nick Hu <nick.hu@sifive.com>, Anup Patel <anup@brainfault.org>,
Vincent Chen <vincent.chen@sifive.com>,
Andy Chiu <andy.chiu@sifive.com>,
Cyan Yang <cyan.yang@sifive.com>
Subject: [PATCH v5 00/11] Add SiFive TMC0 and SMC0 driver
Date: Tue, 02 Sep 2025 10:24:39 +0800 [thread overview]
Message-ID: <20250902-cache-upstream-v5-0-af60a067f47a@sifive.com> (raw)
SiFive TMC0 and SMC0 are the power controllers that controls the Tile and
CoreComplex power domain. Add the drivers to support the power
management features such as HSM STOP and System Suspend.
Features such as power management may require flushing the entire
cache before entering a non-retention power state. To support this, a
simple cache flush framework is introduced to allow the external CMO
to perform a full cache flush.
---
Changes in v5:
- Put the SiFive TMC0 driver to the fdt_early_driver
- Fix the format of the comments in SiFive TMC0 driver
Changes in v4:
- Call fdt_cmo_init() directly as part of generic_early_init()
- Rename SBI_HART_EXT_XSF* to SBI_HART_EXT_XSIFIVE*
- Move the TMC0 driver to the lib/utils/hsm/
- Move the SMC0 driver to the lib/utils/suspend/
Changes in v3:
- Add the SiFive TMC and SMC driver
Changes in v2:
- Since the platform override hooks was deprecated, use the fdt_driver
for initializing the sifive_dev_platform.
---
Nick Hu (10):
lib: utils: Add cache flush library
lib: utils: Add FDT cache library
lib: utils/cache: Add fdt cmo helpers
lib: sbi: Add SiFive proprietary xsfcflushdlone
lib: sbi: Add SiFive proprietary xsfcease
lib: utils/ipi: Exposing the ACLINT IPI device
lib: utils/irqchip: Add APLIC restore function
platform: sifive: Add SiFive TMC0 driver
lib: utils/timer: Expose timer update function
platform: sifive: Add SiFive SMC0 driver
Vincent Chen (1):
utils: cache: Add SiFive ccache controller
include/sbi/sbi_hart.h | 4 +
include/sbi_utils/cache/cache.h | 69 +++
include/sbi_utils/cache/fdt_cache.h | 34 ++
include/sbi_utils/cache/fdt_cmo_helper.h | 34 ++
include/sbi_utils/hsm/fdt_hsm_sifive_inst.h | 20 +
include/sbi_utils/hsm/fdt_hsm_sifive_tmc0.h | 19 +
include/sbi_utils/ipi/aclint_mswi.h | 1 +
include/sbi_utils/irqchip/aplic.h | 3 +
.../suspend/fdt_suspend_sifive_smc0.h | 18 +
include/sbi_utils/timer/aclint_mtimer.h | 5 +
lib/sbi/sbi_hart.c | 2 +
lib/utils/Kconfig | 2 +
lib/utils/cache/Kconfig | 23 +
lib/utils/cache/cache.c | 46 ++
lib/utils/cache/fdt_cache.c | 87 ++++
lib/utils/cache/fdt_cache_drivers.carray | 3 +
lib/utils/cache/fdt_cmo_helper.c | 112 +++++
lib/utils/cache/fdt_sifive_ccache.c | 175 +++++++
lib/utils/cache/objects.mk | 14 +
lib/utils/hsm/Kconfig | 5 +
lib/utils/hsm/fdt_hsm_sifive_tmc0.c | 468 ++++++++++++++++++
lib/utils/hsm/objects.mk | 2 +
lib/utils/ipi/aclint_mswi.c | 5 +
lib/utils/irqchip/aplic.c | 160 +++---
lib/utils/suspend/Kconfig | 4 +
lib/utils/suspend/fdt_suspend_sifive_smc0.c | 323 ++++++++++++
lib/utils/suspend/objects.mk | 3 +
lib/utils/timer/aclint_mtimer.c | 28 +-
platform/generic/Kconfig | 5 +
platform/generic/configs/defconfig | 5 +
platform/generic/platform.c | 3 +-
platform/generic/sifive/objects.mk | 3 +
platform/generic/sifive/sifive_dev_platform.c | 57 +++
33 files changed, 1667 insertions(+), 75 deletions(-)
create mode 100644 include/sbi_utils/cache/cache.h
create mode 100644 include/sbi_utils/cache/fdt_cache.h
create mode 100644 include/sbi_utils/cache/fdt_cmo_helper.h
create mode 100644 include/sbi_utils/hsm/fdt_hsm_sifive_inst.h
create mode 100644 include/sbi_utils/hsm/fdt_hsm_sifive_tmc0.h
create mode 100644 include/sbi_utils/suspend/fdt_suspend_sifive_smc0.h
create mode 100644 lib/utils/cache/Kconfig
create mode 100644 lib/utils/cache/cache.c
create mode 100644 lib/utils/cache/fdt_cache.c
create mode 100644 lib/utils/cache/fdt_cache_drivers.carray
create mode 100644 lib/utils/cache/fdt_cmo_helper.c
create mode 100644 lib/utils/cache/fdt_sifive_ccache.c
create mode 100644 lib/utils/cache/objects.mk
create mode 100644 lib/utils/hsm/fdt_hsm_sifive_tmc0.c
create mode 100644 lib/utils/suspend/fdt_suspend_sifive_smc0.c
create mode 100644 platform/generic/sifive/sifive_dev_platform.c
--
2.17.1
--
opensbi mailing list
opensbi@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/opensbi
To: opensbi@lists.infradead.org
---
Nick Hu (10):
lib: utils: Add cache flush library
lib: utils: Add FDT cache library
lib: utils/cache: Add fdt cmo helpers
lib: sbi: Add SiFive proprietary xsfcflushdlone
lib: sbi: Add SiFive proprietary xsfcease
lib: utils/ipi: Exposing the ACLINT IPI device
lib: utils/irqchip: Add APLIC restore function
platform: sifive: Add SiFive TMC0 driver
lib: utils/timer: Expose timer update function
platform: sifive: Add SiFive SMC0 driver
Vincent Chen (1):
utils: cache: Add SiFive ccache controller
include/sbi/sbi_hart.h | 4 +
include/sbi_utils/cache/cache.h | 69 ++++
include/sbi_utils/cache/fdt_cache.h | 34 ++
include/sbi_utils/cache/fdt_cmo_helper.h | 34 ++
include/sbi_utils/hsm/fdt_hsm_sifive_inst.h | 20 +
include/sbi_utils/hsm/fdt_hsm_sifive_tmc0.h | 19 +
include/sbi_utils/ipi/aclint_mswi.h | 1 +
include/sbi_utils/irqchip/aplic.h | 3 +
.../sbi_utils/suspend/fdt_suspend_sifive_smc0.h | 18 +
include/sbi_utils/timer/aclint_mtimer.h | 5 +
lib/sbi/sbi_hart.c | 2 +
lib/utils/Kconfig | 2 +
lib/utils/cache/Kconfig | 23 ++
lib/utils/cache/cache.c | 46 +++
lib/utils/cache/fdt_cache.c | 87 +++++
lib/utils/cache/fdt_cache_drivers.carray | 3 +
lib/utils/cache/fdt_cmo_helper.c | 112 ++++++
lib/utils/cache/fdt_sifive_ccache.c | 175 +++++++++
lib/utils/cache/objects.mk | 14 +
lib/utils/hsm/Kconfig | 5 +
lib/utils/hsm/fdt_hsm_sifive_tmc0.c | 405 +++++++++++++++++++++
lib/utils/hsm/objects.mk | 3 +
lib/utils/ipi/aclint_mswi.c | 5 +
lib/utils/irqchip/aplic.c | 160 ++++----
lib/utils/suspend/Kconfig | 4 +
lib/utils/suspend/fdt_suspend_sifive_smc0.c | 323 ++++++++++++++++
lib/utils/suspend/objects.mk | 3 +
lib/utils/timer/aclint_mtimer.c | 28 +-
platform/generic/Kconfig | 5 +
platform/generic/configs/defconfig | 5 +
platform/generic/platform.c | 3 +-
platform/generic/sifive/objects.mk | 3 +
platform/generic/sifive/sifive_dev_platform.c | 39 ++
33 files changed, 1587 insertions(+), 75 deletions(-)
---
base-commit: 1ffbd063c4da252f59cc570e537a3c8821ed6967
change-id: 20250829-cache-upstream-93730838a1a6
Best regards,
--
Nick Hu <nick.hu@sifive.com>
--
opensbi mailing list
opensbi@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/opensbi
next reply other threads:[~2025-09-02 3:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-02 2:24 Nick Hu [this message]
2025-09-02 2:24 ` [PATCH v5 01/11] lib: utils: Add cache flush library Nick Hu
2025-09-02 2:24 ` [PATCH v5 02/11] lib: utils: Add FDT cache library Nick Hu
2025-09-02 2:24 ` [PATCH v5 03/11] utils: cache: Add SiFive ccache controller Nick Hu
2025-09-02 2:24 ` [PATCH v5 04/11] lib: utils/cache: Add fdt cmo helpers Nick Hu
2025-09-02 6:13 ` Anup Patel
2025-09-02 2:24 ` [PATCH v5 05/11] lib: sbi: Add SiFive proprietary xsfcflushdlone Nick Hu
2025-09-02 2:24 ` [PATCH v5 06/11] lib: sbi: Add SiFive proprietary xsfcease Nick Hu
2025-09-02 2:24 ` [PATCH v5 07/11] lib: utils/ipi: Exposing the ACLINT IPI device Nick Hu
2025-09-02 6:16 ` Anup Patel
2025-09-02 2:24 ` [PATCH v5 08/11] lib: utils/irqchip: Add APLIC restore function Nick Hu
2025-09-02 6:18 ` Anup Patel
2025-09-02 2:24 ` [PATCH v5 09/11] platform: sifive: Add SiFive TMC0 driver Nick Hu
2025-09-02 10:33 ` Anup Patel
2025-09-03 6:54 ` Nick Hu
2025-09-02 2:24 ` [PATCH v5 10/11] lib: utils/timer: Expose timer update function Nick Hu
2025-09-02 2:24 ` [PATCH v5 11/11] platform: sifive: Add SiFive SMC0 driver Nick Hu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250902-cache-upstream-v5-0-af60a067f47a@sifive.com \
--to=nick.hu@sifive.com \
--cc=andy.chiu@sifive.com \
--cc=anup@brainfault.org \
--cc=cyan.yang@sifive.com \
--cc=opensbi@lists.infradead.org \
--cc=vincent.chen@sifive.com \
--cc=yongxuan.wang@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox