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