On Mon, Jun 09, 2025 at 09:31:26AM -0500, Ira Weiny wrote: > Dan Williams wrote: > > [ add Ira ] > > > > Drew Fustini wrote: > > > Convert the PMEM device tree binding from text to YAML. This will allow > > > device trees with pmem-region nodes to pass dtbs_check. > > > > > > Acked-by: Conor Dooley <conor.doo...@microchip.com> > > > Acked-by: Oliver O'Halloran <ooh...@gmail.com> > > > Signed-off-by: Drew Fustini <d...@pdp7.com> > > > --- > > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go > > > through the nvdimm tree? > > > > Ira has been handling nvdimm pull requests as of late. Oliver's ack is > > sufficient for me. > > > > Acked-by: Dan Williams <dan.j.willi...@intel.com> > > > > @Ira do you have anything else pending? > > > > I don't. I've never built the device tree make targets to test. > > The docs[1] say to run make dtbs_check but it is failing: > > $ make dtbs_check > make[1]: *** No rule to make target 'dtbs_check'. Stop. > make: *** [Makefile:248: __sub-make] Error 2
I believe this is because the ARCH is set to x86 and I don't believe dtbs_check is valid for that. I work on riscv which does use device tree so I use this command: make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dtbs_check > > > dt_binding_check fails too. > > $ make dt_binding_check > SCHEMA Documentation/devicetree/bindings/processed-schema.json > Traceback (most recent call last): > File "/usr/bin/dt-mk-schema", line 8, in <module> > sys.exit(main()) > ~~~~^^ > File "/usr/lib/python3.13/site-packages/dtschema/mk_schema.py", line 28, in > main > schemas = dtschema.DTValidator(args.schemas).schemas > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 373, > in __init__ > self.make_property_type_cache() > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 460, > in make_property_type_cache > self.props, self.pat_props = get_prop_types(self.schemas) > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 194, > in get_prop_types > del props[r'^[a-z][a-z0-9\-]*$'] > ~~~~~^^^^^^^^^^^^^^^^^^^^^^^ > KeyError: '^[a-z][a-z0-9\\-]*$' > make[2]: *** [Documentation/devicetree/bindings/Makefile:63: > Documentation/devicetree/bindings/processed-schema.json] Error 1 > make[2]: *** Deleting file > 'Documentation/devicetree/bindings/processed-schema.json' > make[1]: *** [/home/iweiny/dev/linux-nvdimm/Makefile:1522: > dt_binding_schemas] Error 2 > make: *** [Makefile:248: __sub-make] Error 2 > > How do I test this? dt_binding_check should work on x86. Maybe you don't have dtschema and yamllint installed? You should be able to install with: pip3 install dtschema yamllint And run the binding check with: make dt_binding_check DT_SCHEMA_FILES=pmem-region.yaml You should see the following output: SCHEMA Documentation/devicetree/bindings/processed-schema.json CHKDT ./Documentation/devicetree/bindings LINT ./Documentation/devicetree/bindings DTEX Documentation/devicetree/bindings/pmem/pmem-region.example.dts DTC [C] Documentation/devicetree/bindings/pmem/pmem-region.example.dtb Thanks, Drew