]> git.ipfire.org Git - thirdparty/u-boot.git/commit
dts: automatically build necessary .dtb files
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Mon, 10 Jan 2022 13:34:41 +0000 (14:34 +0100)
committerSimon Glass <sjg@chromium.org>
Wed, 9 Feb 2022 19:26:12 +0000 (12:26 -0700)
commit3609e1dc5f4d4c238dcd23e045ba6223310feffa
tree4996807e7871356e6b2f361cf57ca621c675999f
parent859703251251d9567f29ab10c0a29f98eb0aff5c
dts: automatically build necessary .dtb files

When building for a custom board, it is quite common to maintain a
private branch which include some defconfig and .dts files. But to
hook up those .dts files requires modifying a file "belonging" to
upstream U-Boot, the arch/*/dts/Makefile. Forward-porting that branch
to a newer upstream then often results in a conflict which, while it
is trivial to resolve by hand, makes it harder to have a CI do "try to
build our board against latest upstream".

The .config usually includes information on precisely what .dtb(s) are
needed, so to avoid having to modify the Makefile, simply add the
files in (SPL_)OF_LIST to dtb-y.

A technicality is that (SPL_)OF_LIST is not always defined, so rework
the Kconfig symbols so that (SPL_)OF_LIST is always defined (when
(SPL_)OF_CONTROL), but only prompted for in the cases which used to be
their "depends on".

nios2 and microblaze already have something like this in their
dts/Makefile, and the rationale in commit 41f59f68539 is similar to
the above. So this simply generalizes existing practice. Followup
patches could remove the logic in those two makefiles, just as there's
potential for moving some common boilerplate from all the
arch/*/dts/Makefile files to the new scripts/Makefile.dts.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
15 files changed:
arch/arc/dts/Makefile
arch/arm/dts/Makefile
arch/m68k/dts/Makefile
arch/microblaze/dts/Makefile
arch/mips/dts/Makefile
arch/nds32/dts/Makefile
arch/nios2/dts/Makefile
arch/powerpc/dts/Makefile
arch/riscv/dts/Makefile
arch/sandbox/dts/Makefile
arch/sh/dts/Makefile
arch/x86/dts/Makefile
arch/xtensa/dts/Makefile
dts/Kconfig
scripts/Makefile.dts [new file with mode: 0644]