Skip to content
Snippets Groups Projects
  • Rasmus Villemoes's avatar
    3609e1dc
    dts: automatically build necessary .dtb files · 3609e1dc
    Rasmus Villemoes authored and Simon Glass's avatar Simon Glass committed
    
    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 41f59f68 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: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
    3609e1dc
    History
    dts: automatically build necessary .dtb files
    Rasmus Villemoes authored and Simon Glass's avatar Simon Glass committed
    
    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 41f59f68 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: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>