[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240222193642.GA3713418-robh@kernel.org>
Date: Thu, 22 Feb 2024 13:36:42 -0600
From: Rob Herring <robh@...nel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Cc: Samuel Holland <samuel.holland@...ive.com>,
Will Deacon <will@...nel.org>, Mark Rutland <mark.rutland@....com>,
Eric Lin <eric.lin@...ive.com>, Conor Dooley <conor@...nel.org>,
Palmer Dabbelt <palmer@...belt.com>, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
Paul Walmsley <paul.walmsley@...ive.com>,
linux-riscv@...ts.infradead.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v1 1/6] dt-bindings: cache: Document the
sifive,perfmon-counters property
On Sun, Feb 18, 2024 at 07:35:35PM +0100, Krzysztof Kozlowski wrote:
> On 18/02/2024 16:29, Samuel Holland wrote:
> > Hi Krzysztof,
> >
> > On 2024-02-17 3:00 AM, Krzysztof Kozlowski wrote:
> >> On 16/02/2024 01:08, Samuel Holland wrote:
> >>> The SiFive Composable Cache controller contains an optional PMU with a
> >>> configurable number of event counters. Document a property which
> >>
> >> Configurable in what context? By chip designers or by OS? Why this
> >> cannot be deduced from the compatible?
> >
> > This parameter is configurable by the chip designers.
> >
> > The information certainly can be deduced from the SoC-specific compatible
> > string, but doing so makes the driver only work on that specific list of SoCs.
>
> Usually that's exactly what's expected, so why here usual approach is wrong?
>
> > When provided via a property, the driver can work without changes on any SoC
> > that uses this IP block. (None of the SoCs currently listed in the binding
>
> Sorry, properties are not a work-around for missing compatibles.
>
> > contain a PMU, so there is no backward compatibility concern with adding the new
> > property.)
> >
> > My understanding of the purpose of the SoC-specific compatible string is to
> > handle eventualities (silicon bugs, integration quirks, etc.), not to
> > intentionally limit the driver to a narrow list of hardware.
>
> Depends what is the hardware. For most of licensed blocks, the final
> design is the hardware so equals to its compatible.
While I generally agree, I think a property is fine here for 2 reasons.
This is going to vary on just about every design. That's true for any
PMU. So maybe this shouldn't even be SiFfive specific.
The second is counters available to the OS may not equal the number in
h/w because counters could be reserved for different priviledge levels
(secure, hypervisor, guest, etc.). No idea if Risc-V supports this, but
if not it is a matter of time. That's more likely for a core PMU than an
uncore PMU.
Rob
Powered by blists - more mailing lists