From: Samuel Holland <samuel.holland@sifive.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Eric Lin <eric.lin@sifive.com>, Conor Dooley <conor@kernel.org>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Paul Walmsley <paul.walmsley@sifive.com>,
linux-riscv@lists.infradead.org, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v1 3/6] dt-bindings: cache: Add SiFive Extensible Cache controller
Date: Sun, 18 Feb 2024 09:50:59 -0600 [thread overview]
Message-ID: <3c2f1c61-89b4-4103-ac45-a2a541de215e@sifive.com> (raw)
In-Reply-To: <d655b72e-3094-4b6b-bee8-9677b7c987ce@linaro.org>
Hi Krzysztof,
On 2024-02-17 3:09 AM, Krzysztof Kozlowski wrote:
> On 16/02/2024 01:08, Samuel Holland wrote:
>> From: Eric Lin <eric.lin@sifive.com>
>>
>> Add YAML DT binding documentation for the SiFive Extensible Cache
>> controller. The Extensible Cache controller interleaves cache blocks
>> across a number of heterogeneous independently-programmed slices. Each
>> slice contains an MMIO interface for configuration, cache maintenance,
>> error reporting, and performance monitoring.
>>
>> +allOf:
>> + - $ref: /schemas/cache-controller.yaml#
>> +
>> +select:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - sifive,extensiblecache0
>> +
>> + required:
>> + - compatible
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - const: sifive,extensiblecache0
>> + - const: cache
>> +
>> + "#address-cells": true
>
> const or enum: [1, 2], depending on the addressing you need here.
>
>> + "#size-cells": true
>
> ditto
>
>> + ranges: true
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + cache-block-size:
>> + const: 64
>> +
>> + cache-level: true
>
> 5 is acceptable? I would argue this should be even const.
>
>> + cache-sets: true
>> + cache-size: true
>
> Some constraints on any of these?
Thanks for the feedback. I will add the various constraints in v2, though some
constraints will be somewhat loose as the topology is highly configurable.
>> + cache-unified: true
>> +
>> +patternProperties:
>> + "^cache-controller@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: false
>
> What is this object supposed to represent? Add description.
I will add a description in v2.
This object represents a single slice of the cache. Requests from clients are
interleaved between cache slices depending on the client, the address, etc.
Since there is no strong relationship between client (i.e. CPU) and cache slice,
the next-level-cache property must point to the top-level EC node, not a slice.
>> + properties:
>> + reg:
>> + maxItems: 1
>> +
>> + cache-block-size:
>> + const: 64
>> +
>> + cache-sets: true
>> + cache-size: true
>> + cache-unified: true
>
> cache-level
I will add this in v2. It seemed redundant since the value cannot differ between
slices.
Regards,
Samuel
>> +
>> + sifive,bm-event-counters:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + default: 0
>> + description: Number of bucket monitor registers in this slice
>> +
>> + sifive,cache-ways:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: Number of ways in this slice (independent of cache size)
>> +
>> + sifive,perfmon-counters:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + default: 0
>> + description: Number of PMU counter registers in this slice
>> +
>> + required:
>> + - reg
>> + - cache-block-size
>> + - cache-sets
>> + - cache-size
>> + - cache-unified
>> + - sifive,cache-ways
>> +
>> +required:
>> + - compatible
>> + - ranges
>> + - interrupts
>> + - cache-block-size
>> + - cache-level
>> + - cache-sets
>> + - cache-size
>> + - cache-unified
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + cache-controller@30040000 {
>> + compatible = "sifive,extensiblecache0", "cache";
>> + ranges = <0x30040000 0x30040000 0x10000>;
>> + interrupts = <0x4>;
>
> You use hex as interrupt numbers on your platforms?
>
>> + cache-block-size = <0x40>;
>> + cache-level = <3>;
>> + cache-sets = <0x800>;
>
> Best regards,
> Krzysztof
>
next prev parent reply other threads:[~2024-02-18 15:51 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-16 0:08 [PATCH v1 0/6] SiFive cache controller PMU drivers Samuel Holland
2024-02-16 0:08 ` [PATCH v1 1/6] dt-bindings: cache: Document the sifive,perfmon-counters property Samuel Holland
2024-02-17 9:00 ` Krzysztof Kozlowski
2024-02-18 15:29 ` Samuel Holland
2024-02-18 18:35 ` Krzysztof Kozlowski
2024-02-22 19:36 ` Rob Herring
2024-04-09 15:03 ` Conor Dooley
2024-02-16 0:08 ` [PATCH v1 2/6] drivers/perf: Add SiFive Composable Cache PMU driver Samuel Holland
2024-02-19 11:29 ` Jonathan Cameron
2024-04-11 11:05 ` Robin Murphy
2024-02-16 0:08 ` [PATCH v1 3/6] dt-bindings: cache: Add SiFive Extensible Cache controller Samuel Holland
2024-02-17 9:09 ` Krzysztof Kozlowski
2024-02-18 15:50 ` Samuel Holland [this message]
2024-02-16 0:08 ` [PATCH v1 4/6] drivers/perf: Add SiFive Extensible Cache PMU driver Samuel Holland
2024-02-19 11:40 ` Jonathan Cameron
2024-02-16 0:08 ` [PATCH v1 5/6] dt-bindings: cache: Add SiFive Private L2 Cache controller Samuel Holland
2024-02-17 9:12 ` Krzysztof Kozlowski
2024-02-18 15:33 ` Samuel Holland
2024-02-16 0:08 ` [PATCH v1 6/6] drivers/perf: Add SiFive Private L2 Cache PMU driver Samuel Holland
2024-02-16 10:05 ` [PATCH v1 0/6] SiFive cache controller PMU drivers Conor Dooley
2024-04-09 15:01 ` Conor Dooley
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=3c2f1c61-89b4-4103-ac45-a2a541de215e@sifive.com \
--to=samuel.holland@sifive.com \
--cc=conor@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=eric.lin@sifive.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh+dt@kernel.org \
--cc=will@kernel.org \
/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®