[Buildroot] [PATCH 1/1] linux: allow both in-tree and custom dts files

Arnout Vandecappelle arnout at mind.be
Sun Feb 25 23:20:54 UTC 2018


 Hi Simon,

 Thank you for your contribution.

On 21-02-18 20:53, Simon van der Veldt wrote:
> For some boards, for example the Raspberry Pi, it's necessary to build in-tree dts files as well
> as custom/out of tree dts-files (dt-blob.bin).

 Indeed, this makes a lot of sense, and will make more sense when overlays
become commonplace.

 I have applied to next, with a few changes, as noted below.


> The existing logic made these two options exclusive, this commit changes that to allow both
> in-tree as well as custom sources for dts files.

 Please wrap the commit message at 72 columns.

> 
> Signed-off-by: Simon van der Veldt <simon.vanderveldt at gmail.com>
> ---
>  linux/Config.in | 19 +++++++------------
>  linux/linux.mk  |  5 +++--
>  2 files changed, 10 insertions(+), 14 deletions(-)
> 
> diff --git a/linux/Config.in b/linux/Config.in
> index 0e1e4c287b..38b0334ed7 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -363,10 +363,6 @@ config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
>  config BR2_LINUX_KERNEL_APPENDED_DTB
>  	bool
>  
> -choice
> -	prompt "Device tree source"
> -	default BR2_LINUX_KERNEL_USE_INTREE_DTS
> -
>  config BR2_LINUX_KERNEL_USE_INTREE_DTS
>  	bool "Use a device tree present in the kernel"
>  	help
> @@ -374,14 +370,6 @@ config BR2_LINUX_KERNEL_USE_INTREE_DTS
>  	  the kernel sources. The dts files are located
>  	  in the arch/<arch>/boot/dts folder.
>  
> -config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
> -	bool "Use a custom device tree file"
> -	help
> -	  Use a custom device tree file, i.e, a device
> -	  tree file that does not belong to the kernel
> -	  source tree.
> -endchoice
> -
>  config BR2_LINUX_KERNEL_INTREE_DTS_NAME
>  	string "Device Tree Source file names"
>  	depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
> @@ -390,6 +378,13 @@ config BR2_LINUX_KERNEL_INTREE_DTS_NAME
>  	  the trailing .dts. You can provide a list of
>  	  dts files to build, separated by spaces.
>  
> +config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
> +	bool "Use a custom device tree file"
> +	help
> +	  Use a custom device tree file, i.e, a device
> +	  tree file that does not belong to the kernel
> +	  source tree.

 I think that his option and BR2_LINUX_KERNEL_USE_INTREE_DTS are now redundant.
Indeed, we can just check if the string is non-empty. That said, it's better to
do this as a separate patch, and anyway there is no agreement between Buildroot
developers whether it's better to have an explicit boolean Kconfig variable or
whether to use the non-emptiness.

 I've also been thinking about the possibility to have just a single string
option with all dts'es, but that would be complicated for no real gain.

> +
>  config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
>  	string "Device Tree Source file paths"
>  	depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 5300b9cfc5..58a38aa0e0 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -120,12 +120,13 @@ LINUX_VERSION_PROBED = `$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-d
>  
>  ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
>  KERNEL_DTS_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME))

 I've changed this into +=, so it can be safely moved around without overwriting
the assignment below.

> -else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
> +endif

 I've added an empty line here since the conditions are now really separate.


 Regards,
 Arnout

> +ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
>  # We keep only the .dts files, so that the user can specify both .dts
>  # and .dtsi files in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH. Both will be
>  # copied to arch/<arch>/boot/dts, but only the .dts files will
>  # actually be generated as .dtb.
> -KERNEL_DTS_NAME = $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))))
> +KERNEL_DTS_NAME += $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))))
>  endif
>  
>  KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME))
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list