80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 234ef25344b567b3b8dad62c0863ebe16377528f Mon Sep 17 00:00:00 2001
 | 
						|
From: Daniel Hellstrom <daniel@gaisler.com>
 | 
						|
Date: Tue, 14 Sep 2010 11:26:55 +0200
 | 
						|
Subject: [PATCH] SPARC: added U-Boot build target: uImage
 | 
						|
 | 
						|
---
 | 
						|
 arch/sparc/Makefile      |    3 ++-
 | 
						|
 arch/sparc/boot/Makefile |   35 +++++++++++++++++++++++++++++++++++
 | 
						|
 2 files changed, 37 insertions(+), 1 deletions(-)
 | 
						|
 | 
						|
--- a/arch/sparc/Makefile
 | 
						|
+++ b/arch/sparc/Makefile
 | 
						|
@@ -88,7 +88,7 @@ boot := arch/sparc/boot
 | 
						|
 # Default target
 | 
						|
 all: zImage
 | 
						|
 
 | 
						|
-image zImage tftpboot.img vmlinux.aout: vmlinux
 | 
						|
+image zImage uImage tftpboot.img vmlinux.aout: vmlinux
 | 
						|
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 | 
						|
 
 | 
						|
 archclean:
 | 
						|
@@ -102,6 +102,7 @@ ifeq ($(ARCH),sparc)
 | 
						|
 define archhelp
 | 
						|
   echo  '* image        - kernel image ($(boot)/image)'
 | 
						|
   echo  '* zImage       - stripped kernel image ($(boot)/zImage)'
 | 
						|
+  echo  '  uImage       - U-Boot SPARC32/LEON Image'
 | 
						|
   echo  '  tftpboot.img - image prepared for tftp'
 | 
						|
 endef
 | 
						|
 else
 | 
						|
--- a/arch/sparc/boot/Makefile
 | 
						|
+++ b/arch/sparc/boot/Makefile
 | 
						|
@@ -5,6 +5,7 @@
 | 
						|
 
 | 
						|
 ROOT_IMG	:= /usr/src/root.img
 | 
						|
 ELFTOAOUT	:= elftoaout
 | 
						|
+MKIMAGE 	:= $(srctree)/scripts/mkuboot.sh
 | 
						|
 
 | 
						|
 hostprogs-y	:= piggyback_32 piggyback_64 btfixupprep
 | 
						|
 targets		:= tftpboot.img btfix.o btfix.S image zImage vmlinux.aout
 | 
						|
@@ -90,5 +91,39 @@ $(obj)/tftpboot.img: $(obj)/image $(obj)
 | 
						|
 $(obj)/vmlinux.aout: vmlinux FORCE
 | 
						|
 	$(call if_changed,elftoaout)
 | 
						|
 	@echo '  kernel: $@ is ready'
 | 
						|
+else
 | 
						|
+
 | 
						|
+# The following lines make a readable image for U-Boot.
 | 
						|
+#  uImage   - Binary file read by U-boot
 | 
						|
+#  uImage.o - object file of uImage for loading with a
 | 
						|
+#             flash programmer understanding ELF.
 | 
						|
+
 | 
						|
+OBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment
 | 
						|
+$(obj)/image.bin: $(obj)/image FORCE
 | 
						|
+	$(call if_changed,objcopy)
 | 
						|
+
 | 
						|
+$(obj)/image.gz: $(obj)/image.bin
 | 
						|
+	$(call if_changed,gzip)
 | 
						|
+
 | 
						|
+# Start of Main memory
 | 
						|
+ifndef UIMAGE_LOADADDR
 | 
						|
+UIMAGE_LOADADDR=0x40004000
 | 
						|
 endif
 | 
						|
 
 | 
						|
+# The first sector after the U-Boot image (256k)
 | 
						|
+ifndef UIMAGE_FLASHADDR
 | 
						|
+UIMAGE_FLASHADDR=0x00040000
 | 
						|
+endif
 | 
						|
+
 | 
						|
+quiet_cmd_uimage = UIMAGE  $@
 | 
						|
+      cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \
 | 
						|
+               -C gzip -a $(UIMAGE_LOADADDR) -e 0xf0004000 -n 'Linux-$(KERNELRELEASE)' \
 | 
						|
+               -d $< $@
 | 
						|
+
 | 
						|
+targets += uImage
 | 
						|
+$(obj)/uImage: $(obj)/image.gz
 | 
						|
+	$(call if_changed,uimage)
 | 
						|
+	$(LD) -Tdata $(UIMAGE_FLASHADDR) -r -b binary arch/sparc/boot/uImage -o arch/sparc/boot/uImage.o
 | 
						|
+	@echo '  Image $@ is ready'
 | 
						|
+
 | 
						|
+endif
 |