Message ID | 1421287693-23383-1-git-send-email-ottxor@gentoo.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 14, 2015 at 6:08 PM, Christoph Junghans <ottxor@gentoo.org> wrote: > Add new targets to build zImage and uImage with DTB appended (i.e. make > 'uImage-dtb.am335x-bone' or 'make zImage-dtb.omap3-evm'). > > Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> > Signed-off-by: Grant Likely <grant.likely@secretlab.ca> > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > Signed-off-by: Christoph Junghans <ottxor@gentoo.org> > --- > > I don't know why this never got merged, but I think it is still useful. Maybe the patch description on the first version of the patch is a hint? https://lkml.org/lkml/2011/8/2/200 In general, we're moving away from generating custom images straight out of the kernel build system. You should make that part of your installation scripts or similar instead. -Olof
Hi Olof, On Wed, Jan 14, 2015 at 06:31:48PM -0800, Olof Johansson wrote: > On Wed, Jan 14, 2015 at 6:08 PM, Christoph Junghans <ottxor@gentoo.org> wrote: > > Add new targets to build zImage and uImage with DTB appended (i.e. make > > 'uImage-dtb.am335x-bone' or 'make zImage-dtb.omap3-evm'). > > > > Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> > > Signed-off-by: Grant Likely <grant.likely@secretlab.ca> > > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > > Signed-off-by: Christoph Junghans <ottxor@gentoo.org> > > --- > > > > I don't know why this never got merged, but I think it is still useful. > > Maybe the patch description on the first version of the patch is a hint? > > https://lkml.org/lkml/2011/8/2/200 > > In general, we're moving away from generating custom images straight > out of the kernel build system. You should make that part of your > installation scripts or similar instead. FWIW, I *do* find this useful. My build scripts have to differ between x86 and ARM only because of dtb. I would love to see this patch merged, and anyway I'll add it to my own tree because it will simplify my build process. Thanks, Willy
On Wed, Jan 14, 2015 at 07:08:13PM -0700, Christoph Junghans wrote: > Add new targets to build zImage and uImage with DTB appended (i.e. make > 'uImage-dtb.am335x-bone' or 'make zImage-dtb.omap3-evm'). > > Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com> > Signed-off-by: Grant Likely <grant.likely@secretlab.ca> > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > Signed-off-by: Christoph Junghans <ottxor@gentoo.org> > --- > > I don't know why this never got merged, but I think it is still useful. What do you do about supplying the load address argument to mkimage, which is highly platform specific? This may be useful if you want to create one uImage for one platform, but it's not useful in other cases. However, in general, I don't want to augment the u-boot crap that we already have in the kernel; it's too inflexible. You're much better off taking the zImage and DTB, combining them yourself, and then _if_ you insist on using the u-boot legacy format, running mkimage. The alternative is to move forward with your uboot skills, and see whether your uboot supports loading the fdt and use bootz with the zImage instead of bootm.
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index c1785ee..b3d51e24 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -308,6 +308,9 @@ $(BOOT_TARGETS): vmlinux $(INSTALL_TARGETS): $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@ +uImage-dtb.%: vmlinux + $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ + %.dtb: | scripts $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@ @@ -330,9 +333,11 @@ i zi:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@ define archhelp echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' + echo ' zImage-dtb.* - zImage' with appended dtb blob for machine=* 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 ' uImage-dtb.* - U-Boot wrapped zImage' with appended dtb blob for machine=* 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' diff --git a/arch/arm/boot/.gitignore b/arch/arm/boot/.gitignore index 3c79f85..3d7e1c8 100644 --- a/arch/arm/boot/.gitignore +++ b/arch/arm/boot/.gitignore @@ -1,6 +1,8 @@ Image zImage +zImage-dtb.* xipImage bootpImage uImage +uImage-dtb.* *.dtb diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index ec2f806..6bc21d2 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile @@ -55,6 +55,9 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE $(call if_changed,objcopy) @$(kecho) ' Kernel: $@ is ready' +$(obj)/zImage-dtb.%: $(obj)/dts/%.dtb $(obj)/zImage + cat $(obj)/zImage $< > $@ + endif ifneq ($(LOADADDR),) @@ -80,6 +83,11 @@ $(obj)/uImage: $(obj)/zImage FORCE $(call if_changed,uimage) @$(kecho) ' Image $@ is ready' +$(obj)/uImage-dtb.%: $(obj)/zImage-dtb.% FORCE + @$(check_for_multiple_loadaddr) + $(call if_changed,uimage) + @echo ' Image $@ is ready' + $(obj)/bootp/bootp: $(obj)/zImage initrd FORCE $(Q)$(MAKE) $(build)=$(obj)/bootp $@ @: