xref: /linux/arch/arm/boot/Makefile (revision ca8b5d97d6bfd2d24cec053bbbe35cf356bec4e3)
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
143cb59581SMark RutlandOBJCOPYFLAGS	:=-O binary -R .comment -S
153cb59581SMark Rutland
161da177e4SLinus Torvaldsifneq ($(MACHINE),)
177aacad53SMasahiro Yamadainclude $(MACHINE)/Makefile.boot
181da177e4SLinus Torvaldsendif
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds# Note: the following conditions must always be true:
219e84ed63SRussell King#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
221da177e4SLinus Torvalds#   PARAMS_PHYS must be within 4MB of ZRELADDR
231da177e4SLinus Torvalds#   INITRD_PHYS must be in RAM
249e84ed63SRussell KingZRELADDR    := $(zreladdr-y)
251da177e4SLinus TorvaldsPARAMS_PHYS := $(params_phys-y)
261da177e4SLinus TorvaldsINITRD_PHYS := $(initrd_phys-y)
271da177e4SLinus Torvalds
289e84ed63SRussell Kingexport ZRELADDR INITRD_PHYS PARAMS_PHYS
291da177e4SLinus Torvalds
301da177e4SLinus Torvaldstargets := Image zImage xipImage bootpImage uImage
311da177e4SLinus Torvalds
321da177e4SLinus Torvaldsifeq ($(CONFIG_XIP_KERNEL),y)
331da177e4SLinus Torvalds
34*ca8b5d97SNicolas Pitrecmd_deflate_xip_data = $(CONFIG_SHELL) -c \
35*ca8b5d97SNicolas Pitre	'$(srctree)/$(src)/deflate_xip_data.sh $< $@ || { rm -f $@; false; }'
36*ca8b5d97SNicolas Pitre
37*ca8b5d97SNicolas Pitreifeq ($(CONFIG_XIP_DEFLATED_DATA),y)
38*ca8b5d97SNicolas Pitrequiet_cmd_mkxip = XIPZ    $@
39*ca8b5d97SNicolas Pitrecmd_mkxip = $(cmd_objcopy) && $(cmd_deflate_xip_data)
40*ca8b5d97SNicolas Pitreelse
41*ca8b5d97SNicolas Pitrequiet_cmd_mkxip = $(quiet_cmd_objcopy)
42*ca8b5d97SNicolas Pitrecmd_mkxip = $(cmd_objcopy)
43*ca8b5d97SNicolas Pitreendif
44*ca8b5d97SNicolas Pitre
451da177e4SLinus Torvalds$(obj)/xipImage: vmlinux FORCE
46*ca8b5d97SNicolas Pitre	$(call if_changed,mkxip)
47c6bbfbb7SMasahiro Yamada	@$(kecho) '  Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds$(obj)/Image $(obj)/zImage: FORCE
501da177e4SLinus Torvalds	@echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
511da177e4SLinus Torvalds	@echo 'Only the xipImage target is available in this case'
521da177e4SLinus Torvalds	@false
531da177e4SLinus Torvalds
541da177e4SLinus Torvaldselse
551da177e4SLinus Torvalds
561da177e4SLinus Torvalds$(obj)/xipImage: FORCE
571da177e4SLinus Torvalds	@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
581da177e4SLinus Torvalds	@false
591da177e4SLinus Torvalds
601da177e4SLinus Torvalds$(obj)/Image: vmlinux FORCE
611da177e4SLinus Torvalds	$(call if_changed,objcopy)
621da177e4SLinus Torvalds
631da177e4SLinus Torvalds$(obj)/compressed/vmlinux: $(obj)/Image FORCE
641da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
651da177e4SLinus Torvalds
661da177e4SLinus Torvalds$(obj)/zImage:	$(obj)/compressed/vmlinux FORCE
671da177e4SLinus Torvalds	$(call if_changed,objcopy)
681da177e4SLinus Torvalds
691da177e4SLinus Torvaldsendif
701da177e4SLinus Torvalds
71e3393645SStephen Warrenifneq ($(LOADADDR),)
72e3393645SStephen Warren  UIMAGE_LOADADDR=$(LOADADDR)
730f980146SUwe Kleine-Königelse
74e3393645SStephen Warren  ifeq ($(CONFIG_ZBOOT_ROM),y)
75e3393645SStephen Warren    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
76e3393645SStephen Warren  else
77e3393645SStephen Warren    UIMAGE_LOADADDR=$(ZRELADDR)
78e3393645SStephen Warren  endif
790f980146SUwe Kleine-Königendif
800f980146SUwe Kleine-König
81cd227fbfSSascha Hauercheck_for_multiple_loadaddr = \
82938f94cdSOlof Johanssonif [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
83938f94cdSOlof Johansson	echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
84cd227fbfSSascha Hauer	echo 'This is incompatible with uImages'; \
85cd227fbfSSascha Hauer	echo 'Specify LOADADDR on the commandline to build an uImage'; \
86cd227fbfSSascha Hauer	false; \
87cd227fbfSSascha Hauerfi
88cd227fbfSSascha Hauer
891da177e4SLinus Torvalds$(obj)/uImage:	$(obj)/zImage FORCE
90cd227fbfSSascha Hauer	@$(check_for_multiple_loadaddr)
911da177e4SLinus Torvalds	$(call if_changed,uimage)
921da177e4SLinus Torvalds
931da177e4SLinus Torvalds$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
941da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
951da177e4SLinus Torvalds
961da177e4SLinus Torvalds$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
971da177e4SLinus Torvalds	$(call if_changed,objcopy)
981da177e4SLinus Torvalds
99bc5ce155SMasahiro YamadaPHONY += initrd install zinstall uinstall
1001da177e4SLinus Torvaldsinitrd:
1011da177e4SLinus Torvalds	@test "$(INITRD_PHYS)" != "" || \
1021da177e4SLinus Torvalds	(echo This machine does not support INITRD; exit -1)
1031da177e4SLinus Torvalds	@test "$(INITRD)" != "" || \
1041da177e4SLinus Torvalds	(echo You must specify INITRD; exit -1)
1051da177e4SLinus Torvalds
10619514fc6SRobert Richterinstall:
10719514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
1081da177e4SLinus Torvalds	$(obj)/Image System.map "$(INSTALL_PATH)"
1091da177e4SLinus Torvalds
11019514fc6SRobert Richterzinstall:
11119514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
1121da177e4SLinus Torvalds	$(obj)/zImage System.map "$(INSTALL_PATH)"
1131da177e4SLinus Torvalds
11419514fc6SRobert Richteruinstall:
11519514fc6SRobert Richter	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
116a65d2922SRussell King	$(obj)/uImage System.map "$(INSTALL_PATH)"
117a65d2922SRussell King
1189e25fe6bSNishanth Menonsubdir-	    := bootp compressed dts
119