2005-04-16 15:20:36 -07:00
#
# arch/arm/boot/Makefile
#
2006-03-05 17:14:10 -05:00
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
2005-04-16 15:20:36 -07:00
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1995-2002 Russell King
#
2016-07-19 11:23:37 +01:00
OBJCOPYFLAGS := -O binary -R .comment -S
2005-04-16 15:20:36 -07:00
i f n e q ( $( MACHINE ) , )
2015-03-27 20:43:35 +09:00
i n c l u d e $( MACHINE ) / M a k e f i l e . b o o t
2005-04-16 15:20:36 -07:00
e n d i f
# Note: the following conditions must always be true:
2010-09-09 22:39:41 +01:00
# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
2005-04-16 15:20:36 -07:00
# PARAMS_PHYS must be within 4MB of ZRELADDR
# INITRD_PHYS must be in RAM
2010-09-09 22:39:41 +01:00
ZRELADDR := $( zreladdr-y)
2005-04-16 15:20:36 -07:00
PARAMS_PHYS := $( params_phys-y)
INITRD_PHYS := $( initrd_phys-y)
2010-09-09 22:39:41 +01:00
export ZRELADDR INITRD_PHYS PARAMS_PHYS
2005-04-16 15:20:36 -07:00
targets := Image zImage xipImage bootpImage uImage
i f e q ( $( CONFIG_XIP_KERNEL ) , y )
2017-08-25 00:54:18 -04:00
cmd_deflate_xip_data = $( CONFIG_SHELL) -c \
2018-12-31 17:24:08 +09:00
'$(srctree)/$(src)/deflate_xip_data.sh $< $@'
2017-08-25 00:54:18 -04:00
i f e q ( $( CONFIG_XIP_DEFLATED_DATA ) , y )
quiet_cmd_mkxip = XIPZ $@
cmd_mkxip = $( cmd_objcopy) && $( cmd_deflate_xip_data)
e l s e
quiet_cmd_mkxip = $( quiet_cmd_objcopy)
cmd_mkxip = $( cmd_objcopy)
e n d i f
2005-04-16 15:20:36 -07:00
$(obj)/xipImage : vmlinux FORCE
2017-08-25 00:54:18 -04:00
$( call if_changed,mkxip)
2016-05-30 03:01:23 +01:00
@$( kecho) ' Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
2005-04-16 15:20:36 -07:00
$(obj)/Image $(obj)/zImage : FORCE
@echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
@echo 'Only the xipImage target is available in this case'
@false
e l s e
$(obj)/xipImage : FORCE
@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
@false
$(obj)/Image : vmlinux FORCE
$( call if_changed,objcopy)
$(obj)/compressed/vmlinux : $( obj ) /Image FORCE
$( Q) $( MAKE) $( build) = $( obj) /compressed $@
$(obj)/zImage : $( obj ) /compressed /vmlinux FORCE
$( call if_changed,objcopy)
e n d i f
2012-03-16 15:03:55 -06:00
i f n e q ( $( LOADADDR ) , )
UIMAGE_LOADADDR = $( LOADADDR)
2008-03-06 16:22:33 +01:00
e l s e
2012-03-16 15:03:55 -06:00
ifeq ( $( CONFIG_ZBOOT_ROM) ,y)
UIMAGE_LOADADDR = $( CONFIG_ZBOOT_ROM_TEXT)
else
UIMAGE_LOADADDR = $( ZRELADDR)
endif
2008-03-06 16:22:33 +01:00
e n d i f
2011-08-17 14:23:46 +01:00
check_for_multiple_loadaddr = \
2013-02-23 08:02:24 +01:00
i f [ $( words $ ( UIMAGE_LOADADDR ) ) - n e 1 ] ; t h e n \
echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)' ; \
2011-08-17 14:23:46 +01:00
echo 'This is incompatible with uImages' ; \
echo 'Specify LOADADDR on the commandline to build an uImage' ; \
false; \
f i
2005-04-16 15:20:36 -07:00
$(obj)/uImage : $( obj ) /zImage FORCE
2011-08-17 14:23:46 +01:00
@$( check_for_multiple_loadaddr)
2005-04-16 15:20:36 -07:00
$( call if_changed,uimage)
$(obj)/bootp/bootp : $( obj ) /zImage initrd FORCE
$( Q) $( MAKE) $( build) = $( obj) /bootp $@
$(obj)/bootpImage : $( obj ) /bootp /bootp FORCE
$( call if_changed,objcopy)
2021-07-29 15:03:51 +01:00
PHONY += initrd
2005-04-16 15:20:36 -07:00
initrd :
@test " $( INITRD_PHYS) " != "" || \
( echo This machine does not support INITRD; exit -1)
@test " $( INITRD) " != "" || \
( echo You must specify INITRD; exit -1)
2013-01-22 15:27:29 -06:00
subdir- := bootp compressed dts