aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2011-01-26 01:36:35 -0500
committerDavid S. Miller <davem@davemloft.net>2011-03-16 21:19:04 -0400
commit684151a75bf25f5aeb8a23010da91a34e17b7353 (patch)
treea738b589dfaf8a524a606a7b26f0f2a8d34bdd90 /arch
parent44ed3c0c47906297924c3fde801dc160f6996f7c (diff)
sparc32: added U-Boot build target: uImage
This is only for LEON as u-boot for SPARC only supports LEON. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc/Kconfig33
-rw-r--r--arch/sparc/Makefile3
-rw-r--r--arch/sparc/boot/Makefile31
3 files changed, 66 insertions, 1 deletions
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 13d2b6721da2..e48f471be547 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -461,6 +461,39 @@ config SPARC_LEON
461 from www.gaisler.com. You can download a sparc-linux cross-compilation 461 from www.gaisler.com. You can download a sparc-linux cross-compilation
462 toolchain at www.gaisler.com. 462 toolchain at www.gaisler.com.
463 463
464if SPARC_LEON
465menu "U-Boot options"
466
467config UBOOT_LOAD_ADDR
468 hex "uImage Load Address"
469 default 0x40004000
470 ---help---
471 U-Boot kernel load address, the address in physical address space
472 where u-boot will place the Linux kernel before booting it.
473 This address is normally the base address of main memory + 0x4000.
474
475config UBOOT_FLASH_ADDR
476 hex "uImage.o Load Address"
477 default 0x00080000
478 ---help---
479 Optional setting only affecting the uImage.o ELF-image used to
480 download the uImage file to the target using a ELF-loader other than
481 U-Boot. It may for example be used to download an uImage to FLASH with
482 the GRMON utility before even starting u-boot.
483
484config UBOOT_ENTRY_ADDR
485 hex "uImage Entry Address"
486 default 0xf0004000
487 ---help---
488 Do not change this unless you know what you're doing. This is
489 hardcoded by the SPARC32 and LEON port.
490
491 This is the virtual address u-boot jumps to when booting the Linux
492 Kernel.
493
494endmenu
495endif
496
464endmenu 497endmenu
465 498
466menu "Bus options (PCI etc.)" 499menu "Bus options (PCI etc.)"
diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
index 113225b241e0..ad1fb5d969f3 100644
--- a/arch/sparc/Makefile
+++ b/arch/sparc/Makefile
@@ -88,7 +88,7 @@ boot := arch/sparc/boot
88# Default target 88# Default target
89all: zImage 89all: zImage
90 90
91image zImage tftpboot.img vmlinux.aout: vmlinux 91image zImage uImage tftpboot.img vmlinux.aout: vmlinux
92 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 92 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
93 93
94archclean: 94archclean:
@@ -102,6 +102,7 @@ ifeq ($(ARCH),sparc)
102define archhelp 102define archhelp
103 echo '* image - kernel image ($(boot)/image)' 103 echo '* image - kernel image ($(boot)/image)'
104 echo '* zImage - stripped kernel image ($(boot)/zImage)' 104 echo '* zImage - stripped kernel image ($(boot)/zImage)'
105 echo ' uImage - U-Boot SPARC32 Image (only for LEON)'
105 echo ' tftpboot.img - image prepared for tftp' 106 echo ' tftpboot.img - image prepared for tftp'
106endef 107endef
107else 108else
diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
index a2c5898c1ab1..9205416b1e67 100644
--- a/arch/sparc/boot/Makefile
+++ b/arch/sparc/boot/Makefile
@@ -5,6 +5,7 @@
5 5
6ROOT_IMG := /usr/src/root.img 6ROOT_IMG := /usr/src/root.img
7ELFTOAOUT := elftoaout 7ELFTOAOUT := elftoaout
8MKIMAGE := $(srctree)/scripts/mkuboot.sh
8 9
9hostprogs-y := piggyback btfixupprep 10hostprogs-y := piggyback btfixupprep
10targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout 11targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout
@@ -77,6 +78,36 @@ $(obj)/zImage: $(obj)/image
77$(obj)/vmlinux.aout: vmlinux FORCE 78$(obj)/vmlinux.aout: vmlinux FORCE
78 $(call if_changed,elftoaout) 79 $(call if_changed,elftoaout)
79 @echo ' kernel: $@ is ready' 80 @echo ' kernel: $@ is ready'
81else
82
83# The following lines make a readable image for U-Boot.
84# uImage - Binary file read by U-boot
85# uImage.o - object file of uImage for loading with a
86# flash programmer understanding ELF.
87
88OBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment
89$(obj)/image.bin: $(obj)/image FORCE
90 $(call if_changed,objcopy)
91
92$(obj)/image.gz: $(obj)/image.bin
93 $(call if_changed,gzip)
94
95quiet_cmd_uimage = UIMAGE $@
96 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \
97 -C gzip -a $(CONFIG_UBOOT_LOAD_ADDR) \
98 -e $(CONFIG_UBOOT_ENTRY_ADDR) -n 'Linux-$(KERNELRELEASE)' \
99 -d $< $@
100
101quiet_cmd_uimage.o = UIMAGE.O $@
102 cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \
103 -r -b binary $@ -o $@.o
104
105targets += uImage
106$(obj)/uImage: $(obj)/image.gz
107 $(call if_changed,uimage)
108 $(call if_changed,uimage.o)
109 @echo ' Image $@ is ready'
110
80endif 111endif
81 112
82$(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE 113$(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE