Skip to content
Snippets Groups Projects
  1. Apr 29, 2024
  2. May 15, 2023
    • Rasmus Villemoes's avatar
      scripts/Makefile.dts: tweak logic for deciding which dtbs to build · 6923f49d
      Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
      
      The idea in 3609e1dc (dts: automatically build necessary .dtb
      files) was fine, but the implementation was suboptimal due to some
      misunderstandings on my part (and possibly defects in some defconfig
      files):
      
      - Sometimes DEFAULT_DEVICE_TREE is not included in OF_LIST or
        SPL_OF_LIST
      
      - SPL_OF_LIST is not always a subset of OF_LIST
      
      - While SPL_OF_LIST governs the list of dtbs relevant to SPL (i.e.,
        may be built into an
        SPL-with-bunch-of-dtbs-to-choose-between-at-runtime), those dtbs are
        not actually _built_ during the SPL build phase, i.e. when $(SPL_)
        would expand to SPL_. fdtgrep runs on the artifacts produced during
        the ordinary U-Boot build.
      
      Tweak the logic so that we simply add the union of all dtbs mentioned
      in either DEFAULT_DEVICE_TREE, OF_LIST and SPL_OF_LIST to dtb-y. That
      should, for real, ensure that we always build all the dtbs that is
      relevant to the current board, and should in turn enable us to
      massively simplify arch/*/dts/Makefile.
      
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Tested-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      6923f49d
  3. Feb 09, 2022
    • Rasmus Villemoes's avatar
      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
Loading