[PATCH v6 7/8] dt-bindings: riscv: Add binding for CBQRI controllers
Drew Fustini <[email protected]> Wed, 29 Jul 2026 18:11:34 -0700
| Newsgroups | dev.linux.lists.linux-rt-devel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Document the device tree binding for RISC-V CBQRI capacity and bandwidth controllers. Each controller is named by a device-specific compatible followed by the generic compatible. The binding also describes the common riscv,cbqri-rcid and riscv,cbqri-mcid properties, and the optional riscv,cbqri-cache phandle that links a capacity controller to the cache whose capacity it allocates. Assisted-by: Claude:claude-opus-4-8 Reviewed-by: Conor Dooley <[email protected]> Co-developed-by: Adrien Ricciardi <[email protected]> Signed-off-by: Adrien Ricciardi <[email protected]> Signed-off-by: Drew Fustini <[email protected]> --- .../devicetree/bindings/riscv/riscv,cbqri.yaml | 97 ++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 98 insertions(+) diff --git a/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml b/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml new file mode 100644 index 000000000000..62d547a0cb96 --- /dev/null +++ b/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/riscv/riscv,cbqri.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: RISC-V Capacity and Bandwidth QoS Register Interface (CBQRI) controller + +description: | + The RISC-V CBQRI specification defines capacity-controller and + bandwidth-controller register blocks that allocate cache capacity and memory + bandwidth to resource-control IDs (RCIDs) and monitor usage per + monitoring-counter ID (MCID): + https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf + + Allocation and monitoring share one register block, and a controller may + implement either or both. A driver discovers which at runtime from the + capabilities register, so the compatible names only the controller type. It + does not distinguish allocation-only, monitoring-only or combined + controllers, and no property declares monitoring support. + +maintainers: + - Drew Fustini <[email protected]> + +properties: + compatible: + oneOf: + - items: + - enum: + - tenstorrent,ascalon-shared-cache-controller + - const: riscv,cbqri-capacity-controller + - items: + - {} + - const: riscv,cbqri-bandwidth-controller + + reg: + maxItems: 1 + description: + The CBQRI controller register block. + + riscv,cbqri-rcid: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + The maximum number of RCIDs the controller supports. RCIDs are the + resource-control IDs that allocation operations target. + + riscv,cbqri-mcid: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + The maximum number of MCIDs the controller supports. MCIDs are the + monitoring-counter IDs that usage-monitoring operations target. Present + on controllers that implement monitoring. + + riscv,cbqri-cache: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the cache node whose capacity this controller allocates. + Applies to capacity controllers that back a CPU cache. The cache level + and the harts sharing it are taken from that node's cache topology. + +required: + - compatible + - reg + +allOf: + - if: + properties: + compatible: + contains: + const: tenstorrent,ascalon-shared-cache-controller + then: + required: + - riscv,cbqri-rcid + - riscv,cbqri-cache + +additionalProperties: false + +examples: + - | + l2_cache: l2-cache { + compatible = "cache"; + cache-level = <2>; + cache-unified; + cache-size = <0xc00000>; + cache-sets = <512>; + cache-block-size = <64>; + }; + + qos-controller@a21a00c0 { + compatible = "tenstorrent,ascalon-shared-cache-controller", + "riscv,cbqri-capacity-controller"; + reg = <0xa21a00c0 0xf40>; + riscv,cbqri-rcid = <16>; + riscv,cbqri-cache = <&l2_cache>; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index b9bded8d3dd6..7acdab42e9c5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23363,6 +23363,7 @@ M: Drew Fustini <[email protected]> R: yunhui cui <[email protected]> L: [email protected] S: Supported +F: Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml F: arch/riscv/include/asm/qos.h F: arch/riscv/include/asm/resctrl.h F: arch/riscv/kernel/qos.c -- 2.43.0