blob: 584b38b17aa55068b46e538f0ec68b0c59e0856a [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#
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005# SPDX-License-Identifier: GPL-2.0+
Wolfgang Denk97caf672006-03-12 02:12:27 +01006#
7
Masahiro Yamadaf0ac9e02014-02-28 14:33:30 +09008ifeq ($(CROSS_COMPILE),)
9CROSS_COMPILE := bfin-uclinux-
10endif
Mike Frysinger8378ba42009-06-14 23:33:14 -040011
Wolfgang Denk33a57342011-02-04 14:25:17 +010012CONFIG_STANDALONE_LOAD_ADDR ?= 0x1000 -m elf32bfin
Mike Frysinger5b660442009-09-03 23:12:47 -040013
Mike Frysinger5b0c1282010-12-23 14:58:37 -050014ifeq ($(CONFIG_BFIN_CPU),)
15CONFIG_BFIN_CPU := \
16 $(shell awk '$$2 == "CONFIG_BFIN_CPU" { print $$3 }' \
Masahiro Yamada59f15f22014-02-04 17:24:24 +090017 $(srctree)/include/configs/$(BOARD).h)
Mike Frysinger5b0c1282010-12-23 14:58:37 -050018else
Masahiro Yamada7c9c7442013-12-05 15:08:31 +090019CONFIG_BFIN_CPU := $(strip $(CONFIG_BFIN_CPU:"%"=%))
Mike Frysinger5b0c1282010-12-23 14:58:37 -050020endif
Masahiro Yamada7c9c7442013-12-05 15:08:31 +090021CONFIG_BFIN_BOOT_MODE := $(strip $(CONFIG_BFIN_BOOT_MODE:"%"=%))
Mike Frysinger94bae5c2008-03-30 15:46:13 -040022
Sonic Zhang3fbfdd12014-07-17 19:00:29 +080023# Support generic board on Blackfin
24__HAVE_ARCH_GENERIC_BOARD := y
25
Robin Getz2773d5f2009-08-17 15:23:02 +000026PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic
Mike Frysingera13ad8e2008-02-04 19:26:55 -050027
Haiying Wang39358732011-02-22 16:38:05 -050028LDFLAGS_FINAL += --gc-sections
Nobuhiro Iwamatsub859b8c2011-01-06 10:23:54 +090029LDFLAGS += -m elf32bfin
Mike Frysinger26bf0cbe2008-10-24 18:18:16 -040030PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
31
Mike Frysingerf0dd7922008-02-18 05:26:48 -050032PLATFORM_RELFLAGS += -mcpu=$(CONFIG_BFIN_CPU)
Mike Frysingerf0dd7922008-02-18 05:26:48 -050033
Mike Frysinger57047e02009-06-15 00:25:19 -040034ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
Masahiro Yamada59f15f22014-02-04 17:24:24 +090035ALL-y += u-boot.ldr
Mike Frysinger57047e02009-06-15 00:25:19 -040036endif
Mike Frysinger45b57bd2009-07-21 22:17:36 -040037ifeq ($(CONFIG_ENV_IS_EMBEDDED_IN_LDR),y)
Masahiro Yamada59f15f22014-02-04 17:24:24 +090038CREATE_LDR_ENV = tools/envcrc --binary > env-ldr.o
Mike Frysingerd16452b2011-11-02 23:49:03 -040039HOSTCFLAGS_NOPED_ADSP := \
Mike Frysinger6ca3e8a2010-09-26 07:00:38 +000040 $(shell $(CPP) -dD - -mcpu=$(CONFIG_BFIN_CPU) </dev/null \
41 | awk '$$2 ~ /ADSP/ { print "-D" $$2 }')
Mike Frysingerd16452b2011-11-02 23:49:03 -040042HOSTCFLAGS_NOPED += $(HOSTCFLAGS_NOPED_ADSP)
Mike Frysinger45b57bd2009-07-21 22:17:36 -040043else
44CREATE_LDR_ENV =
45endif
Mike Frysinger57047e02009-06-15 00:25:19 -040046
Mike Frysingera13ad8e2008-02-04 19:26:55 -050047SYM_PREFIX = _
Masahiro Yamada958fe8f2014-03-05 16:59:40 +090048export SYM_PREFIX
Mike Frysinger908e7762008-02-04 19:26:57 -050049
Mike Frysingera48e0ed2009-04-24 23:39:41 -040050LDR_FLAGS-y :=
51LDR_FLAGS-$(CONFIG_BFIN_BOOTROM_USES_EVT1) += -J
52
Mike Frysinger10e86e72008-08-07 18:55:30 -040053LDR_FLAGS += --bmode $(subst BFIN_BOOT_,,$(CONFIG_BFIN_BOOT_MODE))
Mike Frysinger908e7762008-02-04 19:26:57 -050054LDR_FLAGS += --use-vmas
Masahiro Yamada59f15f22014-02-04 17:24:24 +090055LDR_FLAGS += --initcode $(CPUDIR)/initcode.o
Mike Frysingerbcb71c22008-10-06 04:42:33 -040056ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_UART)
Mike Frysinger45b57bd2009-07-21 22:17:36 -040057LDR_FLAGS-$(CONFIG_ENV_IS_EMBEDDED_IN_LDR) += \
Masahiro Yamada59f15f22014-02-04 17:24:24 +090058 --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):env-ldr.o
Mike Frysingerbcb71c22008-10-06 04:42:33 -040059endif
Mike Frysingerf0dd7922008-02-18 05:26:48 -050060ifneq (,$(findstring s,$(MAKEFLAGS)))
Mike Frysinger908e7762008-02-04 19:26:57 -050061LDR_FLAGS += --quiet
62endif
Mike Frysingera48e0ed2009-04-24 23:39:41 -040063
64LDR_FLAGS += $(LDR_FLAGS-y)
Mike Frysinger37f48702009-06-14 06:29:07 -040065
Mike Frysinger785ce792010-12-23 14:19:23 -050066# Set some default LDR flags based on boot mode.
67LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
68
Mike Frysingerd6a28fa2010-12-23 14:13:41 -050069ifneq ($(CONFIG_SYS_TEXT_BASE),)
70$(error do not set CONFIG_SYS_TEXT_BASE for Blackfin boards)
71endif