linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@sifive.com>
To: atish.patra@wdc.com
Cc: Paul Walmsley <paul.walmsley@sifive.com>,
	robh+dt@kernel.org, devicetree@vger.kernel.org,
	mark.rutland@arm.com, paul@pwsan.com,
	Megan Wachs <megan@sifive.com>,
	linux-kernel@vger.kernel.org, Wesley Terpstra <wesley@sifive.com>,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH] dt-bindings: sifive: describe sifive-blocks versioning
Date: Mon, 26 Nov 2018 11:02:50 -0800 (PST)	[thread overview]
Message-ID: <mhng-9dfdf5d7-fe41-4418-ba3d-d03ed9b2265c@palmer-si-x1c4> (raw)
In-Reply-To: <eda63b4a-4371-7d34-38a0-d7136dfc417f@wdc.com>

On Wed, 21 Nov 2018 17:33:02 PST (-0800), atish.patra@wdc.com wrote:
> On 11/21/18 5:07 PM, Paul Walmsley wrote:
>>
>> For IP blocks that are generated from the public, open-source
>> sifive-blocks repository, describe the version numbering policy
>> that its maintainers intend to use, upon request from Rob
>> Herring <robh@kernel.org>.
>>
>> Cc: Rob Herring <robh+dt@kernel.org>
>> Cc: Palmer Dabbelt <palmer@sifive.com>
>> Cc: Megan Wachs <megan@sifive.com>
>> Cc: Wesley Terpstra <wesley@sifive.com>
>> Cc: Mark Rutland <mark.rutland@arm.com>
>> Cc: devicetree@vger.kernel.org
>> Cc: linux-riscv@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
>> Signed-off-by: Paul Walmsley <paul@pwsan.com>
>> ---
>>
>> Hi Rob, please let me know if this document works with your
>> requirements, or if some changes are needed.  - Paul
>>
>>   .../sifive/sifive-blocks-ip-versioning.txt    | 38 +++++++++++++++++++
>>   1 file changed, 38 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/sifive/sifive-blocks-ip-versioning.txt
>>
>> diff --git a/Documentation/devicetree/bindings/sifive/sifive-blocks-ip-versioning.txt b/Documentation/devicetree/bindings/sifive/sifive-blocks-ip-versioning.txt
>> new file mode 100644
>> index 000000000000..b899e5c6e00c
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sifive/sifive-blocks-ip-versioning.txt
>
> It should be be under
> Documentation/devicetree/bindings/riscv/sifive/sifive-blocks-ip-versioning.txt
> ?
>
>> @@ -0,0 +1,38 @@
>> +DT compatible string versioning for SiFive open-source IP blocks
>> +
>> +This document describes the version specification for DT "compatible"
>> +strings for open-source SiFive IP blocks.  HDL for these IP blocks
>> +can be found in this public repository:
>> +
>> +https://github.com/sifive/sifive-blocks
>> +
>> +IP block-specific DT compatible strings are contained within the HDL,
>> +in the form "sifive,<ip-block-name><integer version number>".
>> +
>> +An example is "sifive,uart0" from:
>> +
>> +https://github.com/sifive/sifive-blocks/blob/master/src/main/scala/devices/uart/UART.scala#L43
>> +
>> +Until these IP blocks (or IP integration) support version
>> +autodiscovery, the maintainers of these IP blocks intend to increment
>
> /s/autodiscovery/auto discovery
>
>> +the suffixed number in the compatible string whenever the software
>> +interface to these IP blocks changes, or when the functionality of the
>> +underlying IP blocks changes in a way that software should be aware of.
>> +
>> +Driver developers can use compatible string "match" values such as
>> +"sifive,uart0" to indicate that their driver is compatible with the
>> +register interface and functionality associated with the relevant
>> +upstream sifive-blocks commits.  It is expected that most drivers will
>> +match on these IP block-specific compatible strings.
>> +
>> +DT data authors, when writing data for a particular SoC, should
>> +continue to specify an SoC-specific compatible string value, such as
>> +"sifive,fu540-c000-uart".  This way, if SoC-specific
>> +integration-specific bug fixes or workarounds are needed, the kernel
>> +or other system software can match on this string to apply them.  The
>> +IP block-specific compatible string (such as "sifive,uart0") should
>> +then be specified as a subsequent value.
>> +
>> +An example of this style:
>> +
>> +    compatible = "sifive,fu540-c000-uart", "sifive,uart0";
>>
>
> Just for the sake of completion, should this document also specify what
> should be the style of any possible closed IP as well?

Let's restrict ourselves to the open-source IP for now, as versioning the 
closed source stuff is a bit of a different problem -- when everyone can see 
the source it's easier because we can all agree on exactly what a version 
string means.

For the closed source stuff we currently have just the chip-specific strings, 
as all that stuff is very chip specific (all sorts of special clocking 
constraints).  Essentially you'll have to just trust us as to what's compatible 
with what -- FWIW, since this is mostly driven by the chip process we really 
just have to trust the hardware designers, so we're kind of in the same boat 
(though we can at least peek under the covers if we want to).  Any versioning 
scheme here is doubly complicated because it's closed source and it's chip 
specific, so trying to match this up with the open source stuff seems like too 
much work.

For now we can at least get everyone on the same page as to how we're 
versioning the open-source blocks, which is more important because anyone can 
build a chip with those so we need a well defined scheme.

  reply	other threads:[~2018-11-26 19:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22  1:06 [PATCH] dt-bindings: sifive: describe sifive-blocks versioning Paul Walmsley
2018-11-22  1:33 ` Atish Patra
2018-11-26 19:02   ` Palmer Dabbelt [this message]
2018-12-06  2:30   ` Paul Walmsley
2018-11-26 19:02 ` Palmer Dabbelt
2018-12-07  0:01 ` Rob Herring
2018-12-07  0:45   ` Paul Walmsley
2018-12-07 13:55     ` Rob Herring
2018-12-07 14:31       ` Paul Walmsley
2018-12-07 15:19         ` Rob Herring
2019-05-13 20:47 ` Rob Herring
2019-05-13 21:07   ` Paul Walmsley

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=mhng-9dfdf5d7-fe41-4418-ba3d-d03ed9b2265c@palmer-si-x1c4 \
    --to=palmer@sifive.com \
    --cc=atish.patra@wdc.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=megan@sifive.com \
    --cc=paul.walmsley@sifive.com \
    --cc=paul@pwsan.com \
    --cc=robh+dt@kernel.org \
    --cc=wesley@sifive.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;
as well as URLs for NNTP newsgroup(s).