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