2 CPPFLAGS
+= -D__ARM__
-fno-strict-aliasing
3 # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
4 CPPFLAGS
+=$(call cc-option
,-marm
,)
6 ifeq ($(CONFIG_CPU_BIG_ENDIAN
),y
)
7 CPPFLAGS
+= -mbig-endian
11 CPPFLAGS
+= -mlittle-endian
18 # This selects which instruction set is used.
19 # Note that GCC does not numerically define an architecture version
20 # macro, but instead defines a whole series of macros which makes
21 # testing for a specific architecture or later rather impossible.
22 arch-
$(CONFIG_CPU_32v7
) :=-D__LINUX_ARM_ARCH__
=7 $(call cc-option
,-march
=armv7-a
,-march
=armv5t
-Wa
$(comma
)-march
=armv7-a
)
23 arch-
$(CONFIG_CPU_32v6
) :=-D__LINUX_ARM_ARCH__
=6 $(call cc-option
,-march
=armv6
,-march
=armv5t
-Wa
$(comma
)-march
=armv6
)
24 arch-
$(CONFIG_CPU_32v5
) :=-D__LINUX_ARM_ARCH__
=5 $(call cc-option
,-march
=armv5te
,-march
=armv4t
)
25 arch-
$(CONFIG_CPU_32v4T
) :=-D__LINUX_ARM_ARCH__
=4 -march
=armv4t
27 # This selects how we optimise for the processor.
28 tune-
$(CONFIG_CPU_ARM920T
) :=-mtune
=arm9tdmi
29 tune-
$(CONFIG_CPU_ARM926T
) :=-mtune
=arm9tdmi
31 ifeq ($(CONFIG_AEABI
),y
)
32 CFLAGS_ABI
:=-mabi
=aapcs-linux
-mno-thumb-interwork
34 CFLAGS_ABI
:=$(call cc-option
,-mapcs-32
,-mabi
=apcs-gnu
) $(call cc-option
,-mno-thumb-interwork
,)
37 CPPFLAGS
+= $(CFLAGS_ABI
) $(arch-y
) $(tune-y
)
39 # Machine directory name. This list is sorted alphanumerically
40 # by CONFIG_* macro name.
41 machine-
$(CONFIG_ARCH_AT91
) := at91
42 machine-
$(CONFIG_ARCH_EP93XX
) := ep93xx
43 machine-
$(CONFIG_ARCH_IMX
) := imx
44 machine-
$(CONFIG_ARCH_NOMADIK
) := nomadik
45 machine-
$(CONFIG_ARCH_NETX
) := netx
46 machine-
$(CONFIG_ARCH_OMAP
) := omap
47 machine-
$(CONFIG_ARCH_S3C24xx
) := s3c24xx
49 # Board directory name. This list is sorted alphanumerically
50 # by CONFIG_* macro name.
51 board-
$(CONFIG_MACH_A9M2410
) := a9m2410
52 board-
$(CONFIG_MACH_A9M2440
) := a9m2440
53 board-
$(CONFIG_MACH_AT91SAM9260EK
) := at91sam9260ek
54 board-
$(CONFIG_MACH_AT91SAM9263EK
) := at91sam9263ek
55 board-
$(CONFIG_MACH_EDB9301
) := edb93xx
56 board-
$(CONFIG_MACH_EDB9302
) := edb93xx
57 board-
$(CONFIG_MACH_EDB9302A
) := edb93xx
58 board-
$(CONFIG_MACH_EDB9307
) := edb93xx
59 board-
$(CONFIG_MACH_EDB9307A
) := edb93xx
60 board-
$(CONFIG_MACH_EDB93012
) := edb93xx
61 board-
$(CONFIG_MACH_EDB9315
) := edb93xx
62 board-
$(CONFIG_MACH_EDB9315A
) := edb93xx
63 board-
$(CONFIG_MACH_EUKREA_CPUIMX25
) := eukrea_cpuimx25
64 board-
$(CONFIG_MACH_EUKREA_CPUIMX27
) := eukrea_cpuimx27
65 board-
$(CONFIG_MACH_EUKREA_CPUIMX35
) := eukrea_cpuimx35
66 board-
$(CONFIG_MACH_FREESCALE_MX25_3STACK
) := freescale-mx25-3-stack
67 board-
$(CONFIG_MACH_FREESCALE_MX35_3STACK
) := freescale-mx35-3-stack
68 board-
$(CONFIG_MACH_IMX21ADS
) := imx21ads
69 board-
$(CONFIG_MACH_IMX27ADS
) := imx27ads
70 board-
$(CONFIG_MACH_MMCCPU
) := mmccpu
71 board-
$(CONFIG_MACH_MX1ADS
) := mx1ads
72 board-
$(CONFIG_MACH_NOMADIK_8815NHK
) := nhk8815
73 board-
$(CONFIG_MACH_NXDB500
) := netx
74 board-
$(CONFIG_ARCH_OMAP
) := omap
75 board-
$(CONFIG_MACH_PCA100
) := phycard-i.MX27
76 board-
$(CONFIG_MACH_PCM037
) := pcm037
77 board-
$(CONFIG_MACH_PCM038
) := pcm038
78 board-
$(CONFIG_MACH_PCM043
) := pcm043
79 board-
$(CONFIG_MACH_PM9263
) := pm9263
80 board-
$(CONFIG_MACH_SCB9328
) := scb9328
81 board-
$(CONFIG_MACH_NESO
) := guf-neso
82 board-
$(CONFIG_MACH_MINI2440
) := mini2440
84 machdirs
:= $(patsubst %,arch
/arm
/mach-
%/,$(machine-y
))
87 CPPFLAGS
+= $(patsubst %,-I
%include,$(machdirs
))
89 CPPFLAGS
+= $(patsubst %,-I
$(srctree
)/%include,$(machdirs
))
92 TEXT_BASE
= $(CONFIG_TEXT_BASE
)
94 CPPFLAGS
+= -DTEXT_BASE
=$(TEXT_BASE
) -P
98 CPPFLAGS
+= -fdata-sections
-ffunction-sections
99 LDFLAGS_barebox
+= -static
--gc-sections
102 barebox.netx
: barebox.bin
103 $(Q
)scripts
/gen_netx_image
-i barebox.bin
-o barebox.netx \
104 --sdramctrl
=$(CONFIG_NETX_SDRAM_CTRL
) \
105 --sdramtimctrl
=$(CONFIG_NETX_SDRAM_TIMING_CTRL
) \
106 --memctrl
=$(CONFIG_NETX_MEM_CTRL
) \
107 --entrypoint
=$(CONFIG_TEXT_BASE
) \
108 --cookie
=$(CONFIG_NETX_COOKIE
);
110 ifeq ($(machine-y
),netx
)
111 KBUILD_IMAGE
:= barebox.netx
116 archprepare
: maketools
118 $(Q
)$(MAKE
) $(build
)=arch
/arm
/tools arch
/arm
/include/asm
/mach-types.h
123 BOARD
:= arch
/arm
/boards
/$(board-y
)/
128 ifneq ($(machine-y
),)
129 MACH
:= arch
/arm
/mach-
$(machine-y
)/
134 common-y
+= $(BOARD
) $(MACH
)
135 common-y
+= arch
/arm
/lib
/ arch
/arm
/cpu
/ arch
/arm
/common
/
137 lds-
$(CONFIG_GENERIC_LINKER_SCRIPT
) := arch
/arm
/lib
/barebox.lds
138 lds-
$(CONFIG_BOARD_LINKER_SCRIPT
) := $(BOARD
)/barebox.lds
140 CLEAN_FILES
+= arch
/arm
/include/asm
/mach-types.h arch
/arm
/lib
/barebox.lds