[PATCH v2 0/5] Support external CMO to flush entire cache

Nick Hu nick.hu at sifive.com
Wed May 21 22:53:45 PDT 2025


On Thu, May 15, 2025 at 10:45 PM Anup Patel <anup at brainfault.org> wrote:
>
> On Thu, Apr 24, 2025 at 9:10 AM Nick Hu <nick.hu at sifive.com> wrote:
> >
> > Some features, such as power management, may require flushing the entire
> > cache before entering a non-retention power state. To support this, a
> > simple cache framework is introduced to allow the external CMO to
> > perform a full cache flush.
>
> This series should also include patches which use the cache_xyz()
> APIs upon power management operations  (e.g. suspend to RAM).
>
Will add it in the next version. Thanks.

> Regards,
> Anup
>
> >
> > Changes in v2:
> > - Since the platform override hooks was deprecated, use the fdt_driver
> > for initializing the sifive_dev_platform.
> >
> > Nick Hu (3):
> >   lib: utils: Add cache flush library
> >   lib: utils: Add FDT cache library
> >   lib: utils/cache: Add fdt cmo helpers
> >
> > Vincent Chen (2):
> >   utils: cache: Add SiFive ccache controller
> >   platform: generic: Add SiFive development platform
> >
> >  include/sbi_utils/cache/cache.h               |  69 +++++++
> >  include/sbi_utils/cache/fdt_cache.h           |  34 ++++
> >  include/sbi_utils/cache/fdt_cmo_helper.h      |  34 ++++
> >  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 ++
> >  platform/generic/Kconfig                      |   5 +
> >  platform/generic/configs/defconfig            |   3 +
> >  platform/generic/sifive/objects.mk            |   3 +
> >  platform/generic/sifive/sifive_dev_platform.c |  42 +++++
> >  15 files changed, 652 insertions(+)
> >  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 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 platform/generic/sifive/sifive_dev_platform.c
> >
> > --
> > 2.17.1
> >

Regard,
Nick



More information about the opensbi mailing list