On 09/10/2012 03:38 PM, Richard Genoud wrote: > This rules are useful for appended device tree conforming to the > CONFIG_ARM_APPENDED_DTB kernel option. > > The rule dtbImage.<dt> is actually just a: > cat zImage <dt>.dtb > dtbImage.<dt> > > The dtbuImage.<dt> makes an uImage out of the dtbImage.<dt> file. Tested on my Armada XP board, it worked as expected. You can add my Tested-by. > > KernelVersion: v3.6-rc5 > > Signed-off-by: Richard Genoud <richard.genoud@xxxxxxxxx> > --- > arch/arm/Makefile | 30 ++++++++++++++++-------------- > arch/arm/boot/Makefile | 11 +++++++++++ > scripts/Makefile.lib | 6 ++++++ > 3 files changed, 33 insertions(+), 14 deletions(-) > > diff --git a/arch/arm/Makefile b/arch/arm/Makefile > index 30eae87..c5f2673 100644 > --- a/arch/arm/Makefile > +++ b/arch/arm/Makefile > @@ -278,7 +278,7 @@ archprepare: > # Convert bzImage to zImage > bzImage: zImage > > -zImage Image xipImage bootpImage uImage: vmlinux > +zImage Image xipImage bootpImage uImage dtbImage.% dtbuImage.% : vmlinux > $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ > > zinstall uinstall install: vmlinux > @@ -300,17 +300,19 @@ i zi:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@ > > > define archhelp > - echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' > - echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' > - echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' > - echo ' uImage - U-Boot wrapped zImage' > - echo ' bootpImage - Combined zImage and initial RAM disk' > - echo ' (supply initrd image via make variable INITRD=<path>)' > - echo ' dtbs - Build device tree blobs for enabled boards' > - echo ' install - Install uncompressed kernel' > - echo ' zinstall - Install compressed kernel' > - echo ' uinstall - Install U-Boot wrapped compressed kernel' > - echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or' > - echo ' (distribution) /sbin/$(INSTALLKERNEL) or' > - echo ' install to $$(INSTALL_PATH) and run lilo' > + echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' > + echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' > + echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' > + echo ' uImage - U-Boot wrapped zImage' > + echo ' bootpImage - Combined zImage and initial RAM disk' > + echo ' (supply initrd image via make variable INITRD=<path>)' > + echo ' dtbs - Build device tree blobs for enabled boards' > + echo ' dtbImage.<dt> - zImage with an appended device tree blob' > + echo ' dtbuImage.<dt> - uImage with an embedded device tree blob' > + echo ' install - Install uncompressed kernel' > + echo ' zinstall - Install compressed kernel' > + echo ' uinstall - Install U-Boot wrapped compressed kernel' > + echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or' > + echo ' (distribution) /sbin/$(INSTALLKERNEL) or' > + echo ' install to $$(INSTALL_PATH) and run lilo' > endef > diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile > index c877087..35c01a8 100644 > --- a/arch/arm/boot/Makefile > +++ b/arch/arm/boot/Makefile > @@ -98,6 +98,17 @@ $(obj)/bootpImage: $(obj)/bootp/bootp FORCE > $(call if_changed,objcopy) > @echo ' Kernel: $@ is ready' > > +# dtbImage.% - a dtbImage is a zImage with an appended device tree blob > +$(obj)/dtbImage.%: $(obj)/zImage $(obj)/%.dtb FORCE > + $(call if_changed,cat) > + @echo ' Kernel: $@ is ready' > + > +# dtbuImage.% - a dtbuImage is a uImage with an embedded device tree blob > +$(obj)/dtbuImage.%: $(obj)/dtbImage.% FORCE > + @$(check_for_multiple_loadaddr) > + $(call if_changed,uimage) > + @echo ' Image $@ is ready' > + > PHONY += initrd FORCE > initrd: > @test "$(INITRD_PHYS)" != "" || \ > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 0be6f11..8550466 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -235,6 +235,12 @@ cmd_ld = $(LD) $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F)) \ > quiet_cmd_objcopy = OBJCOPY $@ > cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@ > > +# Cat > +# --------------------------------------------------------------------------- > + > +quiet_cmd_cat = CAT $@ > +cmd_cat = (cat $(filter-out FORCE,$^) > $@) || (rm -f $@ ; false) > + > # Gzip > # --------------------------------------------------------------------------- > > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html