mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
9e84ed63dc
Partially revert e69edc7, which introduced automatic zreladdr support. The change in the way the manual definition is defined seems to be error and conflict prone. Go back to the original way we were handling this for the time being, while keeping the automatic zreladdr facility. Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
116 lines
3.0 KiB
Makefile
116 lines
3.0 KiB
Makefile
#
|
|
# arch/arm/boot/Makefile
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies.
|
|
#
|
|
# 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
|
|
#
|
|
|
|
MKIMAGE := $(srctree)/scripts/mkuboot.sh
|
|
|
|
ifneq ($(MACHINE),)
|
|
include $(srctree)/$(MACHINE)/Makefile.boot
|
|
endif
|
|
|
|
# Note: the following conditions must always be true:
|
|
# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
|
|
# PARAMS_PHYS must be within 4MB of ZRELADDR
|
|
# INITRD_PHYS must be in RAM
|
|
ZRELADDR := $(zreladdr-y)
|
|
PARAMS_PHYS := $(params_phys-y)
|
|
INITRD_PHYS := $(initrd_phys-y)
|
|
|
|
export ZRELADDR INITRD_PHYS PARAMS_PHYS
|
|
|
|
targets := Image zImage xipImage bootpImage uImage
|
|
|
|
ifeq ($(CONFIG_XIP_KERNEL),y)
|
|
|
|
$(obj)/xipImage: vmlinux FORCE
|
|
$(call if_changed,objcopy)
|
|
@echo ' Kernel: $@ is ready (physical address: $(CONFIG_XIP_PHYS_ADDR))'
|
|
|
|
$(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
|
|
|
|
else
|
|
|
|
$(obj)/xipImage: FORCE
|
|
@echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
|
|
@false
|
|
|
|
$(obj)/Image: vmlinux FORCE
|
|
$(call if_changed,objcopy)
|
|
@echo ' Kernel: $@ is ready'
|
|
|
|
$(obj)/compressed/vmlinux: $(obj)/Image FORCE
|
|
$(Q)$(MAKE) $(build)=$(obj)/compressed $@
|
|
|
|
$(obj)/zImage: $(obj)/compressed/vmlinux FORCE
|
|
$(call if_changed,objcopy)
|
|
@echo ' Kernel: $@ is ready'
|
|
|
|
endif
|
|
|
|
quiet_cmd_uimage = UIMAGE $@
|
|
cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
|
|
-C none -a $(LOADADDR) -e $(STARTADDR) \
|
|
-n 'Linux-$(KERNELRELEASE)' -d $< $@
|
|
|
|
ifeq ($(CONFIG_ZBOOT_ROM),y)
|
|
$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
|
|
else
|
|
$(obj)/uImage: LOADADDR=$(ZRELADDR)
|
|
endif
|
|
|
|
ifeq ($(CONFIG_THUMB2_KERNEL),y)
|
|
# Set bit 0 to 1 so that "mov pc, rx" switches to Thumb-2 mode
|
|
$(obj)/uImage: STARTADDR=$(shell echo $(LOADADDR) | sed -e "s/.$$/1/")
|
|
else
|
|
$(obj)/uImage: STARTADDR=$(LOADADDR)
|
|
endif
|
|
|
|
$(obj)/uImage: $(obj)/zImage FORCE
|
|
$(call if_changed,uimage)
|
|
@echo ' Image $@ is ready'
|
|
|
|
$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
|
|
$(Q)$(MAKE) $(build)=$(obj)/bootp $@
|
|
@:
|
|
|
|
$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
|
|
$(call if_changed,objcopy)
|
|
@echo ' Kernel: $@ is ready'
|
|
|
|
PHONY += initrd FORCE
|
|
initrd:
|
|
@test "$(INITRD_PHYS)" != "" || \
|
|
(echo This machine does not support INITRD; exit -1)
|
|
@test "$(INITRD)" != "" || \
|
|
(echo You must specify INITRD; exit -1)
|
|
|
|
install: $(obj)/Image
|
|
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
|
|
$(obj)/Image System.map "$(INSTALL_PATH)"
|
|
|
|
zinstall: $(obj)/zImage
|
|
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
|
|
$(obj)/zImage System.map "$(INSTALL_PATH)"
|
|
|
|
zi:
|
|
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
|
|
$(obj)/zImage System.map "$(INSTALL_PATH)"
|
|
|
|
i:
|
|
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
|
|
$(obj)/Image System.map "$(INSTALL_PATH)"
|
|
|
|
subdir- := bootp compressed
|