1# 2# arch/blackfin/Makefile 3# 4# This file is subject to the terms and conditions of the GNU General Public 5# License. See the file "COPYING" in the main directory of this archive 6# for more details. 7# 8 9ifeq ($(CROSS_COMPILE),) 10CROSS_COMPILE := bfin-uclinux- 11endif 12LDFLAGS_vmlinux := -X 13OBJCOPYFLAGS := -O binary -R .note -R .comment -S 14GZFLAGS := -9 15 16KBUILD_CFLAGS += $(call cc-option,-mno-fdpic) 17KBUILD_AFLAGS += $(call cc-option,-mno-fdpic) 18CFLAGS_MODULE += -mlong-calls 19KALLSYMS += --symbol-prefix=_ 20 21KBUILD_DEFCONFIG := BF537-STAMP_defconfig 22 23# setup the machine name and the machine dependent settings 24machine-$(CONFIG_BF512) := bf518 25machine-$(CONFIG_BF514) := bf518 26machine-$(CONFIG_BF516) := bf518 27machine-$(CONFIG_BF518) := bf518 28machine-$(CONFIG_BF522) := bf527 29machine-$(CONFIG_BF523) := bf527 30machine-$(CONFIG_BF524) := bf527 31machine-$(CONFIG_BF525) := bf527 32machine-$(CONFIG_BF526) := bf527 33machine-$(CONFIG_BF527) := bf527 34machine-$(CONFIG_BF531) := bf533 35machine-$(CONFIG_BF532) := bf533 36machine-$(CONFIG_BF533) := bf533 37machine-$(CONFIG_BF534) := bf537 38machine-$(CONFIG_BF536) := bf537 39machine-$(CONFIG_BF537) := bf537 40machine-$(CONFIG_BF538) := bf538 41machine-$(CONFIG_BF539) := bf538 42machine-$(CONFIG_BF542) := bf548 43machine-$(CONFIG_BF542M) := bf548 44machine-$(CONFIG_BF544) := bf548 45machine-$(CONFIG_BF544M) := bf548 46machine-$(CONFIG_BF547) := bf548 47machine-$(CONFIG_BF547M) := bf548 48machine-$(CONFIG_BF548) := bf548 49machine-$(CONFIG_BF548M) := bf548 50machine-$(CONFIG_BF549) := bf548 51machine-$(CONFIG_BF549M) := bf548 52machine-$(CONFIG_BF561) := bf561 53MACHINE := $(machine-y) 54export MACHINE 55 56cpu-$(CONFIG_BF512) := bf512 57cpu-$(CONFIG_BF514) := bf514 58cpu-$(CONFIG_BF516) := bf516 59cpu-$(CONFIG_BF518) := bf518 60cpu-$(CONFIG_BF522) := bf522 61cpu-$(CONFIG_BF523) := bf523 62cpu-$(CONFIG_BF524) := bf524 63cpu-$(CONFIG_BF525) := bf525 64cpu-$(CONFIG_BF526) := bf526 65cpu-$(CONFIG_BF527) := bf527 66cpu-$(CONFIG_BF531) := bf531 67cpu-$(CONFIG_BF532) := bf532 68cpu-$(CONFIG_BF533) := bf533 69cpu-$(CONFIG_BF534) := bf534 70cpu-$(CONFIG_BF536) := bf536 71cpu-$(CONFIG_BF537) := bf537 72cpu-$(CONFIG_BF538) := bf538 73cpu-$(CONFIG_BF539) := bf539 74cpu-$(CONFIG_BF542) := bf542 75cpu-$(CONFIG_BF542M) := bf542m 76cpu-$(CONFIG_BF544) := bf544 77cpu-$(CONFIG_BF544M) := bf544m 78cpu-$(CONFIG_BF547) := bf547 79cpu-$(CONFIG_BF547M) := bf547m 80cpu-$(CONFIG_BF548) := bf548 81cpu-$(CONFIG_BF548M) := bf548m 82cpu-$(CONFIG_BF549) := bf549 83cpu-$(CONFIG_BF549M) := bf549m 84cpu-$(CONFIG_BF561) := bf561 85 86rev-$(CONFIG_BF_REV_0_0) := 0.0 87rev-$(CONFIG_BF_REV_0_1) := 0.1 88rev-$(CONFIG_BF_REV_0_2) := 0.2 89rev-$(CONFIG_BF_REV_0_3) := 0.3 90rev-$(CONFIG_BF_REV_0_4) := 0.4 91rev-$(CONFIG_BF_REV_0_5) := 0.5 92rev-$(CONFIG_BF_REV_0_6) := 0.6 93rev-$(CONFIG_BF_REV_NONE) := none 94rev-$(CONFIG_BF_REV_ANY) := any 95 96KBUILD_CFLAGS += -mcpu=$(cpu-y)-$(rev-y) 97KBUILD_AFLAGS += -mcpu=$(cpu-y)-$(rev-y) 98 99# - we utilize the silicon rev from the toolchain, so move it over to the checkflags 100# - the l1_text attribute is Blackfin specific, so fake it out as used to kill warnings 101CHECKFLAGS_SILICON = $(shell echo "" | $(CPP) $(KBUILD_CFLAGS) -dD - 2>/dev/null | awk '$$2 == "__SILICON_REVISION__" { print $$3 }') 102CHECKFLAGS += -D__SILICON_REVISION__=$(CHECKFLAGS_SILICON) -Dl1_text=__used__ 103 104head-y := arch/$(ARCH)/kernel/init_task.o 105 106core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ arch/$(ARCH)/mach-common/ 107 108# If we have a machine-specific directory, then include it in the build. 109ifneq ($(machine-y),) 110core-y += arch/$(ARCH)/mach-$(MACHINE)/ 111core-y += arch/$(ARCH)/mach-$(MACHINE)/boards/ 112endif 113 114ifeq ($(CONFIG_MPU),y) 115core-y += arch/$(ARCH)/kernel/cplb-mpu/ 116else 117core-y += arch/$(ARCH)/kernel/cplb-nompu/ 118endif 119 120drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/ 121 122libs-y += arch/$(ARCH)/lib/ 123 124machdirs := $(patsubst %,arch/blackfin/mach-%/, $(machine-y)) 125 126KBUILD_CFLAGS += -Iarch/$(ARCH)/include/ 127KBUILD_CFLAGS += -Iarch/$(ARCH)/mach-$(MACHINE)/include 128 129KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) 130 131CLEAN_FILES += \ 132 arch/$(ARCH)/include/asm/asm-offsets.h \ 133 arch/$(ARCH)/kernel/asm-offsets.s \ 134 135archclean: 136 $(Q)$(MAKE) $(clean)=$(boot) 137 138INSTALL_PATH ?= /tftpboot 139boot := arch/$(ARCH)/boot 140BOOT_TARGETS = vmImage 141PHONY += $(BOOT_TARGETS) install 142KBUILD_IMAGE := $(boot)/vmImage 143 144all: vmImage 145 146$(BOOT_TARGETS): vmlinux 147 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 148 149install: 150 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install 151 152define archhelp 153 echo '* vmImage - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage)' 154 echo ' install - Install kernel using' 155 echo ' (your) ~/bin/$(CROSS_COMPILE)installkernel or' 156 echo ' (distribution) PATH: $(CROSS_COMPILE)installkernel or' 157 echo ' install to $$(INSTALL_PATH)' 158endef 159