xref: /linux/arch/arm/boot/Makefile (revision 13d5fadf45d12786b90916e95e97f593e91aaf0a)
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),)
171da177e4SLinus Torvaldsinclude $(srctree)/$(MACHINE)/Makefile.boot
181da177e4SLinus Torvaldsendif
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds# Note: the following conditions must always be true:
219d4f13e5SRussell 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
241da177e4SLinus TorvaldsZRELADDR    := $(zreladdr-y)
251da177e4SLinus TorvaldsPARAMS_PHYS := $(params_phys-y)
261da177e4SLinus TorvaldsINITRD_PHYS := $(initrd_phys-y)
271da177e4SLinus Torvalds
281da177e4SLinus Torvaldsexport 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 \
641da177e4SLinus Torvalds		   -C none -a $(ZRELADDR) -e $(ZRELADDR) \
651da177e4SLinus Torvalds		   -n 'Linux-$(KERNELRELEASE)' -d $< $@
661da177e4SLinus Torvalds
671da177e4SLinus Torvalds$(obj)/uImage:	$(obj)/zImage FORCE
681da177e4SLinus Torvalds	$(call if_changed,uimage)
691da177e4SLinus Torvalds	@echo '  Image $@ is ready'
701da177e4SLinus Torvalds
711da177e4SLinus Torvalds$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
721da177e4SLinus Torvalds	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
731da177e4SLinus Torvalds	@:
741da177e4SLinus Torvalds
751da177e4SLinus Torvalds$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
761da177e4SLinus Torvalds	$(call if_changed,objcopy)
771da177e4SLinus Torvalds	@echo '  Kernel: $@ is ready'
781da177e4SLinus Torvalds
794f193362SPaul SmithPHONY += initrd FORCE
801da177e4SLinus Torvaldsinitrd:
811da177e4SLinus Torvalds	@test "$(INITRD_PHYS)" != "" || \
821da177e4SLinus Torvalds	(echo This machine does not support INITRD; exit -1)
831da177e4SLinus Torvalds	@test "$(INITRD)" != "" || \
841da177e4SLinus Torvalds	(echo You must specify INITRD; exit -1)
851da177e4SLinus Torvalds
861da177e4SLinus Torvaldsinstall: $(obj)/Image
871da177e4SLinus Torvalds	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
881da177e4SLinus Torvalds	$(obj)/Image System.map "$(INSTALL_PATH)"
891da177e4SLinus Torvalds
901da177e4SLinus Torvaldszinstall: $(obj)/zImage
911da177e4SLinus Torvalds	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
921da177e4SLinus Torvalds	$(obj)/zImage System.map "$(INSTALL_PATH)"
931da177e4SLinus Torvalds
94*13d5fadfSRussell Kingzi:
95*13d5fadfSRussell King	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
96*13d5fadfSRussell King	$(obj)/zImage System.map "$(INSTALL_PATH)"
97*13d5fadfSRussell King
98*13d5fadfSRussell Kingi:
99*13d5fadfSRussell King	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
100*13d5fadfSRussell King	$(obj)/Image System.map "$(INSTALL_PATH)"
101*13d5fadfSRussell King
1021da177e4SLinus Torvaldssubdir-	    := bootp compressed
103