xref: /optee_os/core/arch/arm/arm.mk (revision a0fdab653c2f0ea1f1c2b2fa8765f2e8a0df0474)
1CFG_LTC_OPTEE_THREAD ?= y
2
3ifeq ($(CFG_ARM64_core),y)
4CFG_KERN_LINKER_FORMAT ?= elf64-littleaarch64
5CFG_KERN_LINKER_ARCH ?= aarch64
6endif
7ifeq ($(CFG_ARM32_core),y)
8CFG_KERN_LINKER_FORMAT ?= elf32-littlearm
9CFG_KERN_LINKER_ARCH ?= arm
10endif
11
12
13core-platform-cppflags	+= -I$(arch-dir)/include
14core-platform-subdirs += \
15	$(addprefix $(arch-dir)/, kernel mm tee sta) $(platform-dir)
16
17ifneq ($(CFG_WITH_ARM_TRUSTED_FW),y)
18core-platform-subdirs += $(arch-dir)/sm
19endif
20
21arm64-platform-cppflags += -DARM64=1 -D__LP64__=1
22arm32-platform-cppflags += -DARM32=1 -D__ILP32__=1
23
24platform-cflags-generic ?= -g -ffunction-sections -fdata-sections -pipe
25platform-aflags-generic ?= -g -pipe
26
27arm32-platform-cflags-no-hard-float ?= -mno-apcs-float -mfloat-abi=soft
28arm32-platform-cflags-generic ?= -mthumb -mthumb-interwork -mlong-calls \
29			-fno-short-enums -fno-common -mno-unaligned-access
30arm32-platform-aflags-no-hard-float ?=
31
32arm64-platform-cflags-no-hard-float ?= -mgeneral-regs-only
33arm64-platform-cflags-generic ?= -mstrict-align
34
35ifeq ($(DEBUG),1)
36platform-cflags-optimization ?=  -O0
37else
38platform-cflags-optimization ?=  -Os
39endif
40
41platform-cflags-debug-info ?= -g3
42platform-aflags-debug-info ?=
43
44core-platform-cflags += $(platform-cflags-optimization)
45core-platform-cflags += $(platform-cflags-generic)
46core-platform-cflags += $(platform-cflags-debug-info)
47
48core-platform-aflags += $(platform-aflags-generic)
49core-platform-aflags += $(platform-aflags-debug-info)
50
51ifeq ($(CFG_ARM64_core),y)
52core-platform-cppflags += $(arm64-platform-cppflags)
53core-platform-cflags += $(arm64-platform-cflags)
54core-platform-cflags += $(arm64-platform-cflags-generic)
55core-platform-cflags += $(arm64-platform-cflags-no-hard-float)
56core-platform-aflags += $(arm64-platform-aflags)
57else
58core-platform-cppflags += $(arm32-platform-cppflags)
59core-platform-cflags += $(arm32-platform-cflags)
60core-platform-cflags += $(arm32-platform-cflags-no-hard-float)
61core-platform-cflags += $(arm32-platform-cflags-generic)
62core-platform-aflags += $(core_arm32-platform-aflags)
63core-platform-aflags += $(arm32-platform-aflags)
64endif
65
66ifneq ($(filter ta_arm32,$(ta-targets)),)
67# Variables for ta-target/sm "ta_arm32"
68CFG_ARM32_ta_arm32 := y
69ta_arm32-platform-cppflags += $(arm32-platform-cppflags)
70ta_arm32-platform-cflags += $(arm32-platform-cflags)
71ta_arm32-platform-cflags += $(platform-cflags-optimization)
72ta_arm32-platform-cflags += $(platform-cflags-debug-info)
73ta_arm32-platform-cflags += -fpie
74ta_arm32-platform-cflags += $(arm32-platform-cflags-generic)
75ta_arm32-platform-cflags += $(arm32-platform-cflags-no-hard-float)
76ta_arm32-platform-aflags += $(platform-aflags-debug-info)
77ta_arm32-platform-aflags += $(arm32-platform-aflags)
78
79ta-mk-file-export-vars-ta_arm32 += CFG_ARM32_ta_arm32
80ta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-cppflags
81ta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-cflags
82ta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-aflags
83endif
84
85ifneq ($(filter ta_arm64,$(ta-targets)),)
86# Variables for ta-target/sm "ta_arm64"
87CFG_ARM64_ta_arm64 := y
88ta_arm64-platform-cppflags += $(arm64-platform-cppflags)
89ta_arm64-platform-cflags += $(arm64-platform-cflags)
90ta_arm64-platform-cflags += $(platform-cflags-optimization)
91ta_arm64-platform-cflags += $(platform-cflags-debug-info)
92ta_arm64-platform-cflags += -fpie
93ta_arm64-platform-cflags += $(arm64-platform-cflags-generic)
94ta_arm64-platform-cflags += $(arm64-platform-cflags-no-hard-float)
95ta_arm64-platform-aflags += $(platform-aflags-debug-info)
96ta_arm64-platform-aflags += $(arm64-platform-aflags)
97
98ta-mk-file-export-vars-ta_arm64 += CFG_ARM64_ta_arm64
99ta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-cppflags
100ta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-cflags
101ta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-aflags
102endif
103