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