devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: "Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	devicetree@vger.kernel.org, "Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH] dt-bindings: mtd: convert "fixed-partitions" to the json-schema
Date: Thu, 10 Dec 2020 08:50:47 -0600	[thread overview]
Message-ID: <CAL_JsqLZv7RCW80mjq7RX9+JhCMBSOL6HC3fmgDD0gmLtKtHpw@mail.gmail.com> (raw)
In-Reply-To: <daa204cc-c736-8eab-7740-00c4ba457bcb@gmail.com>

On Thu, Dec 10, 2020 at 7:56 AM Rafał Miłecki <zajec5@gmail.com> wrote:
>
> On 10.12.2020 03:48, Rob Herring wrote:
> > On Wed, Dec 09, 2020 at 02:02:35PM +0100, Rafał Miłecki wrote:
> >> From: Rafał Miłecki <rafal@milecki.pl>
> >>
> >> This standardizes its documentation, allows validating with Makefile
> >> checks and helps writing DTS files.
> >>
> >> Noticeable changes:
> >> 1. Dropped "Partitions can be represented by sub-nodes of a flash
> >>     device." as we also support subpartitions (don't have to be part of
> >>     flash device node)
> >> 2. Dropped "to Linux" as bindings are meant to be os agnostic.
> >>
> >> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> >> ---
> >>   .../devicetree/bindings/mtd/partition.txt     | 131 +---------------
> >>   .../mtd/partitions/fixed-partitions.yaml      | 146 ++++++++++++++++++
> >>   2 files changed, 148 insertions(+), 129 deletions(-)
> >>   create mode 100644 Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml

> >> diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> >> new file mode 100644
> >> index 000000000000..c5e509e08f31
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> >> @@ -0,0 +1,146 @@
> >> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/mtd/partitions/fixed-partitions.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Fixed partitions
> >> +
> >> +description: |
> >> +  This binding can be used on platforms which have strong conventions about
> >> +  which portions of a flash are used for what purposes, but which don't use an
> >> +  on-flash partition table such as RedBoot.
> >> +
> >> +  The partition table should be a node named "partitions". Partitions are then
> >> +  defined as subnodes.
> >> +
> >> +maintainers:
> >> +  - Rafał Miłecki <rafal@milecki.pl>
> >> +
> >> +properties:
> >> +  compatible:
> >> +    const: fixed-partitions
> >> +
> >> +patternProperties:
> >> +  "^.*@[0-9a-f]+$":
> >
> > You can drop '^.*'.
> >
> > This needs to recurse to nested nodes.
> >
> > I think here you can do just:
> >
> > $ref: #/
> >
> > And drop 'compatible' as required. It's redundant anyways because the
> > schema will only be applied if compatible matches.
>
> I managed to implement recursive schema but then I run dt_binding_check and
> realized it may be not what we really want.
>
> The error I got was:
> Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.example.dt.yaml: partitions: firmware@100000:compatible:0: 'fixed-partitions' was expected
>          From schema: Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
>
> and was caused by the following example:
> partitions {
>         compatible = "fixed-partitions";
>         #address-cells = <1>;
>         #size-cells = <1>;
>
>         (...)
>
>         firmware@100000 {
>                 label = "firmware";
>                 reg = <0x100000 0xe00000>;
>                 compatible = "brcm,trx";
>         };
>
>         (...)
> }
>
> As you can see a single partition can use any available parser, so we can't
> require only "fixed-partitions" to be nested in the "fixed-partitions".
>
> In this situation I think this commit may be OK after all if I just fix regex
> and required (drop "compatible").
>
> What do you think?

You're still going to have the above error with the schema below.

I completely missed that the nested example has "fixed-partitions"
compatible in it. So what you had is actually fine in that regard. Let
me start over reviewing.

> FWIW:
>
> properties:
>    compatible:
>      const: fixed-partitions
>
> patternProperties:
>    "@[0-9a-f]+$":
>      allOf:
>        - $ref: "#"
>        - properties:
>            reg:
>              maxItems: 1
>              description: partition's offset and size within the flash
>
>            label:
>              description: The label / name for this partition. If omitted, the label
>                is taken from the node name (excluding the unit address).
>
>            read-only:
>              description: This parameter, if present, is a hint that this partition
>                should only be mounted read-only. This is usually used for flash
>                partitions containing early-boot firmware images or data which should
>                not be clobbered.
>              type: boolean
>
>            lock:
>              description: Do not unlock the partition at initialization time (not
>                supported on all devices)
>              type: boolean
>
>            slc-mode:
>              description: This parameter, if present, allows one to emulate SLC mode
>                on a partition attached to an MLC NAND thus making this partition
>                immune to paired-pages corruptions
>              type: boolean
>
>          required:
>            - reg

  reply	other threads:[~2020-12-10 14:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09 13:02 [PATCH] dt-bindings: mtd: convert "fixed-partitions" to the json-schema Rafał Miłecki
2020-12-10  2:48 ` Rob Herring
2020-12-10 13:56   ` Rafał Miłecki
2020-12-10 14:50     ` Rob Herring [this message]
2020-12-10 14:55 ` Rob Herring

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=CAL_JsqLZv7RCW80mjq7RX9+JhCMBSOL6HC3fmgDD0gmLtKtHpw@mail.gmail.com \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=rafal@milecki.pl \
    --cc=richard@nod.at \
    --cc=vigneshr@ti.com \
    --cc=zajec5@gmail.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).