Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: Add uImage build target

Add a uImage build target for MIPS, which builds uImage.gz (a U-Boot
image of vmlinux.bin.gz), and then symlinks it to uImage. This allows
for the use of other compression algorithms in future, and is how a few
other architectures do it.

It's enabled conditionally on load-y >= 0xffffffff80000000 which
hopefully allows 64bit kernels to also work as long as the load and
entry address can be represented by the 32bit addresses in the U-Boot
image format.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5795/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

James Hogan and committed by
Ralf Baechle
4defe455 3185557d

+22
+6
arch/mips/Makefile
··· 263 263 boot-y := vmlinux.bin 264 264 boot-y += vmlinux.ecoff 265 265 boot-y += vmlinux.srec 266 + ifeq ($(shell expr $(load-y) \< 0xffffffff80000000 2> /dev/null), 0) 267 + boot-y += uImage 268 + boot-y += uImage.gz 269 + endif 266 270 267 271 # compressed boot image targets (arch/mips/boot/compressed/) 268 272 bootz-y := vmlinuz ··· 345 341 echo ' vmlinuz.ecoff - ECOFF zboot image' 346 342 echo ' vmlinuz.bin - Raw binary zboot image' 347 343 echo ' vmlinuz.srec - SREC zboot image' 344 + echo ' uImage - U-Boot image' 345 + echo ' uImage.gz - U-Boot image (gzip)' 348 346 echo 349 347 echo ' These will be default as appropriate for a configured platform.' 350 348 endef
+1
arch/mips/boot/.gitignore
··· 4 4 zImage 5 5 zImage.tmp 6 6 calc_vmlinuz_load_addr 7 + uImage
+15
arch/mips/boot/Makefile
··· 40 40 cmd_srec = $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $@ 41 41 $(obj)/vmlinux.srec: $(VMLINUX) FORCE 42 42 $(call if_changed,srec) 43 + 44 + UIMAGE_LOADADDR = $(VMLINUX_LOAD_ADDRESS) 45 + UIMAGE_ENTRYADDR = $(VMLINUX_ENTRY_ADDRESS) 46 + 47 + $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE 48 + $(call if_changed,gzip) 49 + 50 + targets += uImage.gz 51 + $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE 52 + $(call if_changed,uimage,gzip) 53 + 54 + targets += uImage 55 + $(obj)/uImage: $(obj)/uImage.gz FORCE 56 + @ln -sf $(notdir $<) $@ 57 + @echo ' Image $@ is ready'