[Openpvrsgx-devgroup] YAML bindings...

H. Nikolaus Schaller hns at goldelico.com
Fri Nov 15 09:00:27 CET 2019


> Am 14.11.2019 um 17:02 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> Hi Adam,
> 
>> Am 11.11.2019 um 16:31 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>> Hi Adam,
>> 
>>> Am 11.11.2019 um 14:00 schrieb Adam Ford <aford173 at gmail.com>:
>> 
>> Rob Herring has sent me some valuable pointers to dependencies.
> 
> Mainly: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/writing-schema.rst
> 
>> The first thing taken for granted is that "pip3" is already
>> installed... So there are even more dependencies than people
>> think of.
>> 
>> Anyways, I was able to install it through macports.
>> 
>> And then he mentions a libyaml. This seems to be a Python lib
>> and I initially thought from all messages and descriptions that I
>> need a C libyaml and wondered why it still is not found after
>> installing one.
> 
> Ok, I finally succeeded to install the scripts.
> 
> Well, not mentioned as a requirement was that I need
> python-3.7 (or similar release) and a py37-pip packages (e.g. from MacPorts).
> 
> And then I need to "sudo pip3 install ruamel.yaml".
> Finally the mentioned "sudo pip3 install git+https://github.com/devicetree-org/dt-schema.git@master"
> 
> So now I have more success with original v5.4-rc7 source tree than ever:
> 
> make V=2 omap2plus_defconfig dt_binding_check dtbs_check
> #
> # configuration written to .config
> #
> scripts/kconfig/conf  --syncconfig Kconfig
>  SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml - due to: Documentation/devicetree/bindings/arm/fsl.yaml Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml Documentation/devicetree/bindings/vendor-prefixes.yaml
>  CHKDT   Documentation/devicetree/bindings/arm/fsl.yaml - due to: Documentation/devicetree/bindings/arm/fsl.yaml
>  CHKDT   Documentation/devicetree/bindings/i2c/allwinner,sun6i-a31-p2wi.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/i2c/i2c-gpio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/accel/adi,adxl345.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/allwinner,sun8i-a33-ths.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/chemical/sensirion,sps30.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/frequency/adf4371.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/imu/adi,adis16460.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/light/isl29018.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/light/noa1305.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/light/stk33xx.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/light/tsl2583.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/light/tsl2772.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/potentiometer/max5432.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/pressure/bmp085.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/iio/proximity/devantech-srf04.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/input/gpio-vibrator.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-a10-ic.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mailbox/amlogic,meson-gxbb-mhu.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/media/rc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mfd/allwinner,sun4i-a10-ts.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/misc/intel,ixp4xx-ahb-queue-manager.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mmc/allwinner,sun4i-a10-mmc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mmc/mmc-controller.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/mtd/nand-controller.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/adi,adin.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/allwinner,sun4i-a10-mdio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/allwinner,sun7i-a20-gmac.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/allwinner,sun8i-a83t-emac.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/amlogic,meson-dwmac.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/aspeed,ast2600-mdio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/ethernet-controller.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/ethernet-phy.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/mdio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/net/snps,dwmac.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/nvmem/allwinner,sun4i-a10-sid.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/nvmem/nvmem-consumer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/nvmem/nvmem.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/phy/allwinner,sun6i-a31-mipi-dphy.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/phy/amlogic,meson-g12a-usb2-phy.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/phy/lantiq,vrx200-pcie-phy.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/pinctrl/aspeed,ast2400-pinctrl.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/regulator/fixed-regulator.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/regulator/gpio-regulator.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/regulator/max8660.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/regulator/regulator.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/reset/amlogic,meson-reset.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/riscv/cpus.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/riscv/sifive.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/rng/amlogic,meson-rng.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/rtc/allwinner,sun4i-a10-rtc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/rtc/rtc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/rtc/trivial-rtc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/serial/pl011.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/serial/sifive-serial.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/sound/allwinner,sun50i-a64-codec-analog.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/soundwire/soundwire-controller.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/allwinner,sun4i-a10-spi.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/allwinner,sun6i-a31-spi.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/spi-controller.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/spi-gpio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/spi/spi-pl022.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/allwinner,sun4i-a10-timer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/arm,arch_timer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/arm,global_timer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/trivial-devices.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/usb/generic-ehci.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/usb/generic-ohci.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/usb/usb-hcd.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/vendor-prefixes.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/watchdog/amlogic,meson-gxbb-wdt.yaml - due to target missing
>  CHKDT   Documentation/devicetree/bindings/watchdog/watchdog.yaml - due to target missing
>  DTC     Documentation/devicetree/bindings/arm/actions.example.dt.yaml - due to target missing
> FATAL ERROR: Unknown output format "yaml"
> make[3]: *** [Documentation/devicetree/bindings/arm/actions.example.dt.yaml] Error 1
> make[3]: *** Deleting file `Documentation/devicetree/bindings/arm/actions.example.dt.yaml'
> make[2]: *** [dt_binding_check] Error 2
> make[1]: *** [__build_one_by_one] Error 2
> make: *** [sub-make] Error 2
> 
> After this I can find a lot of example.dts files in Documentation/devicetree/bindings
> 
> Now it seems as if the DTC needs some help to create YAML output.
> 
> There is indeed a tiny hint in writing-schema.rst:
> 
> "dtc must also be built with YAML output support enabled. This requires that
> libyaml and its headers be installed on the host system."
> 
> IMHO far too many new dependencies...

I have also tried my draft SGX.yaml schema:

/Volumes/CaseSensitive/master/Documentation/devicetree/bindings/gpu/img,pvrsgx.yaml: ignoring, error parsing file
warning: no schema found in file: Documentation/devicetree/bindings/gpu/img,pvrsgx.yaml

Well, not a very helpful error message...

But https://codebeautify.org/yaml-validator did at least report the code line where the first
error is - we should not use quotes for the compatible items - and it was quickly modified
right in the web form to pass the validation test.

Unfortunately, the kernel doesn't accept the result:

  SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml - due to: Documentation/devicetree/bindings/gpu/img,pvrsgx.yaml
/Volumes/CaseSensitive/master/Documentation/devicetree/bindings/gpu/img,pvrsgx.yaml: ignoring, error parsing file
warning: no schema found in file: Documentation/devicetree/bindings/gpu/img,pvrsgx.yaml

Looks as if the Web form has damaged indentation and the invisible number of spaces became wrong
by copy&paste (I know why I consider this concept to denote hierarchy as one of the biggest failures,
even if it is popular :)

After fixing that it still fails while copy and paste to e.g. https://jsonformatter.org/yaml-validator reports "Valid".

To stop complaining: does anyone know a really helpful tool to verify YAML?

BR,
Nikolaus



More information about the openpvrsgx-devgroup mailing list