1# 2# Addresses of things unless overridden 3# 4 5# NorthStar: CFG_TEST_START and CFG_DATA_START will be overrided. 6 7ifeq ($(strip ${CFG_UNCACHED}),1) 8 CFG_TEXT_START ?= 0xBFC00000 9 CFG_DATA_START ?= 0xA1F00000 10 CFG_ROM_START ?= 0xFFFD0000 11else 12 CFG_TEXT_START ?= 0x1E000000 13 CFG_DATA_START ?= 0x81F00000 14 CFG_ROM_START ?= 0xFFFD0000 15endif 16 17# 18# BOOTRAM mode (runs from ROM vector assuming ROM is writable) 19# implies no relocation. 20# 21 22ifeq ($(strip ${CFG_BOOTRAM}),1) 23 CFG_RELOC = 0 24endif 25 26 27# 28# Basic compiler options and preprocessor flags 29# 30 31# Add GCC lib 32LDLIBS += -L $(shell dirname `$(GCC) $(CFLAGS) -print-libgcc-file-name`) -lgcc 33 34CFLAGS += -gdwarf-2 -c -fno-builtin -ffreestanding 35CFLAGS += -Wall -Werror -Wstrict-prototypes -fno-stack-protector 36 37# 38# Tools locations 39# 40TOOLPREFIX ?= arm-linux- 41GCC ?= $(TOOLS)$(TOOLPREFIX)gcc 42GCPP ?= $(TOOLS)$(TOOLPREFIX)cpp 43GLD ?= $(TOOLS)$(TOOLPREFIX)ld 44GAR ?= $(TOOLS)$(TOOLPREFIX)ar 45OBJDUMP ?= $(TOOLS)$(TOOLPREFIX)objdump 46OBJCOPY ?= $(TOOLS)$(TOOLPREFIX)objcopy 47RANLIB ?= $(TOOLS)$(TOOLPREFIX)ranlib 48STRIP ?= $(TOOLS)$(TOOLPREFIX)strip 49 50# 51# Check for 64-bit mode 52# 53 54ifeq ($(strip ${CFG_MLONG64}),1) 55 CFLAGS += -mlong64 -D__long64 56endif 57 58# 59# Determine parameters for the linker script, which is generated 60# using the C preprocessor. 61# 62# Supported combinations: 63# 64# CFG_RAMAPP CFG_UNCACHED CFG_RELOC Description 65# Yes YesOrNo MustBeNo CFE as a separate "application" 66# No YesOrNo Yes CFE relocates to RAM as firmware 67# No YesOrNo No CFE runs from flash as firmware 68# 69 70# NorthStar: ./cfe.lds is dynamiclly generated 71 72LDSCRIPT = ./cfe.lds 73LDFLAGS += -g --script $(LDSCRIPT) -pie -Ttext ${CFG_TEXT_START} 74LDSCRIPT_H = ${ARCH_SRC}/cfe.lds.h 75LDSCRIPT_TEMPLATE = ${ARCH_SRC}/cfe_ldscript.template 76 77# NorthStar: ? 78ifeq ($(strip ${CFG_UNCACHED}),1) 79# GENLDFLAGS += -DCFG_RUNFROMKSEG0=0 80else 81# GENLDFLAGS += -DCFG_RUNFROMKSEG0=1 82endif 83 84# NorthStar: ? 85ifeq ($(strip ${CFG_RAMAPP}),1) 86 GENLDFLAGS += -DCFG_RAMAPP=1 87# GENLDFLAGS += -DCFG_RUNFROMKSEG0=1 88else 89 ifeq ($(strip ${CFG_RELOC}),0) 90 ifeq ($(strip ${CFG_BOOTRAM}),1) 91 GENLDFLAGS += -DCFG_BOOTRAM=1 92 else 93 GENLDFLAGS += -DCFG_BOOTRAM=0 94 endif 95 else 96 CFLAGS += -membedded-pic -mlong-calls 97 GENLDFLAGS += -DCFG_EMBEDDED_PIC=1 98 LDFLAGS += --embedded-relocs 99 endif 100endif 101 102# 103# Add GENLDFLAGS to CFLAGS (we need this stuff in the C code as well) 104# 105 106CFLAGS += ${GENLDFLAGS} 107 108# 109# Determine target endianness 110# 111# NorthStar ? 112ifeq ($(strip ${CFG_LITTLE}),1) 113# ENDIAN = -EL 114else 115# ENDIAN = -EB 116# CFLAGS += -EB 117# LDFLAGS += -EB 118endif 119 120# 121# Add the text/data/ROM addresses to the GENLDFLAGS so they 122# will make it into the linker script. 123# 124 125GENLDFLAGS += -DCONFIG_SYS_TEXT_BASE=${CFG_TEXT_START} 126GENLDFLAGS += -DCFE_ROM_START=${CFG_ROM_START} 127GENLDFLAGS += -DCFE_TEXT_START=${CFG_TEXT_START} 128GENLDFLAGS += -DCFE_DATA_START=${CFG_DATA_START} 129GENLDFLAGS += -DCFG_XIP=${CFG_XIP} 130