xref: /kernel/linux/linux-6.6/arch/arm/boot/Makefile (revision 62306a36)
162306a36Sopenharmony_ci#
262306a36Sopenharmony_ci# arch/arm/boot/Makefile
362306a36Sopenharmony_ci#
462306a36Sopenharmony_ci# This file is included by the global makefile so that you can add your own
562306a36Sopenharmony_ci# architecture-specific flags and dependencies.
662306a36Sopenharmony_ci#
762306a36Sopenharmony_ci# This file is subject to the terms and conditions of the GNU General Public
862306a36Sopenharmony_ci# License.  See the file "COPYING" in the main directory of this archive
962306a36Sopenharmony_ci# for more details.
1062306a36Sopenharmony_ci#
1162306a36Sopenharmony_ci# Copyright (C) 1995-2002 Russell King
1262306a36Sopenharmony_ci#
1362306a36Sopenharmony_ciOBJCOPYFLAGS	:=-O binary -R .comment -S
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
1662306a36Sopenharmony_ciifdef CONFIG_PHYS_OFFSET
1762306a36Sopenharmony_ciadd_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
1862306a36Sopenharmony_ciZRELADDR    := $(call add_hex, $(CONFIG_PHYS_OFFSET), $(TEXT_OFFSET))
1962306a36Sopenharmony_ciendif
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciPHYS_OFFSET := $(CONFIG_PHYS_OFFSET)
2262306a36Sopenharmony_ciexport ZRELADDR PARAMS_PHYS PHYS_OFFSET
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_citargets := Image zImage xipImage bootpImage uImage
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciifeq ($(CONFIG_XIP_KERNEL),y)
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cicmd_deflate_xip_data = $(CONFIG_SHELL) -c \
2962306a36Sopenharmony_ci	'$(srctree)/$(src)/deflate_xip_data.sh $< $@'
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciifeq ($(CONFIG_XIP_DEFLATED_DATA),y)
3262306a36Sopenharmony_ciquiet_cmd_mkxip = XIPZ    $@
3362306a36Sopenharmony_cicmd_mkxip = $(cmd_objcopy) && $(cmd_deflate_xip_data)
3462306a36Sopenharmony_cielse
3562306a36Sopenharmony_ciquiet_cmd_mkxip = $(quiet_cmd_objcopy)
3662306a36Sopenharmony_cicmd_mkxip = $(cmd_objcopy)
3762306a36Sopenharmony_ciendif
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci$(obj)/xipImage: vmlinux FORCE
4062306a36Sopenharmony_ci	$(call if_changed,mkxip)
4162306a36Sopenharmony_ci	@$(kecho) '  Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci$(obj)/Image $(obj)/zImage: FORCE
4462306a36Sopenharmony_ci	@echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
4562306a36Sopenharmony_ci	@echo 'Only the xipImage target is available in this case'
4662306a36Sopenharmony_ci	@false
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cielse
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci$(obj)/xipImage: FORCE
5162306a36Sopenharmony_ci	@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
5262306a36Sopenharmony_ci	@false
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci$(obj)/Image: vmlinux FORCE
5562306a36Sopenharmony_ci	$(call if_changed,objcopy)
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci$(obj)/compressed/vmlinux: $(obj)/Image FORCE
5862306a36Sopenharmony_ci	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci$(obj)/zImage:	$(obj)/compressed/vmlinux FORCE
6162306a36Sopenharmony_ci	$(call if_changed,objcopy)
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciendif
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciifneq ($(LOADADDR),)
6662306a36Sopenharmony_ci  UIMAGE_LOADADDR=$(LOADADDR)
6762306a36Sopenharmony_cielse
6862306a36Sopenharmony_ci  ifeq ($(CONFIG_ZBOOT_ROM),y)
6962306a36Sopenharmony_ci    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
7062306a36Sopenharmony_ci  else
7162306a36Sopenharmony_ci    UIMAGE_LOADADDR=$(ZRELADDR)
7262306a36Sopenharmony_ci  endif
7362306a36Sopenharmony_ciendif
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_cicheck_for_multiple_loadaddr = \
7662306a36Sopenharmony_ciif [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
7762306a36Sopenharmony_ci	echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
7862306a36Sopenharmony_ci	echo 'This is incompatible with uImages'; \
7962306a36Sopenharmony_ci	echo 'Specify LOADADDR on the commandline to build an uImage'; \
8062306a36Sopenharmony_ci	false; \
8162306a36Sopenharmony_cifi
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci$(obj)/uImage:	$(obj)/zImage FORCE
8462306a36Sopenharmony_ci	@$(check_for_multiple_loadaddr)
8562306a36Sopenharmony_ci	$(call if_changed,uimage)
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci$(obj)/bootp/bootp: $(obj)/zImage FORCE
8862306a36Sopenharmony_ci	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
9162306a36Sopenharmony_ci	$(call if_changed,objcopy)
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cisubdir-	    := bootp compressed dts
94