162306a36Sopenharmony_ci# 262306a36Sopenharmony_ci# arch/arm/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-2001 by Russell King 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciLDFLAGS_vmlinux := --no-undefined -X --pic-veneer -z norelro 1462306a36Sopenharmony_ciifeq ($(CONFIG_CPU_ENDIAN_BE8),y) 1562306a36Sopenharmony_ciLDFLAGS_vmlinux += --be8 1662306a36Sopenharmony_ciKBUILD_LDFLAGS_MODULE += --be8 1762306a36Sopenharmony_ciendif 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciGZFLAGS :=-9 2062306a36Sopenharmony_ci#KBUILD_CFLAGS +=-pipe 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci# Never generate .eh_frame 2362306a36Sopenharmony_ciKBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci# Disable FDPIC ABI 2662306a36Sopenharmony_ciKBUILD_CFLAGS += $(call cc-option,-mno-fdpic) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci# This should work on most of the modern platforms 2962306a36Sopenharmony_ciKBUILD_DEFCONFIG := multi_v7_defconfig 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci# defines filename extension depending memory management type. 3262306a36Sopenharmony_ciifeq ($(CONFIG_MMU),) 3362306a36Sopenharmony_ciMMUEXT := -nommu 3462306a36Sopenharmony_ciKBUILD_CFLAGS += $(call cc-option,-mno-unaligned-access) 3562306a36Sopenharmony_ciendif 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciifeq ($(CONFIG_FRAME_POINTER),y) 3862306a36Sopenharmony_ciKBUILD_CFLAGS +=-fno-omit-frame-pointer 3962306a36Sopenharmony_ciifeq ($(CONFIG_CC_IS_GCC),y) 4062306a36Sopenharmony_ciKBUILD_CFLAGS += -mapcs -mno-sched-prolog 4162306a36Sopenharmony_ciendif 4262306a36Sopenharmony_ciendif 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciifeq ($(CONFIG_CPU_BIG_ENDIAN),y) 4562306a36Sopenharmony_ciKBUILD_CPPFLAGS += -mbig-endian 4662306a36Sopenharmony_ciCHECKFLAGS += -D__ARMEB__ 4762306a36Sopenharmony_ciKBUILD_LDFLAGS += -EB 4862306a36Sopenharmony_cielse 4962306a36Sopenharmony_ciKBUILD_CPPFLAGS += -mlittle-endian 5062306a36Sopenharmony_ciCHECKFLAGS += -D__ARMEL__ 5162306a36Sopenharmony_ciKBUILD_LDFLAGS += -EL 5262306a36Sopenharmony_ciendif 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci# 5562306a36Sopenharmony_ci# The Scalar Replacement of Aggregates (SRA) optimization pass in GCC 4.9 and 5662306a36Sopenharmony_ci# later may result in code being generated that handles signed short and signed 5762306a36Sopenharmony_ci# char struct members incorrectly. So disable it. 5862306a36Sopenharmony_ci# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932) 5962306a36Sopenharmony_ci# 6062306a36Sopenharmony_ciKBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci# This selects which instruction set is used. 6362306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v7M) :=-march=armv7-m 6462306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v7) :=-march=armv7-a 6562306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v6) :=-march=armv6 6662306a36Sopenharmony_ci# Only override the compiler option if ARMv6. The ARMv6K extensions are 6762306a36Sopenharmony_ci# always available in ARMv7 6862306a36Sopenharmony_ciifeq ($(CONFIG_CPU_32v6),y) 6962306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v6K) :=-march=armv6k 7062306a36Sopenharmony_ciendif 7162306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v5) :=-march=armv5te 7262306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v4T) :=-march=armv4t 7362306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v4) :=-march=armv4 7462306a36Sopenharmony_ciarch-$(CONFIG_CPU_32v3) :=-march=armv3m 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci# Note that GCC does not numerically define an architecture version 7762306a36Sopenharmony_ci# macro, but instead defines a whole series of macros which makes 7862306a36Sopenharmony_ci# testing for a specific architecture or later rather impossible. 7962306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v7M) :=-D__LINUX_ARM_ARCH__=7 8062306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 8162306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 8262306a36Sopenharmony_ci# Only override the compiler option if ARMv6. The ARMv6K extensions are 8362306a36Sopenharmony_ci# always available in ARMv7 8462306a36Sopenharmony_ciifeq ($(CONFIG_CPU_32v6),y) 8562306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v6K) :=-D__LINUX_ARM_ARCH__=6 8662306a36Sopenharmony_ciendif 8762306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 8862306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v4T) :=-D__LINUX_ARM_ARCH__=4 8962306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 9062306a36Sopenharmony_cicpp-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci# This selects how we optimise for the processor. 9362306a36Sopenharmony_citune-$(CONFIG_CPU_ARM7TDMI) :=-mtune=arm7tdmi 9462306a36Sopenharmony_citune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7tdmi 9562306a36Sopenharmony_citune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7tdmi 9662306a36Sopenharmony_citune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9tdmi 9762306a36Sopenharmony_citune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9tdmi 9862306a36Sopenharmony_citune-$(CONFIG_CPU_ARM946E) :=-mtune=arm9e 9962306a36Sopenharmony_citune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi 10062306a36Sopenharmony_citune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi 10162306a36Sopenharmony_citune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9tdmi 10262306a36Sopenharmony_citune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi 10362306a36Sopenharmony_citune-$(CONFIG_CPU_FA526) :=-mtune=arm9tdmi 10462306a36Sopenharmony_citune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110 10562306a36Sopenharmony_citune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 10662306a36Sopenharmony_citune-$(CONFIG_CPU_XSCALE) :=-mtune=xscale 10762306a36Sopenharmony_citune-$(CONFIG_CPU_XSC3) :=-mtune=xscale 10862306a36Sopenharmony_citune-$(CONFIG_CPU_FEROCEON) :=-mtune=xscale 10962306a36Sopenharmony_citune-$(CONFIG_CPU_V6) :=-mtune=arm1136j-s 11062306a36Sopenharmony_citune-$(CONFIG_CPU_V6K) :=-mtune=arm1136j-s 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ciifeq ($(CONFIG_AEABI),y) 11362306a36Sopenharmony_ciCFLAGS_ABI :=-mabi=aapcs-linux -mfpu=vfp 11462306a36Sopenharmony_cielse 11562306a36Sopenharmony_ciCFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) 11662306a36Sopenharmony_ciendif 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciifeq ($(CONFIG_ARM_UNWIND),y) 11962306a36Sopenharmony_ciCFLAGS_ABI +=-funwind-tables 12062306a36Sopenharmony_ciendif 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciifeq ($(CONFIG_CC_IS_CLANG),y) 12362306a36Sopenharmony_ciCFLAGS_ABI += -meabi gnu 12462306a36Sopenharmony_ciendif 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciifeq ($(CONFIG_CURRENT_POINTER_IN_TPIDRURO),y) 12762306a36Sopenharmony_ciKBUILD_CFLAGS += -mtp=cp15 12862306a36Sopenharmony_ciendif 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci# Accept old syntax despite ".syntax unified" 13162306a36Sopenharmony_ciAFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W) 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ciifeq ($(CONFIG_THUMB2_KERNEL),y) 13462306a36Sopenharmony_ciCFLAGS_ISA :=-Wa,-mimplicit-it=always $(AFLAGS_NOWARN) 13562306a36Sopenharmony_ciAFLAGS_ISA :=$(CFLAGS_ISA) -Wa$(comma)-mthumb 13662306a36Sopenharmony_ciCFLAGS_ISA +=-mthumb 13762306a36Sopenharmony_cielse 13862306a36Sopenharmony_ciCFLAGS_ISA :=$(call cc-option,-marm,) $(AFLAGS_NOWARN) 13962306a36Sopenharmony_ciAFLAGS_ISA :=$(CFLAGS_ISA) 14062306a36Sopenharmony_ciendif 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci# Need -Uarm for gcc < 3.x 14362306a36Sopenharmony_ciKBUILD_CPPFLAGS +=$(cpp-y) 14462306a36Sopenharmony_ciKBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm 14562306a36Sopenharmony_ciKBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) -Wa,$(arch-y) $(tune-y) -include asm/unified.h -msoft-float 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciCHECKFLAGS += -D__arm__ 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci# Text offset. This list is sorted numerically by address in order to 15062306a36Sopenharmony_ci# provide a means to avoid/resolve conflicts in multi-arch kernels. 15162306a36Sopenharmony_ci# Note: the 32kB below this value is reserved for use by the kernel 15262306a36Sopenharmony_ci# during boot, and this offset is critical to the functioning of 15362306a36Sopenharmony_ci# kexec-tools. 15462306a36Sopenharmony_citextofs-y := 0x00008000 15562306a36Sopenharmony_ci# RTD1195 has Boot ROM at start of address space 15662306a36Sopenharmony_citextofs-$(CONFIG_ARCH_REALTEK) := 0x00108000 15762306a36Sopenharmony_ci# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory 15862306a36Sopenharmony_ciifeq ($(CONFIG_ARCH_SA1100),y) 15962306a36Sopenharmony_citextofs-$(CONFIG_SA1111) := 0x00208000 16062306a36Sopenharmony_ciendif 16162306a36Sopenharmony_citextofs-$(CONFIG_ARCH_IPQ40XX) := 0x00208000 16262306a36Sopenharmony_citextofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000 16362306a36Sopenharmony_citextofs-$(CONFIG_ARCH_MSM8960) := 0x00208000 16462306a36Sopenharmony_citextofs-$(CONFIG_ARCH_MESON) := 0x00208000 16562306a36Sopenharmony_citextofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci# Machine directory name. This list is sorted alphanumerically 16862306a36Sopenharmony_ci# by CONFIG_* macro name. 16962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ACTIONS) += actions 17062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_AIROHA) += airoha 17162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ALPINE) += alpine 17262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ARTPEC) += artpec 17362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ASPEED) += aspeed 17462306a36Sopenharmony_cimachine-$(CONFIG_ARCH_AT91) += at91 17562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_AXXIA) += axxia 17662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_BCM) += bcm 17762306a36Sopenharmony_cimachine-$(CONFIG_ARCH_BERLIN) += berlin 17862306a36Sopenharmony_cimachine-$(CONFIG_ARCH_CLPS711X) += clps711x 17962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_DAVINCI) += davinci 18062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_DIGICOLOR) += digicolor 18162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_DOVE) += dove 18262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_EP93XX) += ep93xx 18362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_EXYNOS) += exynos 18462306a36Sopenharmony_cimachine-$(CONFIG_ARCH_FOOTBRIDGE) += footbridge 18562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_GEMINI) += gemini 18662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_HIGHBANK) += highbank 18762306a36Sopenharmony_cimachine-$(CONFIG_ARCH_HISI) += hisi 18862306a36Sopenharmony_cimachine-$(CONFIG_ARCH_HPE) += hpe 18962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_IXP4XX) += ixp4xx 19062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_KEYSTONE) += keystone 19162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_LPC18XX) += lpc18xx 19262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_LPC32XX) += lpc32xx 19362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MESON) += meson 19462306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MMP) += mmp 19562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MOXART) += moxart 19662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MV78XX0) += mv78xx0 19762306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MVEBU) += mvebu 19862306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MXC) += imx 19962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MEDIATEK) += mediatek 20062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MILBEAUT) += milbeaut 20162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MXS) += mxs 20262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_MSTARV7) += mstar 20362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_NOMADIK) += nomadik 20462306a36Sopenharmony_cimachine-$(CONFIG_ARCH_NPCM) += npcm 20562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_NSPIRE) += nspire 20662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_OMAP1) += omap1 20762306a36Sopenharmony_cimachine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 20862306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ORION5X) += orion5x 20962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_PXA) += pxa 21062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_QCOM) += qcom 21162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_REALTEK) += realtek 21262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ROCKCHIP) += rockchip 21362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_RPC) += rpc 21462306a36Sopenharmony_cimachine-$(CONFIG_PLAT_SAMSUNG) += s3c 21562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_S5PV210) += s5pv210 21662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_SA1100) += sa1100 21762306a36Sopenharmony_cimachine-$(CONFIG_ARCH_RENESAS) += shmobile 21862306a36Sopenharmony_cimachine-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga 21962306a36Sopenharmony_cimachine-$(CONFIG_ARCH_STI) += sti 22062306a36Sopenharmony_cimachine-$(CONFIG_ARCH_STM32) += stm32 22162306a36Sopenharmony_cimachine-$(CONFIG_ARCH_SUNPLUS) += sunplus 22262306a36Sopenharmony_cimachine-$(CONFIG_ARCH_SUNXI) += sunxi 22362306a36Sopenharmony_cimachine-$(CONFIG_ARCH_TEGRA) += tegra 22462306a36Sopenharmony_cimachine-$(CONFIG_ARCH_U8500) += ux500 22562306a36Sopenharmony_cimachine-$(CONFIG_ARCH_VT8500) += vt8500 22662306a36Sopenharmony_cimachine-$(CONFIG_ARCH_ZYNQ) += zynq 22762306a36Sopenharmony_cimachine-$(CONFIG_PLAT_VERSATILE) += versatile 22862306a36Sopenharmony_cimachine-$(CONFIG_PLAT_SPEAR) += spear 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci# legacy platforms provide their own mach/*.h headers globally, 23162306a36Sopenharmony_ci# these three are mutually exclusive 23262306a36Sopenharmony_cimachdirs-$(CONFIG_ARCH_FOOTBRIDGE) += arch/arm/mach-footbridge 23362306a36Sopenharmony_cimachdirs-$(CONFIG_ARCH_RPC) += arch/arm/mach-rpc 23462306a36Sopenharmony_cimachdirs-$(CONFIG_ARCH_SA1100) += arch/arm/mach-sa1100 23562306a36Sopenharmony_ciKBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%/include,$(machdirs-y)) 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci# The byte offset of the kernel image in RAM from the start of RAM. 23862306a36Sopenharmony_ciTEXT_OFFSET := $(textofs-y) 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ciexport TEXT_OFFSET GZFLAGS MMUEXT 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci# If we have a machine-specific directory, then include it in the build. 24362306a36Sopenharmony_cicore-y += $(patsubst %,arch/arm/mach-%/,$(machine-y)) 24462306a36Sopenharmony_ci# For cleaning 24562306a36Sopenharmony_cicore- += $(patsubst %,arch/arm/mach-%/,$(machine-)) 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_cicore-$(CONFIG_PLAT_ORION) += arch/arm/plat-orion/ 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_cilibs-y := arch/arm/lib/ $(libs-y) 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci# Default target when executing plain make 25262306a36Sopenharmony_ciboot := arch/arm/boot 25362306a36Sopenharmony_ciifeq ($(CONFIG_XIP_KERNEL),y) 25462306a36Sopenharmony_ciKBUILD_IMAGE := $(boot)/xipImage 25562306a36Sopenharmony_cielse 25662306a36Sopenharmony_ciKBUILD_IMAGE := $(boot)/zImage 25762306a36Sopenharmony_ciendif 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ciifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y) 26062306a36Sopenharmony_ciprepare: stack_protector_prepare 26162306a36Sopenharmony_ciifeq ($(CONFIG_CC_HAVE_STACKPROTECTOR_TLS),y) 26262306a36Sopenharmony_cistack_protector_prepare: prepare0 26362306a36Sopenharmony_ci $(eval KBUILD_CFLAGS += \ 26462306a36Sopenharmony_ci -mstack-protector-guard=tls \ 26562306a36Sopenharmony_ci -mstack-protector-guard-offset=$(shell \ 26662306a36Sopenharmony_ci awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}'\ 26762306a36Sopenharmony_ci include/generated/asm-offsets.h)) 26862306a36Sopenharmony_cielse 26962306a36Sopenharmony_cistack_protector_prepare: prepare0 27062306a36Sopenharmony_ci $(eval SSP_PLUGIN_CFLAGS := \ 27162306a36Sopenharmony_ci -fplugin-arg-arm_ssp_per_task_plugin-offset=$(shell \ 27262306a36Sopenharmony_ci awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}'\ 27362306a36Sopenharmony_ci include/generated/asm-offsets.h)) 27462306a36Sopenharmony_ci $(eval KBUILD_CFLAGS += $(SSP_PLUGIN_CFLAGS)) 27562306a36Sopenharmony_ci $(eval GCC_PLUGINS_CFLAGS += $(SSP_PLUGIN_CFLAGS)) 27662306a36Sopenharmony_ciendif 27762306a36Sopenharmony_ciendif 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciall: $(notdir $(KBUILD_IMAGE)) 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ciarchheaders: 28362306a36Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/arm/tools uapi 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ciarchprepare: 28662306a36Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/arm/tools kapi 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci# Convert bzImage to zImage 28962306a36Sopenharmony_cibzImage: zImage 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ciBOOT_TARGETS = zImage Image xipImage bootpImage uImage 29262306a36Sopenharmony_ciINSTALL_TARGETS = zinstall uinstall install 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciPHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS) 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_cibootpImage uImage: zImage 29762306a36Sopenharmony_cizImage: Image 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci$(BOOT_TARGETS): vmlinux 30062306a36Sopenharmony_ci $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 30162306a36Sopenharmony_ci @$(kecho) ' Kernel: $(boot)/$@ is ready' 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci$(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(patsubst %install,%Image,$@) 30462306a36Sopenharmony_ci$(INSTALL_TARGETS): 30562306a36Sopenharmony_ci $(call cmd,install) 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ciPHONY += vdso_install 30862306a36Sopenharmony_civdso_install: 30962306a36Sopenharmony_ciifeq ($(CONFIG_VDSO),y) 31062306a36Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/arm/vdso $@ 31162306a36Sopenharmony_ciendif 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_ci# My testing targets (bypasses dependencies) 31462306a36Sopenharmony_cibp:; $(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ciinclude $(srctree)/scripts/Makefile.defconf 31762306a36Sopenharmony_ciPHONY += multi_v7_lpae_defconfig 31862306a36Sopenharmony_cimulti_v7_lpae_defconfig: 31962306a36Sopenharmony_ci $(call merge_into_defconfig,multi_v7_defconfig,lpae) 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_cidefine archhelp 32262306a36Sopenharmony_ci echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' 32362306a36Sopenharmony_ci echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' 32462306a36Sopenharmony_ci echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' 32562306a36Sopenharmony_ci echo ' uImage - U-Boot wrapped zImage' 32662306a36Sopenharmony_ci echo ' bootpImage - Combined zImage and initial RAM disk' 32762306a36Sopenharmony_ci echo ' (supply initrd image via make variable INITRD=<path>)' 32862306a36Sopenharmony_ci echo ' install - Install uncompressed kernel' 32962306a36Sopenharmony_ci echo ' zinstall - Install compressed kernel' 33062306a36Sopenharmony_ci echo ' uinstall - Install U-Boot wrapped compressed kernel' 33162306a36Sopenharmony_ci echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or' 33262306a36Sopenharmony_ci echo ' (distribution) /sbin/$(INSTALLKERNEL) or' 33362306a36Sopenharmony_ci echo ' install to $$(INSTALL_PATH) and run lilo' 33462306a36Sopenharmony_ci echo ' vdso_install - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso' 33562306a36Sopenharmony_ci echo 33662306a36Sopenharmony_ci echo ' multi_v7_lpae_defconfig - multi_v7_defconfig with CONFIG_ARM_LPAE enabled' 33762306a36Sopenharmony_ciendef 338