Message ID | CAEnpE0x7wD8R4WSyt_Sk7fSFb8Z2vq2G+te1pdLe+=ihbi3rQA@mail.gmail.com |
---|---|
State | Superseded |
Headers | show |
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 \
On 12/18/2012 12:35 PM, Arnout Vandecappelle wrote: > Could you also resend this patch with git send-email? (See its man > page for how to configure it for gmail.) Sure thing. > Perhaps the whitespace is correct and gmail ate it, but just to be sure: > indentation should be one tab. I assume gmail ate it. I use tabs by default in makefile-ish files. > Or are there use cases where you want the DTB in /boot, but not the > kernel image? It seems the logical place for the dtb to live, with the kernel, bit it is possible someone would not want that. Is there a consensus from the folks on the mailing list about what should be done with the dtb? Peace, Gary
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" + 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" diff --git a/linux/linux.mk b/linux/linux.mk index c4bdf90..8778c35 100644 --- a/linux/linux.mk +++ b/linux/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.