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) 17ifeq ($(CONFIG_ROMKERNEL),y) 18KBUILD_CFLAGS += -mlong-calls 19endif 20KBUILD_AFLAGS += $(call cc-option,-mno-fdpic) 21KBUILD_CFLAGS_MODULE += -mlong-calls 22LDFLAGS += -m elf32bfin 23KALLSYMS += --symbol-prefix=_ 24 25KBUILD_DEFCONFIG := BF537-STAMP_defconfig 26 27# setup the machine name and the machine dependent settings 28machine-$(CONFIG_BF512) := bf518 29machine-$(CONFIG_BF514) := bf518 30machine-$(CONFIG_BF516) := bf518 31machine-$(CONFIG_BF518) := bf518 32machine-$(CONFIG_BF522) := bf527 33machine-$(CONFIG_BF523) := bf527 34machine-$(CONFIG_BF524) := bf527 35machine-$(CONFIG_BF525) := bf527 36machine-$(CONFIG_BF526) := bf527 37machine-$(CONFIG_BF527) := bf527 38machine-$(CONFIG_BF531) := bf533 39machine-$(CONFIG_BF532) := bf533 40machine-$(CONFIG_BF533) := bf533 41machine-$(CONFIG_BF534) := bf537 42machine-$(CONFIG_BF536) := bf537 43machine-$(CONFIG_BF537) := bf537 44machine-$(CONFIG_BF538) := bf538 45machine-$(CONFIG_BF539) := bf538 46machine-$(CONFIG_BF542) := bf548 47machine-$(CONFIG_BF542M) := bf548 48machine-$(CONFIG_BF544) := bf548 49machine-$(CONFIG_BF544M) := bf548 50machine-$(CONFIG_BF547) := bf548 51machine-$(CONFIG_BF547M) := bf548 52machine-$(CONFIG_BF548) := bf548 53machine-$(CONFIG_BF548M) := bf548 54machine-$(CONFIG_BF549) := bf548 55machine-$(CONFIG_BF549M) := bf548 56machine-$(CONFIG_BF561) := bf561 57MACHINE := $(machine-y) 58export MACHINE 59 60cpu-$(CONFIG_BF512) := bf512 61cpu-$(CONFIG_BF514) := bf514 62cpu-$(CONFIG_BF516) := bf516 63cpu-$(CONFIG_BF518) := bf518 64cpu-$(CONFIG_BF522) := bf522 65cpu-$(CONFIG_BF523) := bf523 66cpu-$(CONFIG_BF524) := bf524 67cpu-$(CONFIG_BF525) := bf525 68cpu-$(CONFIG_BF526) := bf526 69cpu-$(CONFIG_BF527) := bf527 70cpu-$(CONFIG_BF531) := bf531 71cpu-$(CONFIG_BF532) := bf532 72cpu-$(CONFIG_BF533) := bf533 73cpu-$(CONFIG_BF534) := bf534 74cpu-$(CONFIG_BF536) := bf536 75cpu-$(CONFIG_BF537) := bf537 76cpu-$(CONFIG_BF538) := bf538 77cpu-$(CONFIG_BF539) := bf539 78cpu-$(CONFIG_BF542) := bf542 79cpu-$(CONFIG_BF542M) := bf542m 80cpu-$(CONFIG_BF544) := bf544 81cpu-$(CONFIG_BF544M) := bf544m 82cpu-$(CONFIG_BF547) := bf547 83cpu-$(CONFIG_BF547M) := bf547m 84cpu-$(CONFIG_BF548) := bf548 85cpu-$(CONFIG_BF548M) := bf548m 86cpu-$(CONFIG_BF549) := bf549 87cpu-$(CONFIG_BF549M) := bf549m 88cpu-$(CONFIG_BF561) := bf561 89 90rev-$(CONFIG_BF_REV_0_0) := 0.0 91rev-$(CONFIG_BF_REV_0_1) := 0.1 92rev-$(CONFIG_BF_REV_0_2) := 0.2 93rev-$(CONFIG_BF_REV_0_3) := 0.3 94rev-$(CONFIG_BF_REV_0_4) := 0.4 95rev-$(CONFIG_BF_REV_0_5) := 0.5 96rev-$(CONFIG_BF_REV_0_6) := 0.6 97rev-$(CONFIG_BF_REV_NONE) := none 98rev-$(CONFIG_BF_REV_ANY) := any 99 100CPU_REV := $(cpu-y)-$(rev-y) 101export CPU_REV 102 103KBUILD_CFLAGS += -mcpu=$(CPU_REV) 104KBUILD_AFLAGS += -mcpu=$(CPU_REV) 105 106# - we utilize the silicon rev from the toolchain, so move it over to the checkflags 107CHECKFLAGS_SILICON = $(shell echo "" | $(CPP) $(KBUILD_CFLAGS) -dD - 2>/dev/null | awk '$$2 == "__SILICON_REVISION__" { print $$3 }') 108CHECKFLAGS += -D__SILICON_REVISION__=$(CHECKFLAGS_SILICON) -D__bfin__ 109 110head-y := arch/$(ARCH)/kernel/init_task.o 111 112core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ arch/$(ARCH)/mach-common/ 113 114# If we have a machine-specific directory, then include it in the build. 115ifneq ($(machine-y),) 116core-y += arch/$(ARCH)/mach-$(MACHINE)/ 117core-y += arch/$(ARCH)/mach-$(MACHINE)/boards/ 118endif 119 120ifeq ($(CONFIG_MPU),y) 121core-y += arch/$(ARCH)/kernel/cplb-mpu/ 122else 123core-y += arch/$(ARCH)/kernel/cplb-nompu/ 124endif 125 126drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/ 127 128libs-y += arch/$(ARCH)/lib/ 129 130machdirs := $(patsubst %,arch/blackfin/mach-%/, $(machine-y)) 131 132KBUILD_CFLAGS += -Iarch/$(ARCH)/include/ 133KBUILD_CFLAGS += -Iarch/$(ARCH)/mach-$(MACHINE)/include 134 135KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) 136 137CLEAN_FILES += \ 138 arch/$(ARCH)/kernel/asm-offsets.s \ 139 140archclean: 141 $(Q)$(MAKE) $(clean)=$(boot) 142 143INSTALL_PATH ?= /tftpboot 144boot := arch/$(ARCH)/boot 145BOOT_TARGETS = vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma vmImage.lzo vmImage.xip 146PHONY += $(BOOT_TARGETS) install 147KBUILD_IMAGE := $(boot)/vmImage 148 149all: vmImage 150 151$(BOOT_TARGETS): vmlinux 152 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 153 154install: 155 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install 156 157define archhelp 158 echo '* vmImage - Alias to selected kernel format (vmImage.gz by default)' 159 echo ' vmImage.bin - Uncompressed Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.bin)' 160 echo ' vmImage.bz2 - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.bz2)' 161 echo '* vmImage.gz - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.gz)' 162 echo ' vmImage.lzma - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.lzma)' 163 echo ' vmImage.lzo - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.lzo)' 164 echo ' vmImage.xip - XIP Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.xip)' 165 echo ' install - Install kernel using' 166 echo ' (your) ~/bin/$(INSTALLKERNEL) or' 167 echo ' (distribution) PATH: $(INSTALLKERNEL) or' 168 echo ' install to $$(INSTALL_PATH)' 169endef 170