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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox