Message ID | 1331931835-12346-1-git-send-email-swarren@wwwdotorg.org |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
On Fri, 16 Mar 2012, Stephen Warren wrote: > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > to avoid duplication. > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > parameterized version in Makefile.lib to avoid duplication. > > Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Nicolas Pitre <nico@linaro.org> > --- > v2: > * Fix blackfin's UIMAGE_LOADADDR in the ROMKERNEL case. > * Fix missing ) on a variable reference in avr32 and sparc. > * Only set those UIMAGE_* variables that the arch-specific Makefile hasn't > already set. > * The patch series is now just this single patch which removes duplication; > I've dropped the Kconfig feature to allow use of -T kernel_noload for > now, since it looks like U-Boot is gaining direct zImage support. > > arch/arm/boot/Makefile | 23 +++++++++-------------- > arch/avr32/boot/images/Makefile | 9 +++------ > arch/blackfin/boot/Makefile | 19 ++++++++----------- > arch/microblaze/boot/Makefile | 10 +++------- > arch/sh/boot/Makefile | 8 ++------ > arch/sparc/boot/Makefile | 9 +++------ > arch/unicore32/boot/Makefile | 12 ++---------- > scripts/Makefile.lib | 24 ++++++++++++++++++++++++ > 8 files changed, 54 insertions(+), 60 deletions(-) > > diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile > index fc871e7..c877087 100644 > --- a/arch/arm/boot/Makefile > +++ b/arch/arm/boot/Makefile > @@ -11,8 +11,6 @@ > # Copyright (C) 1995-2002 Russell King > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > ifneq ($(MACHINE),) > include $(srctree)/$(MACHINE)/Makefile.boot > endif > @@ -69,22 +67,19 @@ $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) > > clean-files := *.dtb > > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \ > - -C none -a $(LOADADDR) -e $(STARTADDR) \ > - -n 'Linux-$(KERNELRELEASE)' -d $< $@ > - > -ifeq ($(CONFIG_ZBOOT_ROM),y) > -$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) > +ifneq ($(LOADADDR),) > + UIMAGE_LOADADDR=$(LOADADDR) > else > -$(obj)/uImage: LOADADDR=$(ZRELADDR) > + ifeq ($(CONFIG_ZBOOT_ROM),y) > + UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) > + else > + UIMAGE_LOADADDR=$(ZRELADDR) > + endif > endif > > -$(obj)/uImage: STARTADDR=$(LOADADDR) > - > check_for_multiple_loadaddr = \ > -if [ $(words $(LOADADDR)) -gt 1 ]; then \ > - echo 'multiple load addresses: $(LOADADDR)'; \ > +if [ $(words $(UIMAGE_LOADADDR)) -gt 1 ]; then \ > + echo 'multiple load addresses: $(UIMAGE_LOADADDR)'; \ > echo 'This is incompatible with uImages'; \ > echo 'Specify LOADADDR on the commandline to build an uImage'; \ > false; \ > diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile > index 1848bf0..2a3b539 100644 > --- a/arch/avr32/boot/images/Makefile > +++ b/arch/avr32/boot/images/Makefile > @@ -6,8 +6,6 @@ > # for more details. > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > extra-y := vmlinux.bin vmlinux.gz > > OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id > @@ -17,10 +15,9 @@ $(obj)/vmlinux.bin: vmlinux FORCE > $(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE > $(call if_changed,gzip) > > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A avr32 -O linux -T kernel \ > - -C gzip -a $(CONFIG_LOAD_ADDRESS) -e $(CONFIG_ENTRY_ADDRESS) \ > - -n 'Linux-$(KERNELRELEASE)' -d $< $@ > +UIMAGE_LOADADDR = $(CONFIG_LOAD_ADDRESS) > +UIMAGE_ENTRYADDR = $(CONFIG_ENTRY_ADDRESS) > +UIMAGE_COMPRESSION = gzip > > targets += uImage uImage.srec > $(obj)/uImage: $(obj)/vmlinux.gz > diff --git a/arch/blackfin/boot/Makefile b/arch/blackfin/boot/Makefile > index 0a49279..f7d27d5 100644 > --- a/arch/blackfin/boot/Makefile > +++ b/arch/blackfin/boot/Makefile > @@ -6,20 +6,17 @@ > # for more details. > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > targets := vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma vmImage.lzo vmImage.xip > extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.xip > > -UIMAGE_OPTS-y := > -UIMAGE_OPTS-$(CONFIG_RAMKERNEL) += -a $(CONFIG_BOOT_LOAD) > -UIMAGE_OPTS-$(CONFIG_ROMKERNEL) += -a $(CONFIG_ROM_BASE) -x > - > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \ > - -C $(2) -n '$(CPU_REV)-$(KERNELRELEASE)' \ > - -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \ > - $(UIMAGE_OPTS-y) -d $< $@ > +ifeq ($(CONFIG_RAMKERNEL),y) > +UIMAGE_LOADADDR = $(CONFIG_BOOT_LOAD) > +else # CONFIG_ROMKERNEL must be set > +UIMAGE_LOADADDR = $(CONFIG_ROM_BASE) > +endif > +UIMAGE_ENTRYADDR = $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') > +UIMAGE_NAME = '$(CPU_REV)-$(KERNELRELEASE)' > +UIMAGE_OPTS-$(CONFIG_ROMKERNEL) += -x > > $(obj)/vmlinux.bin: vmlinux FORCE > $(call if_changed,objcopy) > diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile > index 0c796cf..ca76ecd 100644 > --- a/arch/microblaze/boot/Makefile > +++ b/arch/microblaze/boot/Makefile > @@ -2,8 +2,6 @@ > # arch/microblaze/boot/Makefile > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > obj-y += linked_dtb.o > > targets := linux.bin linux.bin.gz simpleImage.% > @@ -35,11 +33,9 @@ quiet_cmd_strip = STRIP $@ > cmd_strip = $(STRIP) -K microblaze_start -K _end -K __log_buf \ > -K _fdt_start vmlinux -o $@ > > -quiet_cmd_uimage = UIMAGE $@.ub > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A microblaze -O linux -T kernel \ > - -C none -n 'Linux-$(KERNELRELEASE)' \ > - -a $(CONFIG_KERNEL_BASE_ADDR) -e $(CONFIG_KERNEL_BASE_ADDR) \ > - -d $@ $@.ub > +UIMAGE_IN = $@ > +UIMAGE_OUT = $@.ub > +UIMAGE_LOADADDR = $(CONFIG_KERNEL_BASE_ADDR) > > $(obj)/simpleImage.%: vmlinux FORCE > $(call if_changed,cp,.unstrip) > diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile > index e4ea31a..58592df 100644 > --- a/arch/sh/boot/Makefile > +++ b/arch/sh/boot/Makefile > @@ -8,8 +8,6 @@ > # Copyright (C) 1999 Stuart Menefy > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > # > # Assign safe dummy values if these variables are not defined, > # in order to suppress error message. > @@ -61,10 +59,8 @@ KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%08x" \ > $(KERNEL_MEMORY) + \ > $(CONFIG_ZERO_PAGE_OFFSET) + $(CONFIG_ENTRY_OFFSET)]') > > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sh -O linux -T kernel \ > - -C $(2) -a $(KERNEL_LOAD) -e $(KERNEL_ENTRY) \ > - -n 'Linux-$(KERNELRELEASE)' -d $< $@ > +UIMAGE_LOADADDR = $(KERNEL_LOAD) > +UIMAGE_ENTRYADDR = $(KERNEL_ENTRY) > > $(obj)/vmlinux.bin: vmlinux FORCE > $(call if_changed,objcopy) > diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile > index 9205416..d56d199 100644 > --- a/arch/sparc/boot/Makefile > +++ b/arch/sparc/boot/Makefile > @@ -5,7 +5,6 @@ > > ROOT_IMG := /usr/src/root.img > ELFTOAOUT := elftoaout > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > > hostprogs-y := piggyback btfixupprep > targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout > @@ -92,11 +91,9 @@ $(obj)/image.bin: $(obj)/image FORCE > $(obj)/image.gz: $(obj)/image.bin > $(call if_changed,gzip) > > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \ > - -C gzip -a $(CONFIG_UBOOT_LOAD_ADDR) \ > - -e $(CONFIG_UBOOT_ENTRY_ADDR) -n 'Linux-$(KERNELRELEASE)' \ > - -d $< $@ > +UIMAGE_LOADADDR = $(CONFIG_UBOOT_LOAD_ADDR) > +UIMAGE_ENTRYADDR = $(CONFIG_UBOOT_ENTRY_ADDR) > +UIMAGE_COMPRESSION = gzip > > quiet_cmd_uimage.o = UIMAGE.O $@ > cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \ > diff --git a/arch/unicore32/boot/Makefile b/arch/unicore32/boot/Makefile > index 79e5f88..ec7fb70 100644 > --- a/arch/unicore32/boot/Makefile > +++ b/arch/unicore32/boot/Makefile > @@ -11,8 +11,6 @@ > # Copyright (C) 2001~2010 GUAN Xue-tao > # > > -MKIMAGE := $(srctree)/scripts/mkuboot.sh > - > targets := Image zImage uImage > > $(obj)/Image: vmlinux FORCE > @@ -26,14 +24,8 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE > $(call if_changed,objcopy) > @echo ' Kernel: $@ is ready' > > -quiet_cmd_uimage = UIMAGE $@ > - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A unicore -O linux -T kernel \ > - -C none -a $(LOADADDR) -e $(STARTADDR) \ > - -n 'Linux-$(KERNELRELEASE)' -d $< $@ > - > -$(obj)/uImage: LOADADDR=0x0 > - > -$(obj)/uImage: STARTADDR=$(LOADADDR) > +UIMAGE_ARCH = unicore > +UIMAGE_LOADADDR = 0x0 > > $(obj)/uImage: $(obj)/zImage FORCE > $(call if_changed,uimage) > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 00c368c..0be6f11 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -304,6 +304,30 @@ cmd_lzo = (cat $(filter-out FORCE,$^) | \ > lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ > (rm -f $@ ; false) > > +# U-Boot mkimage > +# --------------------------------------------------------------------------- > + > +MKIMAGE := $(srctree)/scripts/mkuboot.sh > + > +# SRCARCH just happens to match slightly more than ARCH (on sparc), so reduces > +# the number of overrides in arch makefiles > +UIMAGE_ARCH ?= $(SRCARCH) > +UIMAGE_COMPRESSION ?= $(if $(2),$(2),none) > +UIMAGE_OPTS-y ?= > +UIMAGE_TYPE ?= kernel > +UIMAGE_LOADADDR ?= arch_must_set_this > +UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR) > +UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)' > +UIMAGE_IN ?= $< > +UIMAGE_OUT ?= $@ > + > +quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT) > + cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \ > + -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \ > + -T $(UIMAGE_TYPE) \ > + -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ > + -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT) > + > # XZ > # --------------------------------------------------------------------------- > # Use xzkern to compress the kernel image and xzmisc to compress other things. > -- > 1.7.0.4 > -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday 16 March 2012 17:03:55 Stephen Warren wrote: > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > to avoid duplication. > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > parameterized version in Makefile.lib to avoid duplication. seems to build for Blackfin systems. Tested-by: Mike Frysinger <vapier@gentoo.org> -mike
Stephen Warren wrote: > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > to avoid duplication. > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > parameterized version in Makefile.lib to avoid duplication. > > Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> > --- > v2: > * Fix blackfin's UIMAGE_LOADADDR in the ROMKERNEL case. > * Fix missing ) on a variable reference in avr32 and sparc. > * Only set those UIMAGE_* variables that the arch-specific Makefile hasn't > already set. > * The patch series is now just this single patch which removes duplication; > I've dropped the Kconfig feature to allow use of -T kernel_noload for > now, since it looks like U-Boot is gaining direct zImage support. > > arch/arm/boot/Makefile | 23 +++++++++-------------- > arch/avr32/boot/images/Makefile | 9 +++------ > arch/blackfin/boot/Makefile | 19 ++++++++----------- > arch/microblaze/boot/Makefile | 10 +++------- > arch/sh/boot/Makefile | 8 ++------ > arch/sparc/boot/Makefile | 9 +++------ > arch/unicore32/boot/Makefile | 12 ++---------- > scripts/Makefile.lib | 24 ++++++++++++++++++++++++ > 8 files changed, 54 insertions(+), 60 deletions(-) No problem for Microblaze. Tested-by: Michal Simek <monstr@monstr.eu> Thanks, Michal
On 03/17/2012 05:03 AM, Stephen Warren wrote: > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > to avoid duplication. > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > parameterized version in Makefile.lib to avoid duplication. > > Signed-off-by: Stephen Warren<swarren@wwwdotorg.org> > --- > v2: > * Fix blackfin's UIMAGE_LOADADDR in the ROMKERNEL case. > * Fix missing ) on a variable reference in avr32 and sparc. > * Only set those UIMAGE_* variables that the arch-specific Makefile hasn't > already set. > * The patch series is now just this single patch which removes duplication; > I've dropped the Kconfig feature to allow use of -T kernel_noload for > now, since it looks like U-Boot is gaining direct zImage support. > > Tested on unicore32. Tested-by: Guan Xuetao <gxt@mprc.pku.edu.cn> -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/16/2012 03:03 PM, Stephen Warren wrote: > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > to avoid duplication. > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > parameterized version in Makefile.lib to avoid duplication. Michal, Does this change look reasonable? It has acks from people working on 4 of the 7 affected architectures; would you prefer acks from all? Thanks. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thursday 22 March 2012 14:40:38 Stephen Warren wrote: > On 03/16/2012 03:03 PM, Stephen Warren wrote: > > All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib > > to avoid duplication. > > > > All ARCHs have similar definitions of cmd_uimage. Place a sufficiently > > parameterized version in Makefile.lib to avoid duplication. > > Does this change look reasonable? It has acks from people working on 4 > of the 7 affected architectures; would you prefer acks from all? isn't that what linux-next is for ? ;) -mike
On 22.3.2012 19:40, Stephen Warren wrote: > On 03/16/2012 03:03 PM, Stephen Warren wrote: >> All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib >> to avoid duplication. >> >> All ARCHs have similar definitions of cmd_uimage. Place a sufficiently >> parameterized version in Makefile.lib to avoid duplication. > > Michal, > > Does this change look reasonable? Absolutely. > It has acks from people working on 4 > of the 7 affected architectures; would you prefer acks from all? I will apply it now. Michal -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index fc871e7..c877087 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile @@ -11,8 +11,6 @@ # Copyright (C) 1995-2002 Russell King # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - ifneq ($(MACHINE),) include $(srctree)/$(MACHINE)/Makefile.boot endif @@ -69,22 +67,19 @@ $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) clean-files := *.dtb -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \ - -C none -a $(LOADADDR) -e $(STARTADDR) \ - -n 'Linux-$(KERNELRELEASE)' -d $< $@ - -ifeq ($(CONFIG_ZBOOT_ROM),y) -$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) +ifneq ($(LOADADDR),) + UIMAGE_LOADADDR=$(LOADADDR) else -$(obj)/uImage: LOADADDR=$(ZRELADDR) + ifeq ($(CONFIG_ZBOOT_ROM),y) + UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) + else + UIMAGE_LOADADDR=$(ZRELADDR) + endif endif -$(obj)/uImage: STARTADDR=$(LOADADDR) - check_for_multiple_loadaddr = \ -if [ $(words $(LOADADDR)) -gt 1 ]; then \ - echo 'multiple load addresses: $(LOADADDR)'; \ +if [ $(words $(UIMAGE_LOADADDR)) -gt 1 ]; then \ + echo 'multiple load addresses: $(UIMAGE_LOADADDR)'; \ echo 'This is incompatible with uImages'; \ echo 'Specify LOADADDR on the commandline to build an uImage'; \ false; \ diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile index 1848bf0..2a3b539 100644 --- a/arch/avr32/boot/images/Makefile +++ b/arch/avr32/boot/images/Makefile @@ -6,8 +6,6 @@ # for more details. # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - extra-y := vmlinux.bin vmlinux.gz OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id @@ -17,10 +15,9 @@ $(obj)/vmlinux.bin: vmlinux FORCE $(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE $(call if_changed,gzip) -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A avr32 -O linux -T kernel \ - -C gzip -a $(CONFIG_LOAD_ADDRESS) -e $(CONFIG_ENTRY_ADDRESS) \ - -n 'Linux-$(KERNELRELEASE)' -d $< $@ +UIMAGE_LOADADDR = $(CONFIG_LOAD_ADDRESS) +UIMAGE_ENTRYADDR = $(CONFIG_ENTRY_ADDRESS) +UIMAGE_COMPRESSION = gzip targets += uImage uImage.srec $(obj)/uImage: $(obj)/vmlinux.gz diff --git a/arch/blackfin/boot/Makefile b/arch/blackfin/boot/Makefile index 0a49279..f7d27d5 100644 --- a/arch/blackfin/boot/Makefile +++ b/arch/blackfin/boot/Makefile @@ -6,20 +6,17 @@ # for more details. # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - targets := vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma vmImage.lzo vmImage.xip extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.xip -UIMAGE_OPTS-y := -UIMAGE_OPTS-$(CONFIG_RAMKERNEL) += -a $(CONFIG_BOOT_LOAD) -UIMAGE_OPTS-$(CONFIG_ROMKERNEL) += -a $(CONFIG_ROM_BASE) -x - -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \ - -C $(2) -n '$(CPU_REV)-$(KERNELRELEASE)' \ - -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \ - $(UIMAGE_OPTS-y) -d $< $@ +ifeq ($(CONFIG_RAMKERNEL),y) +UIMAGE_LOADADDR = $(CONFIG_BOOT_LOAD) +else # CONFIG_ROMKERNEL must be set +UIMAGE_LOADADDR = $(CONFIG_ROM_BASE) +endif +UIMAGE_ENTRYADDR = $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') +UIMAGE_NAME = '$(CPU_REV)-$(KERNELRELEASE)' +UIMAGE_OPTS-$(CONFIG_ROMKERNEL) += -x $(obj)/vmlinux.bin: vmlinux FORCE $(call if_changed,objcopy) diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile index 0c796cf..ca76ecd 100644 --- a/arch/microblaze/boot/Makefile +++ b/arch/microblaze/boot/Makefile @@ -2,8 +2,6 @@ # arch/microblaze/boot/Makefile # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - obj-y += linked_dtb.o targets := linux.bin linux.bin.gz simpleImage.% @@ -35,11 +33,9 @@ quiet_cmd_strip = STRIP $@ cmd_strip = $(STRIP) -K microblaze_start -K _end -K __log_buf \ -K _fdt_start vmlinux -o $@ -quiet_cmd_uimage = UIMAGE $@.ub - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A microblaze -O linux -T kernel \ - -C none -n 'Linux-$(KERNELRELEASE)' \ - -a $(CONFIG_KERNEL_BASE_ADDR) -e $(CONFIG_KERNEL_BASE_ADDR) \ - -d $@ $@.ub +UIMAGE_IN = $@ +UIMAGE_OUT = $@.ub +UIMAGE_LOADADDR = $(CONFIG_KERNEL_BASE_ADDR) $(obj)/simpleImage.%: vmlinux FORCE $(call if_changed,cp,.unstrip) diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile index e4ea31a..58592df 100644 --- a/arch/sh/boot/Makefile +++ b/arch/sh/boot/Makefile @@ -8,8 +8,6 @@ # Copyright (C) 1999 Stuart Menefy # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - # # Assign safe dummy values if these variables are not defined, # in order to suppress error message. @@ -61,10 +59,8 @@ KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%08x" \ $(KERNEL_MEMORY) + \ $(CONFIG_ZERO_PAGE_OFFSET) + $(CONFIG_ENTRY_OFFSET)]') -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sh -O linux -T kernel \ - -C $(2) -a $(KERNEL_LOAD) -e $(KERNEL_ENTRY) \ - -n 'Linux-$(KERNELRELEASE)' -d $< $@ +UIMAGE_LOADADDR = $(KERNEL_LOAD) +UIMAGE_ENTRYADDR = $(KERNEL_ENTRY) $(obj)/vmlinux.bin: vmlinux FORCE $(call if_changed,objcopy) diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile index 9205416..d56d199 100644 --- a/arch/sparc/boot/Makefile +++ b/arch/sparc/boot/Makefile @@ -5,7 +5,6 @@ ROOT_IMG := /usr/src/root.img ELFTOAOUT := elftoaout -MKIMAGE := $(srctree)/scripts/mkuboot.sh hostprogs-y := piggyback btfixupprep targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout @@ -92,11 +91,9 @@ $(obj)/image.bin: $(obj)/image FORCE $(obj)/image.gz: $(obj)/image.bin $(call if_changed,gzip) -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \ - -C gzip -a $(CONFIG_UBOOT_LOAD_ADDR) \ - -e $(CONFIG_UBOOT_ENTRY_ADDR) -n 'Linux-$(KERNELRELEASE)' \ - -d $< $@ +UIMAGE_LOADADDR = $(CONFIG_UBOOT_LOAD_ADDR) +UIMAGE_ENTRYADDR = $(CONFIG_UBOOT_ENTRY_ADDR) +UIMAGE_COMPRESSION = gzip quiet_cmd_uimage.o = UIMAGE.O $@ cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \ diff --git a/arch/unicore32/boot/Makefile b/arch/unicore32/boot/Makefile index 79e5f88..ec7fb70 100644 --- a/arch/unicore32/boot/Makefile +++ b/arch/unicore32/boot/Makefile @@ -11,8 +11,6 @@ # Copyright (C) 2001~2010 GUAN Xue-tao # -MKIMAGE := $(srctree)/scripts/mkuboot.sh - targets := Image zImage uImage $(obj)/Image: vmlinux FORCE @@ -26,14 +24,8 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE $(call if_changed,objcopy) @echo ' Kernel: $@ is ready' -quiet_cmd_uimage = UIMAGE $@ - cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A unicore -O linux -T kernel \ - -C none -a $(LOADADDR) -e $(STARTADDR) \ - -n 'Linux-$(KERNELRELEASE)' -d $< $@ - -$(obj)/uImage: LOADADDR=0x0 - -$(obj)/uImage: STARTADDR=$(LOADADDR) +UIMAGE_ARCH = unicore +UIMAGE_LOADADDR = 0x0 $(obj)/uImage: $(obj)/zImage FORCE $(call if_changed,uimage) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 00c368c..0be6f11 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -304,6 +304,30 @@ cmd_lzo = (cat $(filter-out FORCE,$^) | \ lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ (rm -f $@ ; false) +# U-Boot mkimage +# --------------------------------------------------------------------------- + +MKIMAGE := $(srctree)/scripts/mkuboot.sh + +# SRCARCH just happens to match slightly more than ARCH (on sparc), so reduces +# the number of overrides in arch makefiles +UIMAGE_ARCH ?= $(SRCARCH) +UIMAGE_COMPRESSION ?= $(if $(2),$(2),none) +UIMAGE_OPTS-y ?= +UIMAGE_TYPE ?= kernel +UIMAGE_LOADADDR ?= arch_must_set_this +UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR) +UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)' +UIMAGE_IN ?= $< +UIMAGE_OUT ?= $@ + +quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT) + cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \ + -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \ + -T $(UIMAGE_TYPE) \ + -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ + -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT) + # XZ # --------------------------------------------------------------------------- # Use xzkern to compress the kernel image and xzmisc to compress other things.
All ARCHs have the same definition of MKIMAGE. Move it to Makefile.lib to avoid duplication. All ARCHs have similar definitions of cmd_uimage. Place a sufficiently parameterized version in Makefile.lib to avoid duplication. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> --- v2: * Fix blackfin's UIMAGE_LOADADDR in the ROMKERNEL case. * Fix missing ) on a variable reference in avr32 and sparc. * Only set those UIMAGE_* variables that the arch-specific Makefile hasn't already set. * The patch series is now just this single patch which removes duplication; I've dropped the Kconfig feature to allow use of -T kernel_noload for now, since it looks like U-Boot is gaining direct zImage support. arch/arm/boot/Makefile | 23 +++++++++-------------- arch/avr32/boot/images/Makefile | 9 +++------ arch/blackfin/boot/Makefile | 19 ++++++++----------- arch/microblaze/boot/Makefile | 10 +++------- arch/sh/boot/Makefile | 8 ++------ arch/sparc/boot/Makefile | 9 +++------ arch/unicore32/boot/Makefile | 12 ++---------- scripts/Makefile.lib | 24 ++++++++++++++++++++++++ 8 files changed, 54 insertions(+), 60 deletions(-)