[PATCH v4 0/3] openrisc: Add cacheinfo support and introduce new utility functions

From: Sahil Siddiq
Date: Fri Mar 28 2025 - 16:26:53 EST


Hi,

The main purpose of this series is to expose CPU cache attributes for
OpenRISC in sysfs using the cacheinfo API. The core implementation
to achieve this is in patch #3. Patch #1 and #2 add certain enhancements
to simplify the implementation of cacheinfo support.

Patch #1 removes duplication of cache-related data members in struct
cpuinfo_or1k.

Patch #2 introduces several utility functions. One set of functions is
used to check if the cache components and SPRs exist before attempting
to use them. The other set provides a convenient interface to flush or
invalidate a range of cache blocks.

This version addresses review comments posted in response to v3. In
commit #2, I chose not to make "cache_loop_page()" inline after reading
point 15 in the coding style doc [1]. Let me know if it should be made
inline.

Thanks,
Sahil

[1] https://www.kernel.org/doc/html/latest/process/coding-style.html

Sahil Siddiq (3):
openrisc: Refactor struct cpuinfo_or1k to reduce duplication
openrisc: Introduce new utility functions to flush and invalidate
caches
openrisc: Add cacheinfo support

arch/openrisc/include/asm/cacheflush.h | 17 ++++
arch/openrisc/include/asm/cpuinfo.h | 31 ++++++--
arch/openrisc/kernel/Makefile | 2 +-
arch/openrisc/kernel/cacheinfo.c | 104 +++++++++++++++++++++++++
arch/openrisc/kernel/dma.c | 18 +----
arch/openrisc/kernel/setup.c | 45 +----------
arch/openrisc/mm/cache.c | 87 +++++++++++++++++++--
arch/openrisc/mm/init.c | 5 +-
8 files changed, 235 insertions(+), 74 deletions(-)
create mode 100644 arch/openrisc/kernel/cacheinfo.c


base-commit: ea1413e5b53a8dd4fa7675edb23cdf828bbdce1e
--
2.48.1