summaryrefslogtreecommitdiff
path: root/src/arch/arm64/armv8/secmon/Makefile.inc
blob: a8d42b07a01dfdd0ba15b48a38b670686c98340b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
################################################################################
##
## This file is part of the coreboot project.
##
## Copyright (C) 2014 Google Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
################################################################################

$(eval $(call create_class_compiler,secmon,arm64))

SECMON_DIR=$(obj)/arch/arm64/armv8/secmon
SECMON_BIN=$(SECMON_DIR)/secmon
SECMON_OBJ=$(SECMON_DIR)/secmon.o
SECMON_ELF=$(SECMON_DIR)/secmon.elf
SECMON_RMOD=$(SECMON_DIR)/secmon.elf.rmod
SECMON_RAMSTAGE=$(SECMON_DIR)/secmon.ramstage.o

secmon-c-ccopts += -I$(src)/arch/arm64/include/armv8/ -include $(src)/include/kconfig.h -D__SECMON__
secmon-S-ccopts += -I$(src)/arch/arm64/include/armv8/ -include $(src)/include/kconfig.h -D__SECMON__

secmon-y += secmon_init.c
secmon-y += psci.c
secmon-y += smc.c
secmon-y += trampoline.S
secmon-y += ../exception.c
secmon-y += ../../cpu.c
secmon-y += ../../transition_asm.S ../../transition.c

ramstage-srcs += $(SECMON_BIN)

$(SECMON_OBJ):  $$(secmon-objs)
		$(CC_secmon) $(LDFLAGS) -nostdlib -r -o $@ $^

$(eval $(call rmodule_link,$(SECMON_ELF), $(SECMON_OBJ), 0,arm64))

$(SECMON_BIN): $(SECMON_RMOD)
	       $(OBJCOPY_secmon) -O binary $< $@

$(SECMON_RAMSTAGE): $(SECMON_BIN)
		    @printf "    OBJCOPY $(subst $(obj)/,,$(@))\n"
		    cd $(dir $@); $(OBJCOPY_secmon) -I binary $(notdir $<) -O elf64-littleaarch64 -B aarch64 $(notdir $@)