Skip to content
Snippets Groups Projects
  • Rasmus Villemoes's avatar
    5f044932
    scripts/Makefile.lib: do not include CONFIG_DEVICE_TREE_INCLUDES in dtsi_include_list · 5f044932
    Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
    
    The commit mentioned in Fixes broke the
    CONFIG_DEVICE_TREE_INCLUDES feature, with the result that any board
    setting any non-empty value for that fails to build.
    
    The parent of the mentioned commit refactoring a bit by introducing
    the dtsi_include_list variable and changing cmd_dtc to loop over that
    was fine.
    
    However, the .dtsi files mentioned in CONFIG_DEVICE_TREE_INCLUDES are
    not supposed to be generated via the build system. They are meant for
    e.g. including a public key for verified boot (generated with the
    key2dtsi script), or for injecting some stuff to the /config
    node (say, a bootcmd or a load-environment setting or things like
    that). The files can either live in-tree in a private branch or
    completely outside, e.g. in some Yocto metadata.
    
    But regardless, U-Boot's build system will never know anything about
    them, so when the mentioned commit did
    
    dtsi_include_list_deps = $(addprefix $(obj)/,$(subst $(quote),,$(dtsi_include_list)))
    
    things broke, because if CONFIG_DEVICE_TREE_INCLUDES is for example
    "/path/to/public_key.dtsi", this would add a dependency on
    $(obj)//path/to/public_key.dtsi to each $(obj)/*.dtb target, yielding
    
    make[3]: *** No rule to make target 'arch/arm/dts/imx6dl-aristainetos2c_7.dtb', needed by 'dtbs'.  Stop.
    
    To fix that while preserving the introduced
    CONFIG_EFI_CAPSULE_ESL_FILE behaviour, disentangle
    CONFIG_DEVICE_TREE_INCLUDES from dtsi_include_list from which
    dtsi_include_list_deps is built, and instead just add the items
    directly to the $(foreach) loop.
    
    Fixes: a958988b ("scripts/Makefile.lib: Add dtsi include files as deps for building DTB")
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    Tested-by: default avatarEmil Kronborg <emil.kronborg@protonmail.com>
    5f044932
    History
    scripts/Makefile.lib: do not include CONFIG_DEVICE_TREE_INCLUDES in dtsi_include_list
    Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
    
    The commit mentioned in Fixes broke the
    CONFIG_DEVICE_TREE_INCLUDES feature, with the result that any board
    setting any non-empty value for that fails to build.
    
    The parent of the mentioned commit refactoring a bit by introducing
    the dtsi_include_list variable and changing cmd_dtc to loop over that
    was fine.
    
    However, the .dtsi files mentioned in CONFIG_DEVICE_TREE_INCLUDES are
    not supposed to be generated via the build system. They are meant for
    e.g. including a public key for verified boot (generated with the
    key2dtsi script), or for injecting some stuff to the /config
    node (say, a bootcmd or a load-environment setting or things like
    that). The files can either live in-tree in a private branch or
    completely outside, e.g. in some Yocto metadata.
    
    But regardless, U-Boot's build system will never know anything about
    them, so when the mentioned commit did
    
    dtsi_include_list_deps = $(addprefix $(obj)/,$(subst $(quote),,$(dtsi_include_list)))
    
    things broke, because if CONFIG_DEVICE_TREE_INCLUDES is for example
    "/path/to/public_key.dtsi", this would add a dependency on
    $(obj)//path/to/public_key.dtsi to each $(obj)/*.dtb target, yielding
    
    make[3]: *** No rule to make target 'arch/arm/dts/imx6dl-aristainetos2c_7.dtb', needed by 'dtbs'.  Stop.
    
    To fix that while preserving the introduced
    CONFIG_EFI_CAPSULE_ESL_FILE behaviour, disentangle
    CONFIG_DEVICE_TREE_INCLUDES from dtsi_include_list from which
    dtsi_include_list_deps is built, and instead just add the items
    directly to the $(foreach) loop.
    
    Fixes: a958988b ("scripts/Makefile.lib: Add dtsi include files as deps for building DTB")
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    Tested-by: default avatarEmil Kronborg <emil.kronborg@protonmail.com>