lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 14 Nov 2022 10:02:58 +0100
From:   Miquel Raynal <miquel.raynal@...tlin.com>
To:     Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzk+dt@...nel.org>,
        devicetree@...r.kernel.org
Cc:     Richard Weinberger <richard@....at>,
        Vignesh Raghavendra <vigneshr@...com>,
        Tudor Ambarus <Tudor.Ambarus@...rochip.com>,
        Pratyush Yadav <pratyush@...nel.org>,
        Michael Walle <michael@...le.cc>,
        <linux-mtd@...ts.infradead.org>,
        Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
        <linux-kernel@...r.kernel.org>,
        Miquel Raynal <miquel.raynal@...tlin.com>
Subject: [PATCH v3 00/17]  Improve MTD bindings

Hello,

During a yaml conversion review, Krzysztof opened the discussion about
the links and references made between the different files in the mtd
bindings. I figured out some minimal changes might be needed to properly
reference everything correctly and ensure we constrain as much as
possible the existing bindings. That is what I tried to do here.

The idea is:
* partition.yaml defines one MTD partition
* parsers/*.yaml define partition parsers (mainly compatibles)
* mtd.yaml contains the generic definition of any mtd device (nand,
  spi-nand, spi-nor, nor, sram, etc), in particular, it defines the
  various partition formats (legacy and current) and references
  partition.yaml as well as a list of all the possible parsers within a
  "partitions" node.
* nand-chip.yaml, jedec,spi-nor, mtd-physmap.yaml all describe real
  instances of mtd device, each of them with a different underlying
  technology, they reference mtd.yaml 
* nand-controller.yaml has subnodes which reference nand-chip.yaml.
* Specific NAND controller bindings reference nand-controller.yaml.

I've tested each and every patch with the following command and it
worked fine:
$ make dt_binding_check -j10 DT_CHECKER_FLAG=-m DT_SCHEMA_FILES=mtd/

Cheers,
Miquèl

Changes since v2:
* Added Rob's R-by on almost all the patches but
  "dt-bindings: mtd: nvmem-cells: Fix example"
* Changed the commit message of the patch mentioned above to mention
  that 'ranges' is not declared anywhere besides being a potentially
  valid property, hence dropping it from the example just to avoid
  failing the test, knowing that at some point someone could reintroduce
  it by defining it in one of the core yaml files. 

Miquel Raynal (17):
  dt-bindings: mtd: Clarify all partition subnodes
  dt-bindings: mtd: Remove useless file about partitions
  dt-bindings: mtd: nand-chip: Reference mtd.yaml
  dt-bindings: mtd: nand: Drop common properties already defined in
    generic files
  dt-bindings: mtd: nand: Standardize the child node name
  dt-bindings: mtd: ingenic: Mark partitions in the controller node as
    deprecated
  dt-bindings: mtd: onenand: Mention the expected node name
  dt-bindings: mtd: sunxi-nand: Add an example to validate the bindings
  dt-bindings: mtd: spi-nor: Drop common properties
  dt-bindings: mtd: physmap: Reuse the generic definitions
  dt-bindings: mtd: partitions: Constrain the list of parsers
  dt-bindings: mtd: partitions: Change qcom,smem-part partition type
  dt-bindings: mtd: nvmem-cells: Drop range property from example
  dt-bindings: mtd: nvmem-cells: Inherit from MTD partitions
  dt-bindings: mtd: Argue in favor of keeping additionalProperties set
    to true
  dt-bindings: mtd: Drop object types when referencing other files
  dt-bindings: mtd: Standardize the style in the examples

 .../mtd/allwinner,sun4i-a10-nand.yaml         |  34 +++--
 .../bindings/mtd/arasan,nand-controller.yaml  |   5 +-
 .../bindings/mtd/arm,pl353-nand-r2p1.yaml     |  30 ++---
 .../devicetree/bindings/mtd/atmel-nand.txt    |   6 +-
 .../bindings/mtd/brcm,brcmnand.yaml           |  80 ++++++------
 .../devicetree/bindings/mtd/denali,nand.yaml  |   2 +-
 .../devicetree/bindings/mtd/ingenic,nand.yaml | 116 ++++++++---------
 .../bindings/mtd/intel,lgm-ebunand.yaml       |  48 +++----
 .../bindings/mtd/jedec,spi-nor.yaml           |  14 ---
 .../devicetree/bindings/mtd/lpc32xx-mlc.txt   |   2 +-
 .../devicetree/bindings/mtd/lpc32xx-slc.txt   |   2 +-
 .../bindings/mtd/microchip,mchp48l640.yaml    |  14 +--
 .../devicetree/bindings/mtd/mtd-physmap.yaml  |   7 +-
 .../devicetree/bindings/mtd/mtd.yaml          |  24 +++-
 .../devicetree/bindings/mtd/mtk-nand.txt      |   2 +-
 .../devicetree/bindings/mtd/nand-chip.yaml    |   4 +
 .../bindings/mtd/nand-controller.yaml         |   2 +-
 .../devicetree/bindings/mtd/partition.txt     |  33 -----
 .../partitions/arm,arm-firmware-suite.yaml    |   2 +
 .../partitions/brcm,bcm4908-partitions.yaml   |   2 +
 .../brcm,bcm947xx-cfe-partitions.yaml         |   2 +
 .../mtd/partitions/linksys,ns-partitions.yaml |   2 +
 .../bindings/mtd/partitions/nvmem-cells.yaml  |   4 +-
 .../bindings/mtd/partitions/partition.yaml    |   1 +
 .../bindings/mtd/partitions/partitions.yaml   |  41 ++++++
 .../mtd/partitions/qcom,smem-part.yaml        |  32 ++---
 .../bindings/mtd/partitions/redboot-fis.yaml  |   6 +
 .../devicetree/bindings/mtd/qcom,nandc.yaml   | 117 +++++++++---------
 .../bindings/mtd/st,stm32-fmc2-nand.yaml      |  47 +++----
 .../bindings/mtd/ti,am654-hbmc.yaml           |  36 +++---
 .../bindings/mtd/ti,gpmc-onenand.yaml         |   3 +
 drivers/mtd/parsers/Kconfig                   |   2 +-
 32 files changed, 380 insertions(+), 342 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/partition.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/partitions/partitions.yaml

-- 
2.34.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ