sh: Add uImage and S-rec generation support.
authorPaul Mundt <lethal@linux-sh.org>
Thu, 7 Dec 2006 08:00:32 +0000 (17:00 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 11 Dec 2006 23:42:07 +0000 (08:42 +0900)
Add a couple of new targets, both for uImage and S-rec generation.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/Makefile
arch/sh/boot/Makefile
arch/sh/boot/compressed/Makefile

index d10bba5e1074bef182503c598125ef0fa963a7d8..c1dbef21263430f68ba594d2b3d893063732cc11 100644 (file)
@@ -179,7 +179,7 @@ maketools:  include/linux/version.h FORCE
 
 all: zImage
 
-zImage: vmlinux
+zImage uImage uImage.srec vmlinux.srec: vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
 compressed: zImage
@@ -190,5 +190,8 @@ archclean:
 CLEAN_FILES += include/asm-sh/machtypes.h
 
 define archhelp
-       @echo '  zImage                    - Compressed kernel image (arch/sh/boot/zImage)'
+       @echo '* zImage                    - Compressed kernel image'
+       @echo '  vmlinux.srec              - Create an ELF S-record'
+       @echo '  uImage                    - Create a bootable image for U-Boot'
+       @echo '  uImage.srec               - Create an S-record for U-Boot'
 endef
index 60797b31089ce79dbd4fbe68a37df2bd735a266a..11dc272c618ef0f559fd12568a893047179f0cf1 100644 (file)
@@ -8,13 +8,49 @@
 # Copyright (C) 1999 Stuart Menefy
 #
 
-targets := zImage
+MKIMAGE := $(srctree)/scripts/mkuboot.sh
+
+#
+# Assign safe dummy values if these variables are not defined,
+# in order to suppress error message.
+#
+CONFIG_PAGE_OFFSET     ?= 0x80000000
+CONFIG_MEMORY_START    ?= 0x0c000000
+CONFIG_BOOT_LINK_OFFSET        ?= 0x00800000
+CONFIG_ZERO_PAGE_OFFSET        ?= 0x00001000
+
+export CONFIG_PAGE_OFFSET CONFIG_MEMORY_START CONFIG_BOOT_LINK_OFFSET \
+       CONFIG_ZERO_PAGE_OFFSET
+
+targets := zImage vmlinux.srec uImage uImage.srec
 subdir- := compressed
 
 $(obj)/zImage: $(obj)/compressed/vmlinux FORCE
        $(call if_changed,objcopy)
-       @echo 'Kernel: $@ is ready'
+       @echo '  Kernel: $@ is ready'
 
 $(obj)/compressed/vmlinux: FORCE
        $(Q)$(MAKE) $(build)=$(obj)/compressed $@
 
+KERNEL_LOAD    := $(shell printf "0x%8x" $$[$(CONFIG_PAGE_OFFSET)  + \
+                                            $(CONFIG_MEMORY_START) + \
+                                            $(CONFIG_ZERO_PAGE_OFFSET)+0x1000])
+
+quiet_cmd_uimage = UIMAGE  $@
+      cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sh -O linux -T kernel \
+                  -C gzip -a $(KERNEL_LOAD) -e $(KERNEL_LOAD) \
+                  -n 'Linux-$(KERNELRELEASE)' -d $< $@
+
+$(obj)/uImage: $(obj)/zImage FORCE
+       $(call if_changed,uimage)
+       @echo '  Image $@ is ready'
+
+OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec
+$(obj)/vmlinux.srec: $(obj)/compressed/vmlinux
+       $(call if_changed,objcopy)
+
+OBJCOPYFLAGS_uImage.srec := -I binary -O srec
+$(obj)/uImage.srec: $(obj)/uImage
+       $(call if_changed,objcopy)
+
+clean-files    += uImage uImage.srec vmlinux.srec
index e5f4437900794a66874de91e62a557572f5b0e81..d9512416f88500847acff0eae59a90a8c3a092e1 100644 (file)
@@ -15,13 +15,7 @@ endif
 
 #
 # IMAGE_OFFSET is the load offset of the compression loader
-# Assign dummy values if these 2 variables are not defined,
-# in order to suppress error message.
 #
-CONFIG_PAGE_OFFSET     ?= 0x80000000
-CONFIG_MEMORY_START     ?= 0x0c000000
-CONFIG_BOOT_LINK_OFFSET ?= 0x00800000
-
 IMAGE_OFFSET   := $(shell printf "0x%08x" $$[$(CONFIG_PAGE_OFFSET)  + \
                                              $(CONFIG_MEMORY_START) + \
                                              $(CONFIG_BOOT_LINK_OFFSET)])