• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/cfe/cfe/arch/arm/common/src/
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