2 # Addresses of things unless overridden
5 ifeq ($(strip ${CFG_UNCACHED}),1)
6 CFG_TEXT_START ?
= 0xBFC00000
7 CFG_DATA_START ?
= 0xA1F00000
8 CFG_ROM_START ?
= 0xBFC00000
10 CFG_TEXT_START ?
= 0x9FC00000
11 CFG_DATA_START ?
= 0x81F00000
12 CFG_ROM_START ?
= 0xBFC00000
16 # BOOTRAM mode (runs from ROM vector assuming ROM is writable)
17 # implies no relocation.
20 ifeq ($(strip ${CFG_BOOTRAM}),1)
26 # Basic compiler options and preprocessor flags
29 CFLAGS
+= -gdwarf-2
-c
-ffreestanding
30 CFLAGS
+= -Os
-Wall
-Werror
-Wstrict-prototypes
-Wmissing-prototypes
35 TOOLPREFIX ?
= sb1-elf-
36 GCC ?
= $(TOOLS
)$(TOOLPREFIX
)gcc
37 GCPP ?
= $(TOOLS
)$(TOOLPREFIX
)cpp
38 GLD ?
= $(TOOLS
)$(TOOLPREFIX
)ld
39 GAR ?
= $(TOOLS
)$(TOOLPREFIX
)ar
40 OBJDUMP ?
= $(TOOLS
)$(TOOLPREFIX
)objdump
41 OBJCOPY ?
= $(TOOLS
)$(TOOLPREFIX
)objcopy
42 RANLIB ?
= $(TOOLS
)$(TOOLPREFIX
)ranlib
45 # Check for 64-bit mode
48 ifeq ($(strip ${CFG_MLONG64}),1)
49 CFLAGS
+= -mlong64
-D__long64
53 # Determine parameters for the linker script, which is generated
54 # using the C preprocessor.
56 # Supported combinations:
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
65 LDFLAGS
+= -g
--script
$(LDSCRIPT
)
66 LDSCRIPT_TEMPLATE
= ${ARCH_SRC}/cfe_ldscript.template
68 ifeq ($(strip ${CFG_UNCACHED}),1)
69 GENLDFLAGS
+= -DCFG_RUNFROMKSEG0
=0
71 GENLDFLAGS
+= -DCFG_RUNFROMKSEG0
=1
74 ifeq ($(strip ${CFG_RAMAPP}),1)
75 GENLDFLAGS
+= -DCFG_RAMAPP
=1
76 GENLDFLAGS
+= -DCFG_RUNFROMKSEG0
=1
78 ifeq ($(strip ${CFG_RELOC}),0)
79 ifeq ($(strip ${CFG_BOOTRAM}),1)
80 GENLDFLAGS
+= -DCFG_BOOTRAM
=1
82 GENLDFLAGS
+= -DCFG_BOOTRAM
=0
85 CFLAGS
+= -membedded-pic
-mlong-calls
86 GENLDFLAGS
+= -DCFG_EMBEDDED_PIC
=1
87 LDFLAGS
+= --embedded-relocs
92 # Add GENLDFLAGS to CFLAGS (we need this stuff in the C code as well)
95 CFLAGS
+= ${GENLDFLAGS}
98 # Determine target endianness
101 ifeq ($(strip ${CFG_LITTLE}),1)
110 # Add the text/data/ROM addresses to the GENLDFLAGS so they
111 # will make it into the linker script.
114 GENLDFLAGS
+= -DCFE_ROM_START
=${CFG_ROM_START}
115 GENLDFLAGS
+= -DCFE_TEXT_START
=${CFG_TEXT_START}
116 GENLDFLAGS
+= -DCFE_DATA_START
=${CFG_DATA_START}
117 GENLDFLAGS
+= -DCFG_XIP
=${CFG_XIP}