Add basic support for mini2440 board to barebox.
[barebox-mini2440.git] / arch / arm / Makefile
blobebbe9c053218b3872f0743bf9cae7db922e7993d
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
8 AS += -EB
9 LD += -EB
10 else
11 CPPFLAGS += -mlittle-endian
12 AS += -EL
13 LD += -EL
14 endif
16 comma = ,
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
33 else
34 CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
35 endif
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))
86 ifeq ($(KBUILD_SRC),)
87 CPPFLAGS += $(patsubst %,-I%include,$(machdirs))
88 else
89 CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
90 endif
92 TEXT_BASE = $(CONFIG_TEXT_BASE)
94 CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -P
96 ifndef CONFIG_MODULES
97 # Add cleanup flags
98 CPPFLAGS += -fdata-sections -ffunction-sections
99 LDFLAGS_barebox += -static --gc-sections
100 endif
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
112 endif
114 all: $(KBUILD_IMAGE)
116 archprepare: maketools
117 maketools:
118 $(Q)$(MAKE) $(build)=arch/arm/tools arch/arm/include/asm/mach-types.h
120 PHONY += maketools
122 ifneq ($(board-y),)
123 BOARD := arch/arm/boards/$(board-y)/
124 else
125 BOARD :=
126 endif
128 ifneq ($(machine-y),)
129 MACH := arch/arm/mach-$(machine-y)/
130 else
131 MACH :=
132 endif
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