All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/4] Rework support for the device tree
Date: Mon, 16 Jul 2012 14:57:08 +0200	[thread overview]
Message-ID: <20120716145708.5f2a1bf7@skate> (raw)
In-Reply-To: <1341309676-18681-2-git-send-email-maxime.ripard@free-electrons.com>

Le Tue,  3 Jul 2012 12:01:13 +0200,
Maxime Ripard <maxime.ripard@free-electrons.com> a ?crit :

> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  linux/Config.in |   46 +++++++++++++++++++++++++++++++++++++++-------
>  linux/linux.mk  |   38 +++++++++++++++++++++++---------------
>  2 files changed, 62 insertions(+), 22 deletions(-)
> 
> diff --git a/linux/Config.in b/linux/Config.in
> index 4562b1b..6f704b0 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -124,14 +124,46 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
>  	help
>  	  Path to the kernel configuration file
>  
> +config BR2_LINUX_KERNEL_DTS_SUPPORT
> +	bool "Device tree support"
> +	help
> +	  Compile a device tree source into a device tree blob.
> +	  Select the dts file to compile in the options below.
> +
> +if BR2_LINUX_KERNEL_DTS_SUPPORT
> +
> +choice
> +	prompt "Device tree source"
> +	default BR2_LINUX_KERNEL_USE_DEFAULT_DTS
> +
> +config BR2_LINUX_KERNEL_USE_DEFAULT_DTS

I don't really like "USE_DEFAULT_DTS", it isn't really a "default"
device tree. What about BR2_LINUX_KERNEL_USE_INTREE_DTS or something
like that?

> +	bool "Use a device tree present in the kernel.

Missing " at the end of the line, and the final "." shouldn't be there.

> +	help
> +	   Use a device tree source distributed with
> +	   the kernel sources. The dts files are to be
> +	   found in the arch/<arch>/boot/dts folder.

"are to be found" -> "are located" ?

> +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_DTS_FILE
> -    string "Device Tree dts file location"
> -    depends on BR2_microblaze
> -    help
> -      Path from where the dts file has to be copied
> -      The final "custom target" name depends on the
> -      dts file name:
> -          <name>.dts --> simpleImage.<name>
> +	string "DTS name"

	string "Device Tree Source file name" ?

> +	depends on BR2_LINUX_KERNEL_USE_DEFAULT_DTS
> +	help
> +	 Name of the default device tree, without the
> +	 trailing .dts
> +
> +config BR2_LINUX_KERNEL_CUSTOM_DTS_FILE
> +	string "Device tree file path"

	string "Device Tree Source file path" ?

or at least be consistent in the naming, either DTS everywhere, or
Device Tree Source everywhere.

> +	depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
> +	help
> +	  Path to the kernel configuration file
> +
> +endif
>  #
>  # Binary format
>  #
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 34f8623..0540aeb 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -46,6 +46,12 @@ LINUX_MAKE_FLAGS = \
>  # going to be installed in the target filesystem.
>  LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
>  
> +ifeq ($(BR2_LINUX_KERNEL_USE_DEFAULT_DTS),y)
> +KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_DTS_FILE)
> +else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
> +KERNEL_DTS_NAME = $(basename $(notdir $(BR2_LINUX_KERNEL_CUSTOM_DTS_FILE)))
> +endif
> +
>  ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y)
>  LINUX_IMAGE_NAME=$(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME))
>  else
> @@ -117,19 +123,6 @@ endef
>  
>  LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
>  
> -ifeq ($(KERNEL_ARCH),microblaze)
> -# on microblaze, we always want mkimage
> -LINUX_DEPENDENCIES+=host-uboot-tools
> -
> -define LINUX_COPY_DTS
> -    if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
> -        cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
> -    else \
> -        echo "Cannot copy dts file!" ; \
> -    fi
> -endef
> -endif
> -
>  ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
>  KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
>  else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
> @@ -143,8 +136,6 @@ define LINUX_CONFIGURE_CMDS
>  	$(if $(BR2_ARM_EABI),
>  		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
>  		$(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
> -    $(if $(BR2_microblaze),
> -        $(call LINUX_COPY_DTS))
>  	# As the kernel gets compiled before root filesystems are
>  	# built, we create a fake cpio file. It'll be
>  	# replaced later by the real cpio archive, and the kernel will be
> @@ -167,13 +158,23 @@ define LINUX_CONFIGURE_CMDS
>  	yes '' | $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) oldconfig
>  endef
>  
> +ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)
> +define LINUX_BUILD_DTB
> +	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DTS_NAME).dtb
> +endef
> +endif
> +
>  # Compilation. We make sure the kernel gets rebuilt when the
>  # configuration has changed.
>  define LINUX_BUILD_CMDS
> +	$(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),
> +		mkdir $(KERNEL_ARCH_PATH)/boot/dts

Do you really need to create the directory here? I would suspect that
all arches supporting the Device Tree already have their boot/dts/
directory, no?

> +		cp $(BR2_LINUX_KERNEL_CUSTOM_DTS_FILE) $(KERNEL_ARCH_PATH)/boot/dts/)
>  	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
>  	@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then 	\
>  		$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ;	\
>  	fi
> +	$(LINUX_BUILD_DTB)
>  endef
>  
>  
> @@ -183,12 +184,19 @@ define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET
>  endef
>  endif
>  
> +ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)
> +define LINUX_INSTALL_DTB
> +	cp $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb $(BINARIES_DIR)/

Hum, here when I do a make foobar.dtb, the foobar.dtb file ends up in
the main kernel source tree, not in arch/arm/boot/.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  parent reply	other threads:[~2012-07-16 12:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-03 10:01 [Buildroot] [PATCHv2] Add some support for device tree kernels with appended trees Maxime Ripard
2012-07-03 10:01 ` [Buildroot] [PATCH 1/4] Rework support for the device tree Maxime Ripard
2012-07-15 12:34   ` Arnout Vandecappelle
2012-07-15 12:41     ` Arnout Vandecappelle
2012-07-16 12:57   ` Thomas Petazzoni [this message]
     [not found]     ` <5006E601.4080807@essensium.com>
2012-07-19  7:42       ` Thomas Petazzoni
2012-07-03 10:01 ` [Buildroot] [PATCH 2/4] Add support for appended device tree blobs for arm Maxime Ripard
2012-07-15 12:41   ` Arnout Vandecappelle
2012-07-16 13:01   ` Thomas Petazzoni
2012-07-16 13:10   ` Thomas Petazzoni
2012-07-03 10:01 ` [Buildroot] [PATCH 3/4] Factorise the u-boot images code Maxime Ripard
2012-07-15 12:42   ` Arnout Vandecappelle
2012-07-16 13:03   ` Thomas Petazzoni
2012-07-03 10:01 ` [Buildroot] [PATCH 4/4] Add cuImage(powerpc) and simpleImage(microblaze) as Linux kernel images variants Maxime Ripard
2012-07-15 12:43   ` Arnout Vandecappelle
2012-07-16 12:46 ` [Buildroot] [PATCHv2] Add some support for device tree kernels with appended trees Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120716145708.5f2a1bf7@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.