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
2010-09-09 22:39:41 +01:00
# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
2022-07-27 09:26:45 +02:00
i f d e f C O N F I G _ P H Y S _ O F F S E T
add_hex = $( shell printf 0x%x $$ ( ( $( 1) + $( 2) ) ) )
ZRELADDR := $( call add_hex, $( CONFIG_PHYS_OFFSET) , $( TEXT_OFFSET) )
e n d i f
2005-04-16 15:20:36 -07:00
2022-07-27 09:26:45 +02:00
PHYS_OFFSET := $( CONFIG_PHYS_OFFSET)
export ZRELADDR PARAMS_PHYS PHYS_OFFSET
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)
2022-07-27 09:26:45 +02:00
$(obj)/bootp/bootp : $( obj ) /zImage FORCE
2005-04-16 15:20:36 -07:00
$( Q) $( MAKE) $( build) = $( obj) /bootp $@
$(obj)/bootpImage : $( obj ) /bootp /bootp FORCE
$( call if_changed,objcopy)
2013-01-22 15:27:29 -06:00
subdir- := bootp compressed dts