2 # This file is subject to the terms and conditions of the GNU General Public
3 # License. See the file "COPYING" in the main directory of this archive
6 # Copyright (C) 2001 - 2005 Tensilica Inc.
7 # Copyright (C) 2014 Cadence Design Systems Inc.
9 # This file is included by the global makefile so that you can add your own
10 # architecture-specific flags and dependencies. Remember to do have actions
11 # for "archclean" and "archdep" for cleaning up and making dependencies for
15 # (Use VAR=<xtensa_config> to use another default compiler.)
17 variant-y
:= $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME
))
19 VARIANT
= $(variant-y
)
22 # Test for cross compiling
25 COMPILE_ARCH
= $(shell uname
-m
)
27 ifneq ($(COMPILE_ARCH
), xtensa
)
29 CROSS_COMPILE
= xtensa_
$(VARIANT
)-
34 # Platform configuration
36 platform-
$(CONFIG_XTENSA_PLATFORM_XT2000
) := xt2000
37 platform-
$(CONFIG_XTENSA_PLATFORM_ISS
) := iss
38 platform-
$(CONFIG_XTENSA_PLATFORM_XTFPGA
) := xtfpga
40 PLATFORM
= $(platform-y
)
43 # temporarily until string.h is fixed
44 KBUILD_CFLAGS
+= -ffreestanding
-D__linux__
45 KBUILD_CFLAGS
+= -pipe
-mlongcalls
-mtext-section-literals
46 KBUILD_CFLAGS
+= $(call cc-option
,-mforce-no-pic
,)
47 KBUILD_CFLAGS
+= $(call cc-option
,-mno-serialize-volatile
,)
49 KBUILD_AFLAGS
+= -mlongcalls
-mtext-section-literals
51 ifneq ($(CONFIG_LD_NO_RELAX
),)
55 ifeq ($(shell echo __XTENSA_EB__ |
$(CC
) -E
- | grep
-v
"\#"),1)
56 CHECKFLAGS
+= -D__XTENSA_EB__
57 KBUILD_CPPFLAGS
+= -DCONFIG_CPU_BIG_ENDIAN
59 ifeq ($(shell echo __XTENSA_EL__ |
$(CC
) -E
- | grep
-v
"\#"),1)
60 CHECKFLAGS
+= -D__XTENSA_EL__
61 KBUILD_CPPFLAGS
+= -DCONFIG_CPU_LITTLE_ENDIAN
64 vardirs
:= $(patsubst %,arch
/xtensa
/variants
/%/,$(variant-y
))
65 plfdirs
:= $(patsubst %,arch
/xtensa
/platforms
/%/,$(platform-y
))
68 KBUILD_CPPFLAGS
+= $(patsubst %,-I
%include,$(vardirs
) $(plfdirs
))
70 KBUILD_CPPFLAGS
+= $(patsubst %,-I
$(srctree
)/%include,$(vardirs
) $(plfdirs
))
73 KBUILD_DEFCONFIG
:= iss_defconfig
75 # Only build variant and/or platform if it includes a Makefile
77 buildvar
:= $(shell test -e
$(srctree
)/arch
/xtensa
/variants
/$(VARIANT
)/Makefile
&& echo arch
/xtensa
/variants
/$(VARIANT
)/)
78 buildplf
:= $(shell test -e
$(srctree
)/arch
/xtensa
/platforms
/$(PLATFORM
)/Makefile
&& echo arch
/xtensa
/platforms
/$(PLATFORM
)/)
82 LIBGCC
:= $(shell $(CC
) $(KBUILD_CFLAGS
) -print-libgcc-file-name
)
84 head-y
:= arch
/xtensa
/kernel
/head.o
85 core-y
+= arch
/xtensa
/kernel
/ arch
/xtensa
/mm
/
86 core-y
+= $(buildvar
) $(buildplf
)
88 libs-y
+= arch
/xtensa
/lib
/ $(LIBGCC
)
89 drivers-
$(CONFIG_OPROFILE
) += arch
/xtensa
/oprofile
/
91 ifneq ($(CONFIG_BUILTIN_DTB
),"")
92 core-
$(CONFIG_OF
) += arch
/xtensa
/boot
/dts
/
95 boot
:= arch
/xtensa
/boot
97 all Image zImage uImage
: vmlinux
98 $(Q
)$(MAKE
) $(build
)=$(boot
) $@
101 $(Q
)$(MAKE
) $(build
)=$(boot
)/dts
$(boot
)/dts
/$@
104 $(Q
)$(MAKE
) $(build
)=$(boot
)/dts
107 @echo
'* Image - Kernel ELF image with reset vector'
108 @echo
'* zImage - Compressed kernel image (arch/xtensa/boot/images/zImage.*)'
109 @echo
'* uImage - U-Boot wrapped image'
110 @echo
' dtbs - Build device tree blobs for enabled boards'