blob: 3595aa2a9922d72bc1ce04492134e8f8d23ac2f8 [file] [log] [blame]
Wolfgang Denk97caf672006-03-12 02:12:27 +01001#
2# (C) Copyright 2000-2002
3# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4#
5# See file CREDITS for list of people who contributed to this
6# project.
7#
8# This program is free software; you can redistribute it and/or
9# modify it under the terms of the GNU General Public License as
10# published by the Free Software Foundation; either version 2 of
11# the License, or (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21# MA 02111-1307 USA
22#
23
Mike Frysinger8378ba42009-06-14 23:33:14 -040024CROSS_COMPILE ?= bfin-uclinux-
25
Wolfgang Denk33a57342011-02-04 14:25:17 +010026CONFIG_STANDALONE_LOAD_ADDR ?= 0x1000 -m elf32bfin
Mike Frysinger5b660442009-09-03 23:12:47 -040027
Mike Frysinger5b0c1282010-12-23 14:58:37 -050028ifeq ($(CONFIG_BFIN_CPU),)
29CONFIG_BFIN_CPU := \
30 $(shell awk '$$2 == "CONFIG_BFIN_CPU" { print $$3 }' \
31 $(src)include/configs/$(BOARD).h)
32else
33CONFIG_BFIN_CPU := $(strip $(subst ",,$(CONFIG_BFIN_CPU)))
34endif
Mike Frysinger94bae5c2008-03-30 15:46:13 -040035CONFIG_BFIN_BOOT_MODE := $(strip $(subst ",,$(CONFIG_BFIN_BOOT_MODE)))
36
Robin Getz2773d5f2009-08-17 15:23:02 +000037PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic
Mike Frysinger5837ed62008-02-04 19:26:55 -050038PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
Mike Frysingera13ad8e2008-02-04 19:26:55 -050039
Haiying Wang39358732011-02-22 16:38:05 -050040LDFLAGS_FINAL += --gc-sections
Nobuhiro Iwamatsub859b8c2011-01-06 10:23:54 +090041LDFLAGS += -m elf32bfin
Mike Frysinger26bf0cbe2008-10-24 18:18:16 -040042PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
43
Mike Frysingerf0dd7922008-02-18 05:26:48 -050044PLATFORM_RELFLAGS += -mcpu=$(CONFIG_BFIN_CPU)
Mike Frysingerf0dd7922008-02-18 05:26:48 -050045
Mike Frysinger57047e02009-06-15 00:25:19 -040046ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
Daniel Schwierzeck12052d62011-07-13 05:11:01 +000047ALL-y += $(obj)u-boot.ldr
Mike Frysinger57047e02009-06-15 00:25:19 -040048endif
Mike Frysinger45b57bd2009-07-21 22:17:36 -040049ifeq ($(CONFIG_ENV_IS_EMBEDDED_IN_LDR),y)
50CREATE_LDR_ENV = $(obj)tools/envcrc --binary > $(obj)env-ldr.o
Mike Frysingerd16452b2011-11-02 23:49:03 -040051HOSTCFLAGS_NOPED_ADSP := \
Mike Frysinger6ca3e8a2010-09-26 07:00:38 +000052 $(shell $(CPP) -dD - -mcpu=$(CONFIG_BFIN_CPU) </dev/null \
53 | awk '$$2 ~ /ADSP/ { print "-D" $$2 }')
Mike Frysingerd16452b2011-11-02 23:49:03 -040054HOSTCFLAGS_NOPED += $(HOSTCFLAGS_NOPED_ADSP)
Mike Frysinger45b57bd2009-07-21 22:17:36 -040055else
56CREATE_LDR_ENV =
57endif
Mike Frysinger57047e02009-06-15 00:25:19 -040058
Mike Frysingera13ad8e2008-02-04 19:26:55 -050059SYM_PREFIX = _
Mike Frysinger908e7762008-02-04 19:26:57 -050060
Mike Frysingera48e0ed2009-04-24 23:39:41 -040061LDR_FLAGS-y :=
62LDR_FLAGS-$(CONFIG_BFIN_BOOTROM_USES_EVT1) += -J
63
Mike Frysinger10e86e72008-08-07 18:55:30 -040064LDR_FLAGS += --bmode $(subst BFIN_BOOT_,,$(CONFIG_BFIN_BOOT_MODE))
Mike Frysinger908e7762008-02-04 19:26:57 -050065LDR_FLAGS += --use-vmas
Peter Tyserd53e8fd2010-04-12 22:28:02 -050066LDR_FLAGS += --initcode $(obj)$(CPUDIR)/initcode.o
Mike Frysingerbcb71c22008-10-06 04:42:33 -040067ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_UART)
Mike Frysinger45b57bd2009-07-21 22:17:36 -040068LDR_FLAGS-$(CONFIG_ENV_IS_EMBEDDED_IN_LDR) += \
69 --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):$(obj)env-ldr.o
Mike Frysingerbcb71c22008-10-06 04:42:33 -040070endif
Mike Frysingerf0dd7922008-02-18 05:26:48 -050071ifneq (,$(findstring s,$(MAKEFLAGS)))
Mike Frysinger908e7762008-02-04 19:26:57 -050072LDR_FLAGS += --quiet
73endif
Mike Frysingera48e0ed2009-04-24 23:39:41 -040074
75LDR_FLAGS += $(LDR_FLAGS-y)
Mike Frysinger37f48702009-06-14 06:29:07 -040076
Mike Frysinger785ce792010-12-23 14:19:23 -050077# Set some default LDR flags based on boot mode.
78LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
79
Mike Frysingerd6a28fa2010-12-23 14:13:41 -050080ifneq ($(CONFIG_SYS_TEXT_BASE),)
81$(error do not set CONFIG_SYS_TEXT_BASE for Blackfin boards)
82endif