dt-bindings: mtd: convert IBM NDFC binding to YAML
Subsystems (2)
PATCH v2 1/1 dt-bindings: mtd: convert IBM NDFC binding to YAML
The NDFC NAND flash controller was only described in a legacy text file, so dtbs_check reported "failed to match any schema with compatible:
['ibm,ndfc']" for the ndfc nodes of the bluestone, canyonlands, eiger, glacier, sequoia and warp device trees.
Convert the binding to the YAML format so those nodes match the generic nand-controller-legacy schema. Describe the node's reg, ccr and bank-settings properties, along with its "nand" chip node which carries the legacy partition layout.
---
v2: fix reg value
.../devicetree/bindings/mtd/ibm,ndfc.txt | 39 -------- .../devicetree/bindings/mtd/ibm,ndfc.yaml | 89 +++++++++++++++++++ 2 files changed, 89 insertions(+), 39 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.txt create mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
Documentation/devicetree/bindings/mtd/ibm,ndfc.txt deleted +0 -39
@@ -1,39 +0,0 @@ -AMCC NDFC (NanD Flash Controller) - -Required properties: -- compatible : "ibm,ndfc". -- reg : should specify chip select and size used for the chip (0x2000). - -Optional properties: -- ccr : NDFC config and control register value (default 0). -- bank-settings : NDFC bank configuration register value (default 0). - -Notes: -- partition(s) - follows the OF MTD standard for partitions - -Example: - -ndfc@1,0 { - compatible = "ibm,ndfc"; - reg = <0x00000001 0x00000000 0x00002000>; - ccr = <0x00001000>; - bank-settings = <0x80002222>; - #address-cells = <1>; - #size-cells = <1>; - - nand { - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "kernel"; - reg = <0x00000000 0x00200000>; - }; - partition@200000 { - label = "root"; - reg = <0x00200000 0x03E00000>; - }; - }; -}; - -
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +89 -0
89 lines not on this page · raw message
Signature · 1 line
2.55.0
[email protected]
AI reviewThank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [Medium] dt-bindings: mtd: incorrectly anchored regex in patternProperties - [Medium] dt-bindings: mtd…
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] dt-bindings: mtd: incorrectly anchored regex in patternProperties
- [Medium] dt-bindings: mtd: schema validation bypassed for nand node
--
commit 56ea8b4c720a5df58f5f626346eba38c6d9ee900
Author: Rosen Penev <[email protected]>
dt-bindings: mtd: convert IBM NDFC binding to YAML
The NDFC NAND flash controller was only described in a legacy text file, so dtbs_check reported a failure to match any schema with the ibm,ndfc compatible. Convert the binding to the YAML format so those nodes match the generic nand-controller-legacy schema.
Quoted 5 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +0
-0
[ ... ]
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml line 47
Quoted 12 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +12
-0+ nand: + type: object + description: NAND chip attached to the controller. + + properties: + "#address-cells": + const: 1 + "#size-cells": + const: 1 + + patternProperties: + "(^partition)?@[0-9a-f]+$":
^^^^^^^^^^^^^^^^^^^^^^^^^^
[Severity: Medium]
Does this regex incorrectly match any node ending with a unit address?
Because the start anchor is inside an optional group, the unanchored
@[0-9a-f]+$ allows it to match any node name ending in @<hex> (for example, chip@0). This incorrectly applies the deprecated partition schema and its unevaluatedProperties: false constraint to unrelated subnodes, breaking schema validation for any device tree containing a node named <anything>@<hex> under the nand node.
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml line 52
Quoted 5 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +5
-0+ $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node + deprecated: true + unevaluatedProperties: false + + additionalProperties: true
^^^^
[Severity: Medium]
Does setting additionalProperties to true on the nand subnode bypass schema validation?
This explicitly disables strict schema validation for the nand subnode, rendering its contents largely unvalidated. It allows arbitrary, undocumented, or misspelled properties to pass validation silently, which defeats the purpose of the YAML schema conversion for this node.
Should this node use additionalProperties: false or
unevaluatedProperties: false and explicitly define or reference the required standard NAND properties?
Quoted 4 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +4
-0+ +required: + - compatible + - reg
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1