[Buildroot] [PATCH] Add support for dtb file in /boot directory on target

Arnout Vandecappelle arnout at mind.be
Tue Dec 18 17:35:03 UTC 2012


On 03/12/12 22:43, Gary Coulbourne wrote:
> Howdy!
>
> I'm using u-boot, and loading both the kernel image and the dtb from
> /boot on my target.  I added support for this, and am
> submitting the patch should it be useful to anyone else.

  Hi Gary,

  Could you also resend this patch with git send-email? (See its man page 
for how to configure it for gmail.)


> ---
>   linux/Config.in |    6 ++++++
>   linux/linux.mk <http://linux.mk>  |    7 +++++++
>   2 files changed, 13 insertions(+)
>
> diff --git a/linux/Config.in b/linux/Config.in
> index f408ad5..d5ffa57 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -283,6 +283,12 @@ config BR2_LINUX_KERNEL_INSTALL_TARGET
>            /boot in the target root filesystem, as is typically done on
>            x86/x86_64 systems.
> +config BR2_LINUX_DEVICE_TREE_INSTALL_TARGET
> +        bool "Install Device Tree to /boot in target"

  Perhaps the whitespace is correct and gmail ate it, but just to be sure:
indentation should be one tab.

  However, does it make sense to have this as a separate config option? 
Isn't it better to do this automatically when 
BR2_LINUX_KERNEL_INSTALL_TARGET is set? (Unless 
BR2_LINUX_KERNEL_APPENDED_DTB is set as well, of course.)

  Or are there use cases where you want the DTB in /boot, but not the 
kernel image?

> +        depends on BR2_LINUX_KERNEL_DTS_SUPPORT
> +       help
> +         Select this option to have the device tree installed to
> +          /boot in the target root filesystem.
>   # Linux extensions
>   source "linux/Config.ext.in <http://Config.ext.in>"
> diff --git a/linux/linux.mk <http://linux.mk> b/linux/linux.mk
> <http://linux.mk>
> index c4bdf90..8778c35 100644
> --- a/linux/linux.mk <http://linux.mk>
> +++ b/linux/linux.mk <http://linux.mk>
> @@ -208,6 +208,12 @@ define LINUX_APPEND_DTB
>   endef
>   endif
> +ifeq ($(BR2_LINUX_DEVICE_TREE_INSTALL_TARGET),y)
> +define LINUX_DEVICE_TREE_INSTALL_TARGET
> +       install -m 0644 -D
> $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb
> $(TARGET_DIR)/boot/$(KERNEL_DTS_NAME).dtb
> +endef
> +endif
> +
>   # Compilation. We make sure the kernel gets rebuilt when the
>   # configuration has changed.
>   define LINUX_BUILD_CMDS
> @@ -244,6 +250,7 @@ endef
>   define LINUX_INSTALL_TARGET_CMDS
>          $(LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET)
>          $(LINUX_INSTALL_DTB)
> +       $(LINUX_DEVICE_TREE_INSTALL_TARGET)

  I would call it LINUX_INSTALL_DTB_TO_TARGET, parallel to the 
LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET.


  Regards,
  Arnout

>          # Install modules and remove symbolic links pointing to build
>          # directories, not relevant on the target
>          @if grep -q "CONFIG_MODULES=y" $(@D)/.config; then      \


-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F


More information about the buildroot mailing list