152 lines
4.5 KiB
Plaintext
152 lines
4.5 KiB
Plaintext
# defs.arm - ARM specific definitions shared by all toolchains
|
|
#
|
|
# Copyright (c) 2001, 2003, 2005, 2006-2008, 2010 Wind River Systems, Inc.
|
|
#
|
|
# The right to copy, distribute or otherwise make use of this software
|
|
# may be licensed only pursuant to the terms of an applicable Wind River
|
|
# license agreement.
|
|
#
|
|
# modification history
|
|
# --------------------
|
|
# 01m,12nov10,jdw Fix HW/SW floating point support (WIND00241091)
|
|
# 01l,13jul10,fao add be8 support.
|
|
# 01k,19sep08,pee fixing FP for TC.
|
|
# 01j,20aug08,mze set ENDIAN to little if not defaulted
|
|
# 01i,19aug08,mze TOOL changes
|
|
# 01h,24jun08,pee VSB adaptation.
|
|
# 01g,27mar08,m_h Add MMUless ARM7tdmi variant
|
|
# 01f,14mar07,pee added generic option support and LIB_ROOT support
|
|
# 01e,27jun06,pee added TC_INFO for osconfig
|
|
# 01e,20jun06,jb Remove 920t as variant
|
|
# 01d,31jan06,m_h Manzano Variant
|
|
# 01c,28nov05,jb Adding 920 as a CPU Variant
|
|
# 01b,10dec03,yvp Added ABI_SPEC.
|
|
# 01a,18dec01,to written
|
|
#
|
|
# DESCRIPTION
|
|
# This file contains ARM specific definitions and flags to be
|
|
# shared by all toolchains.
|
|
#
|
|
# NOTE
|
|
# The file name comes from defs.$(VX_CPU_FAMILY)
|
|
#
|
|
|
|
TOOLENV = arm
|
|
VX_CPU_FAMILY = arm
|
|
ARCH_DIR = arm
|
|
ABI_SPEC = arm
|
|
|
|
ROM_ENTRY = romInit
|
|
USR_ENTRY = usrInit
|
|
SYS_ENTRY = sysInit
|
|
|
|
BUILD_ENDIAN_SUFFIX_big = be
|
|
BUILD_ENDIAN_SUFFIX_be8 = be8
|
|
BUILD_ENDIAN_SUFFIX_little =
|
|
|
|
BUILD_FP_PREFIX_soft =
|
|
_WRS_CONFIG_FP ?= soft
|
|
|
|
# tool may already be stripped but ENDIAN may not be set
|
|
_WRS_CONFIG_ENDIAN ?= little
|
|
|
|
ifeq ($(findstring be,$(TOOL)),be)
|
|
override _WRS_CONFIG_ENDIAN = big
|
|
export _WRS_CONFIG_ENDIAN
|
|
ifneq ($(findstring be,$(TOOL_SPECIFIC_DIR)),be)
|
|
override TOOL_SPECIFIC_DIR = $(TOOL_FAMILY)be
|
|
endif
|
|
ifneq ($(findstring be,$(TOOL_COMMON_DIR)),be)
|
|
override TOOL_COMMON_DIR = commonbe
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(findstring be8,$(TOOL)),be8)
|
|
override _WRS_CONFIG_ENDIAN = be8
|
|
export _WRS_CONFIG_ENDIAN
|
|
ifneq ($(findstring be8,$(TOOL_SPECIFIC_DIR)),be8)
|
|
override TOOL_SPECIFIC_DIR = $(TOOL_FAMILY)be8
|
|
endif
|
|
ifneq ($(findstring be8,$(TOOL_COMMON_DIR)),be8)
|
|
override TOOL_COMMON_DIR = commonbe8
|
|
endif
|
|
endif
|
|
|
|
|
|
ifeq ($(_WRS_CONFIG_ENDIAN),big)
|
|
# definitions for big endian
|
|
DEFINE_CC += -DARMEB
|
|
OBJCOPY_OLD_OMF = -O coff-arm-big
|
|
else
|
|
ifeq ($(_WRS_CONFIG_ENDIAN),be8)
|
|
# definitions for be8 endian
|
|
DEFINE_CC += -DARMEB -DARMBE8
|
|
OBJCOPY_OLD_OMF = -O coff-arm-big
|
|
else
|
|
# definitions for little endian
|
|
DEFINE_CC += -DARMEL
|
|
OBJCOPY_OLD_OMF = -O coff-arm-little
|
|
endif
|
|
endif
|
|
|
|
LD_LINK_PATH_EXTRA += \
|
|
-L$(LIB_ROOT)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU)$(CPU_OPTION_SUFFIX)/$(TOOL_SPECIFIC_DIR)$(CPU_VARIANT)$(MINOR_OPTION_SUFFIX) \
|
|
-L$(LIB_ROOT)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(CPU_VARIANT)$(MINOR_OPTION_SUFFIX)
|
|
|
|
## CPU variants builds
|
|
#
|
|
# For CPU variants builds, the name of the directory(ies) where archives are
|
|
# installed is appended with a unique tag defined by LIB_DIR_TAG. The make
|
|
# variable CPU_VARIANT_LIST define the whole list of these CPU variant tags
|
|
# and should be updated everytime a new CPU variant build is introduced. For
|
|
# instance:
|
|
# CPU_VARIANT_LIST = _cpuVariant1 _cpuVariant2 _cpuVariant3
|
|
|
|
CPU_VARIANT_LIST = _manzano _armarch4mmuless
|
|
|
|
# Each CPU variant build must define the following variables:
|
|
#
|
|
# - VX_ARCHIVE_LIST$(LIB_DIR_TAG): this is the list of archive(s) to
|
|
# build for this CPU variant. Note that $(LIB_DIR_TAG) must be equal
|
|
# to one of the item defined in CPU_VARIANT_LIST. For instance:
|
|
# VX_ARCHIVE_LIST_cpuVariant1 = libarch.a libdrv.a
|
|
#
|
|
# - CPU_VARIANT_CPU_TOOL_LIST$(LIB_DIR_TAG): this is the list of
|
|
# CPU/TOOL combination(s) for which the CPU variant build must be
|
|
# run. For instance:
|
|
# CPU_VARIANT_CPU_TOOL_LIST_cpuVariant2 = MIPS32diab MIPS64diab
|
|
#
|
|
# NOTE: CPU variant build(s) are kicked off by the default build rule
|
|
# in target/h/make/rules.library.
|
|
|
|
VX_ARCHIVE_LIST_manzano = libarch.a
|
|
|
|
CPU_VARIANT_CPU_TOOL_LIST_manzano = XSCALEdiab XSCALEdiabbe
|
|
|
|
ifeq ($(LIB_DIR_TAG),_manzano)
|
|
DEFINE_CC += -DARMCPUMANZANO
|
|
endif
|
|
|
|
VX_ARCHIVE_LIST_armmmuless = libarch.a
|
|
|
|
CPU_VARIANT_CPU_TOOL_LIST_armarch4mmuless = ARMARCH4diab ARMARCH4diabbe
|
|
|
|
ifeq ($(LIB_DIR_TAG),_armarch4mmuless)
|
|
DEFINE_CC += -DARMCPUMMULESS
|
|
endif
|
|
|
|
ifeq ($(TC_INFO),TRUE)
|
|
FP ?= soft
|
|
ifeq ($(findstring be, $(TOOL)),be)
|
|
ENDIAN = big
|
|
else
|
|
ENDIAN = little
|
|
endif
|
|
ifeq ($(findstring be8, $(TOOL)),be8)
|
|
ENDIAN = be8
|
|
endif
|
|
endif
|
|
|
|
|
|
# end of defs.arm
|