From: Mina Hui-Min Chou <minachou@andestech.com>
To: <pjw@kernel.org>, <palmer@dabbelt.com>, <aou@eecs.berkeley.edu>,
<alex@ghiti.fr>, <conor@kernel.org>, <jic23@kernel.org>,
<robh@kernel.org>, <krzk+dt@kernel.org>, <conor+dt@kernel.org>,
<geert+renesas@glider.be>, <magnus.damm@gmail.com>,
<prabhakar.mahadev-lad.rj@bp.renesas.com>,
<linux-riscv@lists.infradead.org>, <devicetree@vger.kernel.org>,
<linux-renesas-soc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Cc: <randolph@andestech.com>, <cyyang772@andestech.com>,
<tim609@andestech.com>, <minachou@andestech.com>,
<az70021@gmail.com>
Subject: [PATCH v2 00/19] riscv: andes: make the LLC driver and cache errata generic
Date: Fri, 13 Nov 2026 15:11:24 +0800 [thread overview]
Message-ID: <20261113071143.1446167-1-minachou@andestech.com> (raw)
The Andes last level cache (LLC) driver and the Andes cache errata were
written for the AX45MP core in the Renesas RZ/Five. Other Andes cores use
the same LLC controller and need the same CCTL-based cache maintenance,
but the driver, its binding and the errata only handle AX45MP.
This series makes them generic, in preparation for the Allwinner V821
SoC [1][2], which uses the Andes A27L2 core [3]. The A27L2 has neither
IOCP nor Zicbom, so it relies on the LLC driver for DMA cache
maintenance.
The series is organized as follows:
- Patches 2-6 rename the AX45MP and L2 identifiers to generic Andes and
LLC names, move the Andes CSR definitions to a shared header, and
rename ax45mp_cache.c to andes_llcache.c. No functional change.
- Patches 1, 7 and 8 are small cleanups. No functional change.
- Patches 9-11 fix issues that do not show up on RZ/Five but affect
other Andes platforms:
- write the full physical address to the 64-bit CCTL registers,
- register the CCTL cache ops only when the errata asks for them, so
that they do not override Zicbom CMO,
- index the per-core CCTL registers by hart ID, not logical CPU
number.
- Patches 12-15 add andestech,llcache as a generic compatible, keep
andestech,ax45mp-cache for existing devicetrees, and add a
MAINTAINERS entry for the driver.
- Patches 16-18 make the Andes cache errata usable on any Andes SoC:
ERRATA_ANDES_CMO no longer depends on ARCH_R9A07G043, Andes cores
other than AX45MP use the CCTL ops when they do not implement Zicbom,
and the SBI-based IOCP check is limited to RZ/Five.
- Patch 19 adds the andestech,a27l2 CPU compatible. The V821 devicetree
will be submitted separately by Allwinner.
Existing RZ/Five devicetrees and behavior are unchanged.
[1] https://www.allwinnertech.com/index.php?c=product&a=index&id=136
[2] https://github.com/AvaotaSBC/AvaotaF1
[3] https://www.andestech.com/en/products-solutions/andescore-processors/riscv-a27l2/
Changes in v2:
- Rework the series: split the refactoring into smaller patches, drop
the performance and feature changes, and add the cache errata
changes needed for other Andes cores.
- Split the v1 refactoring patch into separate rename, header, macro
and file rename patches.
- Keep andestech,ax45mp-cache and add andestech,llcache as a generic
fallback compatible, instead of renaming the compatible. Drop the v1
DTS update patch accordingly.
- Drop the performance and feature changes of v1 patches 2/7-4/7 to
keep this series focused on making the driver generic. They will be
sent separately.
- New: fix the CCTL physical address width, the cache ops registration
condition and the CCTL register index (patches 9-11).
- New: generalize the Andes cache errata (patches 16-18).
- New: add the A27L2 CPU compatible (patch 19).
- Link to v1: https://lore.kernel.org/r/20260330102724.1012470-1-minachou@andestech.com
Mina Hui-Min Chou (19):
cache: ax45mp_cache: use __initconst for ax45mp_cmo_ops
cache: ax45mp_cache: rename AX45MP-specific identifiers to generic
ANDES
cache: ax45mp_cache: rename L2 identifiers to LLC
cache: ax45mp_cache: add shared header for Andes CSRs
cache: ax45mp_cache: standardize macro naming for LLC and L1D
registers
cache: ax45mp_cache: rename ax45mp_cache.c to andes_llcache.c
cache: andes_llcache: clean up cache inv/wback functions
cache: andes_llcache: use u32 and fix the cache-line-size error
message
cache: andes_llcache: write the full physical address for CCTL
cache: andes_llcache: register cache ops only when the errata needs
them
cache: andes_llcache: use the hart ID to index the CCTL registers
dt-bindings: cache: andestech: update schema for generic LLC support
dt-bindings: cache: rename andestech,ax45mp-cache to andestech,llcache
cache: andes_llcache: add generic andestech,llcache compatible
MAINTAINERS: Add maintainer for Andes cache driver
riscv: errata: andes: allow ERRATA_ANDES_CMO on all Andes SoCs
riscv: errata: andes: generalize cache errata for Andes cores
riscv: errata: andes: limit the IOCP workaround to RZ/Five
dt-bindings: riscv: add Andes A27L2 CPU compatible
...45mp-cache.yaml => andestech,llcache.yaml} | 73 ++++--
.../devicetree/bindings/riscv/cpus.yaml | 1 +
MAINTAINERS | 7 +
arch/riscv/Kconfig.errata | 6 +-
arch/riscv/errata/andes/errata.c | 22 +-
arch/riscv/include/asm/errata_list_vendors.h | 2 +-
drivers/cache/Kconfig | 9 +-
drivers/cache/Makefile | 2 +-
drivers/cache/andes_llcache.c | 213 +++++++++++++++++
drivers/cache/ax45mp_cache.c | 217 ------------------
drivers/soc/renesas/Kconfig | 2 +-
include/linux/soc/andes/csr.h | 12 +
12 files changed, 316 insertions(+), 250 deletions(-)
rename Documentation/devicetree/bindings/cache/{andestech,ax45mp-cache.yaml => andestech,llcache.yaml} (52%)
create mode 100644 drivers/cache/andes_llcache.c
delete mode 100644 drivers/cache/ax45mp_cache.c
create mode 100644 include/linux/soc/andes/csr.h
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
--
2.34.1
next reply other threads:[~2026-11-13 7:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-13 7:11 Mina Hui-Min Chou [this message]
2026-11-13 7:11 ` [PATCH v2 01/19] cache: ax45mp_cache: use __initconst for ax45mp_cmo_ops Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 02/19] cache: ax45mp_cache: rename AX45MP-specific identifiers to generic ANDES Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 03/19] cache: ax45mp_cache: rename L2 identifiers to LLC Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 04/19] cache: ax45mp_cache: add shared header for Andes CSRs Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 05/19] cache: ax45mp_cache: standardize macro naming for LLC and L1D registers Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 06/19] cache: ax45mp_cache: rename ax45mp_cache.c to andes_llcache.c Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 07/19] cache: andes_llcache: clean up cache inv/wback functions Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 08/19] cache: andes_llcache: use u32 and fix the cache-line-size error message Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 09/19] cache: andes_llcache: write the full physical address for CCTL Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 10/19] cache: andes_llcache: register cache ops only when the errata needs them Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 11/19] cache: andes_llcache: use the hart ID to index the CCTL registers Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 12/19] dt-bindings: cache: andestech: update schema for generic LLC support Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 13/19] dt-bindings: cache: rename andestech,ax45mp-cache to andestech,llcache Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 14/19] cache: andes_llcache: add generic andestech,llcache compatible Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 15/19] MAINTAINERS: Add maintainer for Andes cache driver Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 16/19] riscv: errata: andes: allow ERRATA_ANDES_CMO on all Andes SoCs Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 17/19] riscv: errata: andes: generalize cache errata for Andes cores Mina Hui-Min Chou
2026-11-13 7:11 ` [PATCH v2 18/19] riscv: errata: andes: limit the IOCP workaround to RZ/Five Mina Hui-Min Chou
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=20261113071143.1446167-1-minachou@andestech.com \
--to=minachou@andestech.com \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=az70021@gmail.com \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=cyyang772@andestech.com \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=magnus.damm@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=randolph@andestech.com \
--cc=robh@kernel.org \
--cc=tim609@andestech.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
all inboxes | Powered by JetHome®