Message ID | 1347284313-2857-1-git-send-email-richard.genoud@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@gmail.com> > --- > 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 > # --------------------------------------------------------------------------- > >
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 # ---------------------------------------------------------------------------
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. KernelVersion: v3.6-rc5 Signed-off-by: Richard Genoud <richard.genoud@gmail.com> --- arch/arm/Makefile | 30 ++++++++++++++++-------------- arch/arm/boot/Makefile | 11 +++++++++++ scripts/Makefile.lib | 6 ++++++ 3 files changed, 33 insertions(+), 14 deletions(-)