xref: /optee_os/core/arch/arm/arm.mk (revision 739804b56d26d686555a2fb58acb0e7508816bfd)
1a189a570SPascal BrandCFG_LTC_OPTEE_THREAD ?= y
2a189a570SPascal Brand
3abe38974SJens Wiklanderifeq ($(CFG_ARM64_core),y)
47a976658SJerome ForissierCFG_KERN_LINKER_FORMAT ?= elf64-littleaarch64
57a976658SJerome ForissierCFG_KERN_LINKER_ARCH ?= aarch64
6abe38974SJens Wiklanderendif
7abe38974SJens Wiklanderifeq ($(CFG_ARM32_core),y)
87a976658SJerome ForissierCFG_KERN_LINKER_FORMAT ?= elf32-littlearm
97a976658SJerome ForissierCFG_KERN_LINKER_ARCH ?= arm
107a976658SJerome Forissierendif
117a976658SJerome Forissier
12*739804b5SJens Wiklander
13*739804b5SJens Wiklandercore-platform-cppflags	+= -I$(arch-dir)/include
14*739804b5SJens Wiklandercore-platform-subdirs += \
15*739804b5SJens Wiklander	$(addprefix $(arch-dir)/, kernel mm tee sta) $(platform-dir)
16*739804b5SJens Wiklander
17*739804b5SJens Wiklanderifneq ($(CFG_WITH_ARM_TRUSTED_FW),y)
18*739804b5SJens Wiklandercore-platform-subdirs += $(arch-dir)/sm
19*739804b5SJens Wiklanderendif
20*739804b5SJens Wiklander
21*739804b5SJens Wiklanderarm64-platform-cppflags += -DARM64=1 -D__LP64__=1
22*739804b5SJens Wiklanderarm32-platform-cppflags += -DARM32=1 -D__ILP32__=1
23*739804b5SJens Wiklander
24*739804b5SJens Wiklanderplatform-cflags-generic ?= -g -ffunction-sections -fdata-sections -pipe
25*739804b5SJens Wiklanderplatform-aflags-generic ?= -g -pipe
26*739804b5SJens Wiklander
27*739804b5SJens Wiklanderarm32-platform-cflags-no-hard-float ?= -mno-apcs-float -mfloat-abi=soft
28*739804b5SJens Wiklanderarm32-platform-cflags-generic ?= -mthumb -mthumb-interwork -mlong-calls \
29*739804b5SJens Wiklander			-fno-short-enums -fno-common -mno-unaligned-access
30*739804b5SJens Wiklanderarm32-platform-aflags-no-hard-float ?=
31*739804b5SJens Wiklander
32*739804b5SJens Wiklanderarm64-platform-cflags-no-hard-float ?= -mgeneral-regs-only
33*739804b5SJens Wiklanderarm64-platform-cflags-generic ?= -mstrict-align
34*739804b5SJens Wiklander
35*739804b5SJens Wiklanderifeq ($(DEBUG),1)
36*739804b5SJens Wiklanderplatform-cflags-optimization ?=  -O0
37*739804b5SJens Wiklanderelse
38*739804b5SJens Wiklanderplatform-cflags-optimization ?=  -Os
39*739804b5SJens Wiklanderendif
40*739804b5SJens Wiklander
41*739804b5SJens Wiklanderplatform-cflags-debug-info ?= -g3
42*739804b5SJens Wiklanderplatform-aflags-debug-info ?=
43*739804b5SJens Wiklander
44*739804b5SJens Wiklandercore-platform-cflags += $(platform-cflags-optimization)
45*739804b5SJens Wiklandercore-platform-cflags += $(platform-cflags-generic)
46*739804b5SJens Wiklandercore-platform-cflags += $(platform-cflags-debug-info)
47*739804b5SJens Wiklander
48*739804b5SJens Wiklandercore-platform-aflags += $(platform-aflags-generic)
49*739804b5SJens Wiklandercore-platform-aflags += $(platform-aflags-debug-info)
50*739804b5SJens Wiklander
517a976658SJerome Forissierifeq ($(CFG_ARM64_core),y)
527a976658SJerome Forissiercore-platform-cppflags += $(arm64-platform-cppflags)
537a976658SJerome Forissiercore-platform-cflags += $(arm64-platform-cflags)
54*739804b5SJens Wiklandercore-platform-cflags += $(arm64-platform-cflags-generic)
55*739804b5SJens Wiklandercore-platform-cflags += $(arm64-platform-cflags-no-hard-float)
567a976658SJerome Forissiercore-platform-aflags += $(arm64-platform-aflags)
577a976658SJerome Forissierelse
587a976658SJerome Forissiercore-platform-cppflags += $(arm32-platform-cppflags)
597a976658SJerome Forissiercore-platform-cflags += $(arm32-platform-cflags)
60*739804b5SJens Wiklandercore-platform-cflags += $(arm32-platform-cflags-no-hard-float)
61*739804b5SJens Wiklandercore-platform-cflags += $(arm32-platform-cflags-generic)
62*739804b5SJens Wiklandercore-platform-aflags += $(core_arm32-platform-aflags)
637a976658SJerome Forissiercore-platform-aflags += $(arm32-platform-aflags)
64abe38974SJens Wiklanderendif
65*739804b5SJens Wiklander
66*739804b5SJens Wiklanderifneq ($(filter ta_arm32,$(ta-targets)),)
67*739804b5SJens Wiklander# Variables for ta-target/sm "ta_arm32"
68*739804b5SJens WiklanderCFG_ARM32_ta_arm32 := y
69*739804b5SJens Wiklanderta_arm32-platform-cppflags += $(arm32-platform-cppflags)
70*739804b5SJens Wiklanderta_arm32-platform-cflags += $(arm32-platform-cflags)
71*739804b5SJens Wiklanderta_arm32-platform-cflags += $(platform-cflags-optimization)
72*739804b5SJens Wiklanderta_arm32-platform-cflags += $(platform-cflags-debug-info)
73*739804b5SJens Wiklanderta_arm32-platform-cflags += -fpie
74*739804b5SJens Wiklanderta_arm32-platform-cflags += $(arm32-platform-cflags-generic)
75*739804b5SJens Wiklanderta_arm32-platform-cflags += $(arm32-platform-cflags-no-hard-float)
76*739804b5SJens Wiklanderta_arm32-platform-aflags += $(platform-aflags-debug-info)
77*739804b5SJens Wiklanderta_arm32-platform-aflags += $(arm32-platform-aflags)
78*739804b5SJens Wiklander
79*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm32 += CFG_ARM32_ta_arm32
80*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-cppflags
81*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-cflags
82*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm32 += ta_arm32-platform-aflags
83*739804b5SJens Wiklanderendif
84*739804b5SJens Wiklander
85*739804b5SJens Wiklanderifneq ($(filter ta_arm64,$(ta-targets)),)
86*739804b5SJens Wiklander# Variables for ta-target/sm "ta_arm64"
87*739804b5SJens WiklanderCFG_ARM64_ta_arm64 := y
88*739804b5SJens Wiklanderta_arm64-platform-cppflags += $(arm64-platform-cppflags)
89*739804b5SJens Wiklanderta_arm64-platform-cflags += $(arm64-platform-cflags)
90*739804b5SJens Wiklanderta_arm64-platform-cflags += $(platform-cflags-optimization)
91*739804b5SJens Wiklanderta_arm64-platform-cflags += $(platform-cflags-debug-info)
92*739804b5SJens Wiklanderta_arm64-platform-cflags += -fpie
93*739804b5SJens Wiklanderta_arm64-platform-cflags += $(arm64-platform-cflags-generic)
94*739804b5SJens Wiklanderta_arm64-platform-cflags += $(arm64-platform-cflags-no-hard-float)
95*739804b5SJens Wiklanderta_arm64-platform-aflags += $(platform-aflags-debug-info)
96*739804b5SJens Wiklanderta_arm64-platform-aflags += $(arm64-platform-aflags)
97*739804b5SJens Wiklander
98*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm64 += CFG_ARM64_ta_arm64
99*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-cppflags
100*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-cflags
101*739804b5SJens Wiklanderta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-aflags
102*739804b5SJens Wiklanderendif
103