From: Miquel Raynal <miquel.raynal@bootlin.com> To: Rob Herring <robh@kernel.org> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>, devicetree@vger.kernel.org, Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, linux-kernel@vger.kernel.org, Robert Marko <robert.marko@sartura.hr>, Luka Perkov <luka.perkov@sartura.hr>, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, Michael Walle <michael@walle.cc>, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski <brgl@bgdev.pl>, Christian Eggers <ceggers@arri.de>, Cory Tusar <cory.tusar@pid1solutions.com> Subject: Re: [PATCH v3 6/6] dt-bindings: nvmem: add YAML schema for the ONIE tlv layout Date: Thu, 10 Nov 2022 09:50:34 +0100 [thread overview] Message-ID: <20221110095034.7a80163a@xps-13> (raw) In-Reply-To: <20221110040055.GA3436769-robh@kernel.org> Hi Rob, robh@kernel.org wrote on Wed, 9 Nov 2022 22:00:55 -0600: > On Fri, Nov 04, 2022 at 05:38:33PM +0100, Miquel Raynal wrote: > > Add a schema for the ONIE tlv NVMEM layout that can be found on any ONIE > > compatible networking device. > > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > --- > > .../bindings/nvmem/layouts/nvmem-layout.yaml | 1 + > > .../nvmem/layouts/onie,tlv-layout.yaml | 115 ++++++++++++++++++ > > 2 files changed, 116 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > index f64ea2fa362d..8512ee538c4c 100644 > > --- a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > @@ -19,6 +19,7 @@ description: | > > > > oneOf: > > - $ref: kontron,sl28-vpd.yaml > > + - $ref: onie,tlv-layout.yaml > > > > properties: > > compatible: true > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > new file mode 100644 > > index 000000000000..1d91277324ac > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > @@ -0,0 +1,115 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: NVMEM layout of the ONIE tlv table > > + > > +maintainers: > > + - Miquel Raynal <miquel.raynal@bootlin.com> > > + > > +description: > > + Modern networking hardware implementing the Open Compute Project ONIE > > + infrastructure shall provide a non-volatile memory with a table whose the > > + content is well specified and gives many information about the manufacturer > > + (name, country of manufacture, etc) as well as device caracteristics (serial > > + number, hardware version, mac addresses, etc). The underlaying device type > > + (flash, EEPROM,...) is not specified. The exact location of each value is also > > + dynamic and should be discovered at run time because it depends on the > > + parameters the manufacturer decided to embed. > > + > > +properties: > > + compatible: > > + const: onie,tlv-layout > > + > > + product-name: true > > This is a node? If so, you need: > > type: object > additionalProperties: false I thought referencing a schema under a property would be enough? Indeed in nvmem.yaml we create the property nvmem-layout and make it reference nvmem-layout.yaml. Then, in nvmem-layout.yaml: oneOf: - $ref: kontron,sl28-vpd.yaml - $ref: onie,tlv-layout.yaml we reference the different layouts that may apply (very much like what you proposed to list the mtd partition parsers, if I got it right). Isn't it enough? Then if you look below there is an "additionalProperties: false" defined. > > + > > + part-number: true > > + [...] > > + service-tag: true > > + > > + vendor-extension: true > > + > > +required: > > + - compatible > > + > > +additionalProperties: false (here) > > + > > +examples: > > + - | > > + spi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + eeprom@56 { > > + compatible = "atmel,24c64"; > > + read-only; > > + reg = <0x56>; > > + > > + nvmem-layout { > > + compatible = "onie,tlv-layout"; > > + > > + serial-number { > > + }; > > + }; > > + }; > > + }; > > + > > + - | > > + spi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + flash@0 { > > + compatible = "m25p80", "jedec,spi-nor"; > > + reg = <0>; > > + > > + otp { > > + compatible = "user-otp"; > > + > > + nvmem-layout { > > + compatible = "onie,tlv-layout"; > > + > > + mac-address { > > + #nvmem-cell-cells = <1>; > > + }; > > + }; > > + }; > > + }; > > + }; > > +... > > -- > > 2.34.1 > > > > Thanks, Miquèl
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com> To: Rob Herring <robh@kernel.org> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>, devicetree@vger.kernel.org, Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, linux-kernel@vger.kernel.org, Robert Marko <robert.marko@sartura.hr>, Luka Perkov <luka.perkov@sartura.hr>, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, Michael Walle <michael@walle.cc>, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski <brgl@bgdev.pl>, Christian Eggers <ceggers@arri.de>, Cory Tusar <cory.tusar@pid1solutions.com> Subject: Re: [PATCH v3 6/6] dt-bindings: nvmem: add YAML schema for the ONIE tlv layout Date: Thu, 10 Nov 2022 09:50:34 +0100 [thread overview] Message-ID: <20221110095034.7a80163a@xps-13> (raw) In-Reply-To: <20221110040055.GA3436769-robh@kernel.org> Hi Rob, robh@kernel.org wrote on Wed, 9 Nov 2022 22:00:55 -0600: > On Fri, Nov 04, 2022 at 05:38:33PM +0100, Miquel Raynal wrote: > > Add a schema for the ONIE tlv NVMEM layout that can be found on any ONIE > > compatible networking device. > > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > --- > > .../bindings/nvmem/layouts/nvmem-layout.yaml | 1 + > > .../nvmem/layouts/onie,tlv-layout.yaml | 115 ++++++++++++++++++ > > 2 files changed, 116 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > index f64ea2fa362d..8512ee538c4c 100644 > > --- a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml > > @@ -19,6 +19,7 @@ description: | > > > > oneOf: > > - $ref: kontron,sl28-vpd.yaml > > + - $ref: onie,tlv-layout.yaml > > > > properties: > > compatible: true > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > new file mode 100644 > > index 000000000000..1d91277324ac > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml > > @@ -0,0 +1,115 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: NVMEM layout of the ONIE tlv table > > + > > +maintainers: > > + - Miquel Raynal <miquel.raynal@bootlin.com> > > + > > +description: > > + Modern networking hardware implementing the Open Compute Project ONIE > > + infrastructure shall provide a non-volatile memory with a table whose the > > + content is well specified and gives many information about the manufacturer > > + (name, country of manufacture, etc) as well as device caracteristics (serial > > + number, hardware version, mac addresses, etc). The underlaying device type > > + (flash, EEPROM,...) is not specified. The exact location of each value is also > > + dynamic and should be discovered at run time because it depends on the > > + parameters the manufacturer decided to embed. > > + > > +properties: > > + compatible: > > + const: onie,tlv-layout > > + > > + product-name: true > > This is a node? If so, you need: > > type: object > additionalProperties: false I thought referencing a schema under a property would be enough? Indeed in nvmem.yaml we create the property nvmem-layout and make it reference nvmem-layout.yaml. Then, in nvmem-layout.yaml: oneOf: - $ref: kontron,sl28-vpd.yaml - $ref: onie,tlv-layout.yaml we reference the different layouts that may apply (very much like what you proposed to list the mtd partition parsers, if I got it right). Isn't it enough? Then if you look below there is an "additionalProperties: false" defined. > > + > > + part-number: true > > + [...] > > + service-tag: true > > + > > + vendor-extension: true > > + > > +required: > > + - compatible > > + > > +additionalProperties: false (here) > > + > > +examples: > > + - | > > + spi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + eeprom@56 { > > + compatible = "atmel,24c64"; > > + read-only; > > + reg = <0x56>; > > + > > + nvmem-layout { > > + compatible = "onie,tlv-layout"; > > + > > + serial-number { > > + }; > > + }; > > + }; > > + }; > > + > > + - | > > + spi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + flash@0 { > > + compatible = "m25p80", "jedec,spi-nor"; > > + reg = <0>; > > + > > + otp { > > + compatible = "user-otp"; > > + > > + nvmem-layout { > > + compatible = "onie,tlv-layout"; > > + > > + mac-address { > > + #nvmem-cell-cells = <1>; > > + }; > > + }; > > + }; > > + }; > > + }; > > +... > > -- > > 2.34.1 > > > > Thanks, Miquèl _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-11-10 8:50 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-04 16:38 [PATCH v3 0/6] Bindings for NVMEM layouts Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-04 16:38 ` [PATCH v3 1/6] dt-bindings: nvmem: Fix example Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-10 3:51 ` Rob Herring 2022-11-10 3:51 ` Rob Herring 2022-11-11 16:47 ` Srinivas Kandagatla 2022-11-11 16:47 ` Srinivas Kandagatla 2022-11-04 16:38 ` [PATCH v3 2/6] dt-bindings: nvmem: Introduce the nvmem-layout container Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-04 16:38 ` [PATCH v3 3/6] dt-bindings: eeprom: Inherit from nvmem.yaml Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-04 16:38 ` [PATCH v3 4/6] dt-bindings: nvmem: add YAML schema for the sl28 vpd layout Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-10 13:49 ` Rob Herring 2022-11-10 13:49 ` Rob Herring 2022-11-10 17:38 ` Miquel Raynal 2022-11-10 17:38 ` Miquel Raynal 2022-11-10 19:31 ` Rob Herring 2022-11-10 19:31 ` Rob Herring 2022-11-04 16:38 ` [PATCH v3 5/6] dt-bindings: vendor-prefixes: Add ONIE Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-04 16:38 ` [PATCH v3 6/6] dt-bindings: nvmem: add YAML schema for the ONIE tlv layout Miquel Raynal 2022-11-04 16:38 ` Miquel Raynal 2022-11-10 4:00 ` Rob Herring 2022-11-10 4:00 ` Rob Herring 2022-11-10 8:50 ` Miquel Raynal [this message] 2022-11-10 8:50 ` Miquel Raynal 2022-11-10 14:05 ` Rob Herring 2022-11-10 14:05 ` Rob Herring 2022-11-10 17:43 ` Miquel Raynal 2022-11-10 17:43 ` Miquel Raynal 2022-11-10 19:47 ` Rob Herring 2022-11-10 19:47 ` 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=20221110095034.7a80163a@xps-13 \ --to=miquel.raynal@bootlin.com \ --cc=brgl@bgdev.pl \ --cc=ceggers@arri.de \ --cc=cory.tusar@pid1solutions.com \ --cc=devicetree@vger.kernel.org \ --cc=krzk+dt@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=luka.perkov@sartura.hr \ --cc=michael@walle.cc \ --cc=robert.marko@sartura.hr \ --cc=robh@kernel.org \ --cc=srinivas.kandagatla@linaro.org \ --cc=thomas.petazzoni@bootlin.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.