xref: /linux/arch/arm/boot/Makefile (revision c6bbfbb729e88188b7c9113d58647766db03f1d4)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# arch/arm/boot/Makefile
31da177e4SLinus Torvalds#
44f193362SPaul Smith# This file is included by the global makefile so that you can add your own
54f193362SPaul Smith# architecture-specific flags and dependencies.
64f193362SPaul Smith#
71da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public
81da177e4SLinus Torvalds# License.  See the file "COPYING" in the main directory of this archive
91da177e4SLinus Torvalds# for more details.
101da177e4SLinus Torvalds#
111da177e4SLinus Torvalds# Copyright (C) 1995-2002 Russell King
121da177e4SLinus Torvalds#
131da177e4SLinus Torvalds
141da177e4SLinus Torvaldsifneq ($(MACHINE),)
157aacad53SMasahiro Yamadainclude $(MACHINE)/Makefile.boot
161da177e4SLinus Torvaldsendif
171da177e4SLinus Torvalds
181da177e4SLinus Torvalds# Note: the following conditions must always be true:
199e84ed63SRussell King#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
201da177e4SLinus Torvalds#   PARAMS_PHYS must be within 4MB of ZRELADDR
211da177e4SLinus Torvalds#   INITRD_PHYS must be in RAM
229e84ed63SRussell KingZRELADDR    := $(zreladdr-y)
231da177e4SLinus TorvaldsPARAMS_PHYS := $(params_phys-y)
241da177e4SLinus TorvaldsINITRD_PHYS := $(initrd_phys-y)
251da177e4SLinus Torvalds
269e84ed63SRussell Kingexport ZRELADDR INITRD_PHYS PARAMS_PHYS
271da177e4SLinus Torvalds
281da177e4SLinus Torvaldstargets := Image zImage xipImage bootpImage uImage
291da177e4SLinus Torvalds
301da177e4SLinus Torvaldsifeq ($(CONFIG_XIP_KERNEL),y)
311da177e4SLinus Torvalds
321da177e4SLinus Torvalds$(obj)/xipImage: vmlinux FORCE
331da177e4SLinus Torvalds	$(call if_changed,objcopy)
34*c6bbfbb7SMasahiro Yamada	@$(kecho) '  Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
351da177e4SLinus Torvalds
361da177e4SLinus Torvalds$(obj)/Image $(obj)/zImage: FORCE
371da177e4SLinus Torvalds	@echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
381da177e4SLinus Torvalds	@echo 'Only the xipImage target is available in this case'
391da177e4SLinus Torvalds	@false
401da177e4SLinus Torvalds
411da177e4SLinus Torvaldselse
421da177e4SLinus Torvalds
431da177e4SLinus Torvalds$(obj)/xipImage: FORCE
441da177e4SLinus Torvalds	@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
451da177e4SLinus Torvalds	@false
461da177e4SLinus Torvalds
471da177e4SLinus Torvalds$(obj)/Image: vmlinux FORCE
481da177e4SLinus Torvalds	$(call if_changed,objcopy)
491da177e4SLinus Torvalds
501da177e4SLinus Torvalds$(obj)/compressed/vmlinux: $(obj)/Image FORCE
511da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
521da177e4SLinus Torvalds
531da177e4SLinus Torvalds$(obj)/zImage:	$(obj)/compressed/vmlinux FORCE
541da177e4SLinus Torvalds	$(call if_changed,objcopy)
551da177e4SLinus Torvalds
561da177e4SLinus Torvaldsendif
571da177e4SLinus Torvalds
58e3393645SStephen Warrenifneq ($(LOADADDR),)
59e3393645SStephen Warren  UIMAGE_LOADADDR=$(LOADADDR)
600f980146SUwe Kleine-Königelse
61e3393645SStephen Warren  ifeq ($(CONFIG_ZBOOT_ROM),y)
62e3393645SStephen Warren    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
63e3393645SStephen Warren  else
64e3393645SStephen Warren    UIMAGE_LOADADDR=$(ZRELADDR)
65e3393645SStephen Warren  endif
660f980146SUwe Kleine-Königendif
670f980146SUwe Kleine-König
68cd227fbfSSascha Hauercheck_for_multiple_loadaddr = \
69938f94cdSOlof Johanssonif [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
70938f94cdSOlof Johansson	echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
71cd227fbfSSascha Hauer	echo 'This is incompatible with uImages'; \
72cd227fbfSSascha Hauer	echo 'Specify LOADADDR on the commandline to build an uImage'; \
73cd227fbfSSascha Hauer	false; \
74cd227fbfSSascha Hauerfi
75cd227fbfSSascha Hauer
761da177e4SLinus Torvalds$(obj)/uImage:	$(obj)/zImage FORCE
77cd227fbfSSascha Hauer	@$(check_for_multiple_loadaddr)
781da177e4SLinus Torvalds	$(call if_changed,uimage)
791da177e4SLinus Torvalds
801da177e4SLinus Torvalds$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
811da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
841da177e4SLinus Torvalds	$(call if_changed,objcopy)
851da177e4SLinus Torvalds
86bc5ce155SMasahiro YamadaPHONY += initrd install zinstall uinstall
871da177e4SLinus Torvaldsinitrd:
881da177e4SLinus Torvalds	@test "$(INITRD_PHYS)" != "" || \
891da177e4SLinus Torvalds	(echo This machine does not support INITRD; exit -1)
901da177e4SLinus Torvalds	@test "$(INITRD)" != "" || \
911da177e4SLinus Torvalds	(echo You must specify INITRD; exit -1)
921da177e4SLinus Torvalds
9319514fc6SRobert Richterinstall:
9419514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
951da177e4SLinus Torvalds	$(obj)/Image System.map "$(INSTALL_PATH)"
961da177e4SLinus Torvalds
9719514fc6SRobert Richterzinstall:
9819514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
991da177e4SLinus Torvalds	$(obj)/zImage System.map "$(INSTALL_PATH)"
1001da177e4SLinus Torvalds
10119514fc6SRobert Richteruinstall:
10219514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
103a65d2922SRussell King	$(obj)/uImage System.map "$(INSTALL_PATH)"
104a65d2922SRussell King
1059e25fe6bSNishanth Menonsubdir-	    := bootp compressed dts
106