xref: /linux/arch/arm/boot/Makefile (revision a65d29225ed884456f3d34dcefd3a18df24af03b)
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 TorvaldsMKIMAGE         := $(srctree)/scripts/mkuboot.sh
151da177e4SLinus Torvalds
161da177e4SLinus Torvaldsifneq ($(MACHINE),)
179e84ed63SRussell Kinginclude $(srctree)/$(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
341da177e4SLinus Torvalds$(obj)/xipImage: vmlinux FORCE
351da177e4SLinus Torvalds	$(call if_changed,objcopy)
361da177e4SLinus Torvalds	@echo '  Kernel: $@ is ready (physical address: $(CONFIG_XIP_PHYS_ADDR))'
371da177e4SLinus Torvalds
381da177e4SLinus Torvalds$(obj)/Image $(obj)/zImage: FORCE
391da177e4SLinus Torvalds	@echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
401da177e4SLinus Torvalds	@echo 'Only the xipImage target is available in this case'
411da177e4SLinus Torvalds	@false
421da177e4SLinus Torvalds
431da177e4SLinus Torvaldselse
441da177e4SLinus Torvalds
451da177e4SLinus Torvalds$(obj)/xipImage: FORCE
461da177e4SLinus Torvalds	@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
471da177e4SLinus Torvalds	@false
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds$(obj)/Image: vmlinux FORCE
501da177e4SLinus Torvalds	$(call if_changed,objcopy)
511da177e4SLinus Torvalds	@echo '  Kernel: $@ is ready'
521da177e4SLinus Torvalds
531da177e4SLinus Torvalds$(obj)/compressed/vmlinux: $(obj)/Image FORCE
541da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
551da177e4SLinus Torvalds
561da177e4SLinus Torvalds$(obj)/zImage:	$(obj)/compressed/vmlinux FORCE
571da177e4SLinus Torvalds	$(call if_changed,objcopy)
581da177e4SLinus Torvalds	@echo '  Kernel: $@ is ready'
591da177e4SLinus Torvalds
601da177e4SLinus Torvaldsendif
611da177e4SLinus Torvalds
621da177e4SLinus Torvaldsquiet_cmd_uimage = UIMAGE  $@
631da177e4SLinus Torvalds      cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
64e2ed3be7SCatalin Marinas		   -C none -a $(LOADADDR) -e $(STARTADDR) \
651da177e4SLinus Torvalds		   -n 'Linux-$(KERNELRELEASE)' -d $< $@
661da177e4SLinus Torvalds
670f980146SUwe Kleine-Königifeq ($(CONFIG_ZBOOT_ROM),y)
680f980146SUwe Kleine-König$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
690f980146SUwe Kleine-Königelse
709e84ed63SRussell King$(obj)/uImage: LOADADDR=$(ZRELADDR)
710f980146SUwe Kleine-Königendif
720f980146SUwe Kleine-König
73e2ed3be7SCatalin Marinas$(obj)/uImage: STARTADDR=$(LOADADDR)
74e2ed3be7SCatalin Marinas
751da177e4SLinus Torvalds$(obj)/uImage:	$(obj)/zImage FORCE
761da177e4SLinus Torvalds	$(call if_changed,uimage)
771da177e4SLinus Torvalds	@echo '  Image $@ is ready'
781da177e4SLinus Torvalds
791da177e4SLinus Torvalds$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
801da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
811da177e4SLinus Torvalds	@:
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
841da177e4SLinus Torvalds	$(call if_changed,objcopy)
851da177e4SLinus Torvalds	@echo '  Kernel: $@ is ready'
861da177e4SLinus Torvalds
874f193362SPaul SmithPHONY += initrd FORCE
881da177e4SLinus Torvaldsinitrd:
891da177e4SLinus Torvalds	@test "$(INITRD_PHYS)" != "" || \
901da177e4SLinus Torvalds	(echo This machine does not support INITRD; exit -1)
911da177e4SLinus Torvalds	@test "$(INITRD)" != "" || \
921da177e4SLinus Torvalds	(echo You must specify INITRD; exit -1)
931da177e4SLinus Torvalds
941da177e4SLinus Torvaldsinstall: $(obj)/Image
951da177e4SLinus Torvalds	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
961da177e4SLinus Torvalds	$(obj)/Image System.map "$(INSTALL_PATH)"
971da177e4SLinus Torvalds
981da177e4SLinus Torvaldszinstall: $(obj)/zImage
991da177e4SLinus Torvalds	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
1001da177e4SLinus Torvalds	$(obj)/zImage System.map "$(INSTALL_PATH)"
1011da177e4SLinus Torvalds
102*a65d2922SRussell Kinguinstall: $(obj)/uImage
103*a65d2922SRussell King	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
104*a65d2922SRussell King	$(obj)/uImage System.map "$(INSTALL_PATH)"
105*a65d2922SRussell King
10613d5fadfSRussell Kingzi:
10713d5fadfSRussell King	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
10813d5fadfSRussell King	$(obj)/zImage System.map "$(INSTALL_PATH)"
10913d5fadfSRussell King
11013d5fadfSRussell Kingi:
11113d5fadfSRussell King	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
11213d5fadfSRussell King	$(obj)/Image System.map "$(INSTALL_PATH)"
11313d5fadfSRussell King
1141da177e4SLinus Torvaldssubdir-	    := bootp compressed
115