[PATCH v4 00/11] An effort to bring DT bindings compliance within U-Boot

Marek Vasut marex at denx.de
Sun Jan 21 15:33:17 CET 2024

On 1/10/24 11:35, Sumit Garg wrote:
> Changes in v4:
> --------------
> - Switched subtree to be imported as dts/upstream sub-directory rather
>    than devicetree-rebasing sub-directory to better suite U-Boot
>    directory structure.
> - Since we now have v6.7-dts tag available now, so switch subtree to
>    that from its beginning.
> - Patch #2: Incorporate build fix to adjust Bindings Makefile rules to
>    old U-Boot Kbuild infrastructure.
> - Patch #3: Incorporate fix to resolve rk3399 migration issue reported
>    by Simon.
> - Patch #4: New patch to reuse upstream DT includes by U-Boot as per
>    Brian's use-case for TI K3 SoCs.
> - Patch #5: Added a note to OF_UPSTREAM Kconfig option.
> - Patch #6: New patch to add script dts/update-dts-subtree.sh as per
>    Rob's comments.
> - Patch #7: Separate patch to align documentation to use Kconfig symbols
>    instead.
> - Patch #8: Clarify subtree uprev schedule as a separate documentation
>    section. Also, fixed documentation typos.
> - Patch #9: Added commit description.
> Changes in v3:
> --------------
> - Patch #4: Minor commit message update
> - Patch #5: Replace CONFIG_* with Kconfig options
> - Patch #7: Dropped Makefile portion and enabled OF_UPSTREAM for SoC
>    instead.
> - Patch #1, #3, #6 and #8: Picked up review tags
> Changes in v2:
> --------------
> - Patch #1: excluded gitab CI config check and added commit description.
> - Patch #3: s/UBOOT_DTSI_LOC/u_boot_dtsi_loc/
> - Patch #4: s/DEVICE_TREE_LOC/dt_dir/ and s/U-boot/U-Boot/
> - Patch #5: s/U-boot/U-Boot/
> - Patch #6 and #7: Picked up review tags
> Prerequisite
> ------------
> 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 dts/upstream \
>        git://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git \
>        v6.7-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 `dts/upstream` sub-directory.
> U-Boot will regularly sync `dts/upstream/` subtree whenever the next window
> opens with the next available kernel major release.
> `dts/update-dts-subtree.sh` script provides a wrapper around git subtree
> pull command, usage from the top level U-Boot source tree, run:
> $ ./dts/update-dts-subtree.sh <devicetree-rebasing-release-tag>
> 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.

I very much agree with the direction this is going in, but I do have two 
simple questions:

How do you propose to handle fixes to DTs which are applied to 
linux-stable releases ? For example, if Linux 6.6(.0) ships a DT which 
has some defect that is fixed in 6.6.1, how will that fix get into 
U-Boot DTs ?

Assume that there is some large breaking change in Linux 6.(n+1), 
something which would be problematic for specific U-Boot platform (e.g. 
i.MX) or would require a lot of work to sort out, will there be a way to 
temporarily pin DTs for specific platform to older DT version until that 
is resolved (e.g. pin to 6.n) ?

More information about the U-Boot-Custodians mailing list