1# SPDX-License-Identifier: GPL-2.0 2# 3# linux/arch/arm/boot/bootp/Makefile 4# 5# This file is included by the global makefile so that you can add your own 6# architecture-specific flags and dependencies. 7# 8GCOV_PROFILE := n 9 10ifdef PHYS_OFFSET 11add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) ) 12 13# If PHYS_OFFSET is set, INITRD_PHYS and PARAMS_PHYS can be derived, 14# otherwise they must be passed on the command line. 15# 16# Note: the following conditions must always be true: 17# PARAMS_PHYS must be within 4MB of ZRELADDR 18# INITRD_PHYS must be in RAM 19 20PARAMS_PHYS := $(call add_hex, $(PHYS_OFFSET), 0x100) 21 22# guess an initrd location if possible 23initrd_offset-$(CONFIG_ARCH_FOOTBRIDGE) += 0x00800000 24initrd_offset-$(CONFIG_ARCH_SA1100) += 0x00800000 25initrd_offset-$(CONFIG_ARCH_RPC) += 0x08000000 26INITRD_OFFSET := $(initrd_offset-y) 27ifdef INITRD_OFFSET 28INITRD_PHYS := $(call add_hex, $(PHYS_OFFSET), $(INITRD_OFFSET)) 29endif 30 31endif 32 33PHONY += initrd 34initrd: 35 @test "$(PARAMS_PHYS)" != "" || \ 36 (echo bootpImage: You must specify PHYS_OFFSET of PARAMS_PHYS ; exit -1) 37 @test "$(INITRD_PHYS)" != "" || \ 38 (echo bootpImage: You must specify INITRD_OFFSET or INITRD_PHYS ; exit -1) 39 @test "$(INITRD)" != "" || \ 40 (echo bootpImage: You must specify INITRD; exit -1) 41 42LDFLAGS_bootp := --no-undefined -X \ 43 --defsym initrd_phys=$(INITRD_PHYS) \ 44 --defsym params_phys=$(PARAMS_PHYS) -T 45AFLAGS_initrd.o :=-DINITRD=\"$(INITRD)\" 46 47targets := bootp init.o kernel.o initrd.o 48 49# Note that bootp.lds picks up kernel.o and initrd.o 50$(obj)/bootp: $(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FORCE 51 $(call if_changed,ld) 52 53# kernel.o and initrd.o includes a binary image using 54# .incbin, a dependency which is not tracked automatically 55 56$(obj)/kernel.o: arch/arm/boot/zImage FORCE 57 58$(obj)/initrd.o: initrd $(INITRD) FORCE 59 60PHONY += $(INITRD) 61