1*1da177e4SLinus Torvalds# 2*1da177e4SLinus Torvalds# arch/arm/boot/Makefile 3*1da177e4SLinus Torvalds# 4*1da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public 5*1da177e4SLinus Torvalds# License. See the file "COPYING" in the main directory of this archive 6*1da177e4SLinus Torvalds# for more details. 7*1da177e4SLinus Torvalds# 8*1da177e4SLinus Torvalds# Copyright (C) 1995-2002 Russell King 9*1da177e4SLinus Torvalds# 10*1da177e4SLinus Torvalds 11*1da177e4SLinus TorvaldsMKIMAGE := $(srctree)/scripts/mkuboot.sh 12*1da177e4SLinus Torvalds 13*1da177e4SLinus Torvaldsifneq ($(MACHINE),) 14*1da177e4SLinus Torvaldsinclude $(srctree)/$(MACHINE)/Makefile.boot 15*1da177e4SLinus Torvaldsendif 16*1da177e4SLinus Torvalds 17*1da177e4SLinus Torvalds# Note: the following conditions must always be true: 18*1da177e4SLinus Torvalds# ZRELADDR == virt_to_phys(TEXTADDR) 19*1da177e4SLinus Torvalds# PARAMS_PHYS must be within 4MB of ZRELADDR 20*1da177e4SLinus Torvalds# INITRD_PHYS must be in RAM 21*1da177e4SLinus TorvaldsZRELADDR := $(zreladdr-y) 22*1da177e4SLinus TorvaldsPARAMS_PHYS := $(params_phys-y) 23*1da177e4SLinus TorvaldsINITRD_PHYS := $(initrd_phys-y) 24*1da177e4SLinus Torvalds 25*1da177e4SLinus Torvaldsexport ZRELADDR INITRD_PHYS PARAMS_PHYS 26*1da177e4SLinus Torvalds 27*1da177e4SLinus Torvaldstargets := Image zImage xipImage bootpImage uImage 28*1da177e4SLinus Torvalds 29*1da177e4SLinus Torvaldsifeq ($(CONFIG_XIP_KERNEL),y) 30*1da177e4SLinus Torvalds 31*1da177e4SLinus Torvalds$(obj)/xipImage: vmlinux FORCE 32*1da177e4SLinus Torvalds $(call if_changed,objcopy) 33*1da177e4SLinus Torvalds @echo ' Kernel: $@ is ready (physical address: $(CONFIG_XIP_PHYS_ADDR))' 34*1da177e4SLinus Torvalds 35*1da177e4SLinus Torvalds$(obj)/Image $(obj)/zImage: FORCE 36*1da177e4SLinus Torvalds @echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)' 37*1da177e4SLinus Torvalds @echo 'Only the xipImage target is available in this case' 38*1da177e4SLinus Torvalds @false 39*1da177e4SLinus Torvalds 40*1da177e4SLinus Torvaldselse 41*1da177e4SLinus Torvalds 42*1da177e4SLinus Torvalds$(obj)/xipImage: FORCE 43*1da177e4SLinus Torvalds @echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)' 44*1da177e4SLinus Torvalds @false 45*1da177e4SLinus Torvalds 46*1da177e4SLinus Torvalds$(obj)/Image: vmlinux FORCE 47*1da177e4SLinus Torvalds $(call if_changed,objcopy) 48*1da177e4SLinus Torvalds @echo ' Kernel: $@ is ready' 49*1da177e4SLinus Torvalds 50*1da177e4SLinus Torvalds$(obj)/compressed/vmlinux: $(obj)/Image FORCE 51*1da177e4SLinus Torvalds $(Q)$(MAKE) $(build)=$(obj)/compressed $@ 52*1da177e4SLinus Torvalds 53*1da177e4SLinus Torvalds$(obj)/zImage: $(obj)/compressed/vmlinux FORCE 54*1da177e4SLinus Torvalds $(call if_changed,objcopy) 55*1da177e4SLinus Torvalds @echo ' Kernel: $@ is ready' 56*1da177e4SLinus Torvalds 57*1da177e4SLinus Torvaldsendif 58*1da177e4SLinus Torvalds 59*1da177e4SLinus Torvaldsquiet_cmd_uimage = UIMAGE $@ 60*1da177e4SLinus Torvalds cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \ 61*1da177e4SLinus Torvalds -C none -a $(ZRELADDR) -e $(ZRELADDR) \ 62*1da177e4SLinus Torvalds -n 'Linux-$(KERNELRELEASE)' -d $< $@ 63*1da177e4SLinus Torvalds 64*1da177e4SLinus Torvalds$(obj)/uImage: $(obj)/zImage FORCE 65*1da177e4SLinus Torvalds $(call if_changed,uimage) 66*1da177e4SLinus Torvalds @echo ' Image $@ is ready' 67*1da177e4SLinus Torvalds 68*1da177e4SLinus Torvalds$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE 69*1da177e4SLinus Torvalds $(Q)$(MAKE) $(build)=$(obj)/bootp $@ 70*1da177e4SLinus Torvalds @: 71*1da177e4SLinus Torvalds 72*1da177e4SLinus Torvalds$(obj)/bootpImage: $(obj)/bootp/bootp FORCE 73*1da177e4SLinus Torvalds $(call if_changed,objcopy) 74*1da177e4SLinus Torvalds @echo ' Kernel: $@ is ready' 75*1da177e4SLinus Torvalds 76*1da177e4SLinus Torvalds.PHONY: initrd FORCE 77*1da177e4SLinus Torvaldsinitrd: 78*1da177e4SLinus Torvalds @test "$(INITRD_PHYS)" != "" || \ 79*1da177e4SLinus Torvalds (echo This machine does not support INITRD; exit -1) 80*1da177e4SLinus Torvalds @test "$(INITRD)" != "" || \ 81*1da177e4SLinus Torvalds (echo You must specify INITRD; exit -1) 82*1da177e4SLinus Torvalds 83*1da177e4SLinus Torvaldsinstall: $(obj)/Image 84*1da177e4SLinus Torvalds $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ 85*1da177e4SLinus Torvalds $(obj)/Image System.map "$(INSTALL_PATH)" 86*1da177e4SLinus Torvalds 87*1da177e4SLinus Torvaldszinstall: $(obj)/zImage 88*1da177e4SLinus Torvalds $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ 89*1da177e4SLinus Torvalds $(obj)/zImage System.map "$(INSTALL_PATH)" 90*1da177e4SLinus Torvalds 91*1da177e4SLinus Torvaldssubdir- := bootp compressed 92