Hi Michal, On Wed, 20 Dec 2023 at 16:14, Michal Simek <michal.si...@amd.com> wrote: > > Hi Sumit, > > On 12/14/23 14:50, Sumit Garg wrote: > > Prerquisite > > ----------- > > > > This patch series requires devicetree-rebasing git repo to be added as a > > subtree to the main U-boot repo via: > > > > $ git subtree add --prefix devicetree-rebasing \ > > > > git://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git > > \ > > v6.6-dts --squash > > > > Background > > ---------- > > > > This effort started while I was reviewing patch series corresponding to > > Qcom platforms [1] which was about to import modified devicetree source > > files from Linux kernel. I suppose keeping devicetree files sync with > > Linux kernel without any DT bindings schema validation has been a pain > > for U-boot SoC/platform maintainers. There has been past discussions > > about a single DT repo but that hasn't come up and Linux kernel remained > > the place where DT source files as well as bindings are placed and > > maintained. > > > > However, Linux kernel DT maintainers proposed [2] for U-boot to rather > > use devicetree-rebasing repo [3] which is a forked copy from Linux > > kernel for DT source files as well as bindings. It is tagged at every > > Linux kernel major release or intermideate release candidates. So here I > > have tried to reuse that to bring DT bingings compliance as well as a > > standard way to maintain a regular sync of DT source files with Linux > > kernel. > > > > In order to maintain devicetree files sync, U-boot will maintains a Git > > subtree for devicetee-rebasing repo as `devicetee-rebasing/` sub-directory. > > It will be regularly updated with every new kernel major release via > > subtree pull as follows:: > > > > $ git subtree pull --prefix devicetree-rebasing \ > > > > git://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git > > \ > > <release-tag> --squash > > > > The RFC/prototype for this series has been discussed with Linux DT > > maintainers as well as U-boot maintainers here [4]. Now we would like to > > reach out to wider U-boot community to seek feedback. > > > > [1] > > https://lore.kernel.org/all/CAFA6WYMLUD9cnkr=r0uur+1uetmkkjm2zddmjtxb3nmrlk+...@mail.gmail.com/ > > [2] > > https://lore.kernel.org/all/cal_jsqkejv2tsgmt+0zio7_qbbfhtycbgnhjhypkdfzfo9j...@mail.gmail.com/ > > [3] > > https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/ > > [4] https://github.com/u-boot/u-boot/pull/451 > > > > Changes > > ------- > > > > Traditionally, U-boot placed copies of devicetree source files from Linux > > kernel into `arch/<arch>/dts/<name>.dts`, which can be selected via: > > > > CONFIG_DEFAULT_DEVICE_TREE "<name>" > > > > SoC/board maintainers are encouraged to migrate to using mirrored copies > > from `devicetree-rebasing/` into `dts/arch/<arch>/<vendor>` via: > > > > CONFIG_OF_UPSTREAM=y > > CONFIG_DEFAULT_DEVICE_TREE "<vendor>/<name>" > > > > An example have been shown for Amlogic meson-gxbb SoC and corresponding > > derived boards via patch #7 and #8. > > > > Devicetree bindings schema checks > > --------------------------------- > > > > With devicetee-rebasing Git subtree, the devicetree bindings are also > > regularly synced with Linux kernel as `devicetree-rebasing/Bindings/` > > sub-directory. This allows U-boot to run devicetree bindings schema checks > > which will bring compliance to U-boot core/drivers regarding usage of > > devicetree. > > > > Dependencies > > ------------ > > > > The DT schema project must be installed in order to validate the DT schema > > binding documents and validate DTS files using the DT schema. The DT schema > > project can be installed with pip: > > > > $ pip3 install dtschema > > > > Note that 'dtschema' installation requires 'swig' and Python development > > files installed first. On Debian/Ubuntu systems: > > > > $ apt install swig python3-dev > > > > Several executables (dt-doc-validate, dt-mk-schema, dt-validate) will be > > installed. Ensure they are in your PATH (~/.local/bin by default). > > > > Recommended is also to install yamllint (used by dtschema when present). > > > > Running checks > > -------------- > > > > In order to perform validation of DTB files, use the ``dtbs_check`` target: > > > > $ make dtbs_check > > > > It is also possible to run checks with a subset of matching schema files by > > setting the ``DT_SCHEMA_FILES`` variable to 1 or more specific schema files > > or patterns (partial match of a fixed string). Each file or pattern should > > be separated by ':'. > > > > $ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml:rtc.yaml > > $ make dtbs_check DT_SCHEMA_FILES=/gpio/ > > $ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml > > Do you also plan to extend this to cover dt overlay + dt base generation and > check it against DT schema.
I suppose here you are referring to DT schema checks for *.dtso -> *.dtbo generation. I don't see corresponding checks enabled in Linux kernel [1]. Probably Rob can share plans over there. U-Boot tries to follow Linux kernel kbuild framework. However, if needed we can add checks for *.dtbo generation too as a follow up patch. [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/scripts/Makefile.lib#n421 -Sumit > > Thanks, > Michal >