aboutsummaryrefslogtreecommitdiff
path: root/arm/Makefile.tztest
blob: fbedd7a681cc4c7b455f44f1b76694e3fab4910e (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
SECTEST			= $(ARCH)/tztest_secure.elf
NSECTEST		= $(ARCH)/tztest_nonsecure.elf
SECTESTIMAGE 	= $(ARCH)/tztest_secure.flat
NSECTESTIMAGE 	= $(ARCH)/tztest_nonsecure.flat
TZTEST_IMAGE 	= $(ARCH)/tztest.img
TZBOOT			= $(ARCH)/tzboot.o
TZSECLOAD		= $(ARCH)/tztest_secure.lds
TZNSECLOAD		= $(ARCH)/tztest_nonsecure.lds
TZSECOBJS		= $(ARCH)/secure_init.o \
			  	  $(ARCH)/secure_svc.o \
			  	  $(ARCH)/secure_asm.o \
                  $(ARCH)/monitor.o \
                  $(ARCH)/monitor_asm.o \
                  $(ARCH)/sm_asm.o \
			  	  $(ARCH)/sm.o
TZNSECOBJS		= $(ARCH)/nonsecure_init.o \
			  	  $(ARCH)/nonsecure_svc.o \
			  	  $(ARCH)/tztest.o
TZOBJS			= $(ARCH)/common_mmu.o \
                  $(ARCH)/common_svc.o
LIBCFLAT_OBJS	+= $(LIBCFLAT_objdir)/devicetree.o \
			  	   $(LIBCFLAT_objdir)/virtio.o \
			  	   $(LIBCFLAT_objdir)/virtio-testdev.o \
			  	   $(LIBCFLAT_archdir)/io.o \
			  	   $(LIBCFLAT_archdir)/misc.o \
			  	   $(LIBCFLAT_archdir)/setup.o \
			  	   $(LIBCFLAT_archdir)/spinlock.o \
			  	   $(LIBCFLAT_archdir)/processor.o

all: $(TZTEST_IMAGE)

##################################################################

libeabi = $(LIBCFLAT_archdir)/libeabi.a
eabiobjs = $(LIBCFLAT_archdir)/eabi_compat.o
libgcc := $(shell $(CC) -m$(ARCH) --print-libgcc-file-name)
CFLAGS += -I$(ARCH) -DASM

FLATLIBS = $(LIBCFLAT_archive) $(LIBFDT_archive) $(libgcc) $(libeabi)
COMMON = $(FLATLIBS) $(TZOBJS)

$(SECTEST): $(TZSECOBJS) $(COMMON) $(TZSECLOAD) $(TZNSECLOAD) $(TZBOOT)
	$(LD) -o $@ $(TZSECOBJS) $(COMMON) --script=$(TZSECLOAD)

$(SECTESTIMAGE): $(SECTEST)
	$(OBJCOPY) -O binary $(SECTEST) $(SECTESTIMAGE)

$(NSECTEST): $(TZNSECOBJS) $(COMMON) $(TZNSECLOAD) $(TZSECLOAD)
	$(LD) -o $@ $(TZNSECOBJS) $(COMMON) --script=$(TZNSECLOAD)

$(NSECTESTIMAGE): $(NSECTEST)
	$(OBJCOPY) -O binary $(NSECTEST) $(NSECTESTIMAGE)

$(TZTEST_IMAGE): $(SECTESTIMAGE) $(NSECTESTIMAGE)
	dd if=$(SECTESTIMAGE) of=$@ 2> /dev/null
	dd if=$(NSECTESTIMAGE) of=$@ seek=65536 oflag=seek_bytes 2> /dev/null
	chmod +x $(TZTEST_IMAGE)

$(TZBOOT): $(ARCH)/tzboot.S
	$(CC) $(CFLAGS) -c -o $@ $<

$(TZSECLOAD): $(ARCH)/tztest_secure.lds.S Makefile platform/$(PLAT)/
	$(CC) $(CFLAGS) -E -P -C -o $@ $<

$(TZNSECLOAD): $(ARCH)/tztest_nonsecure.lds.S Makefile platform/$(PLAT)/
	$(CC) $(CFLAGS) -E -P -C -o $@ $<

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(libeabi): $(eabiobjs)
	$(AR) rcs $@ $^

arch_clean: libeabi_clean
	$(RM) $(TZOBJS) $(TZSECOBJS) $(TZNSECOBJS) \
		  $(TZSECLOAD) $(TZNSECLOAD) $(TZBOOT) \
		  $(SECTEST) $(SECTESTIMAGE) $(NSECTEST) $(NSECTESTIMAGE) \
		  $(TZTEST_IMAGE) \
		  $(LIBCFLAT_OBJS) $(LIBCFLAT_archdir)/.*.d $(ARCH)/.*.d

libeabi_clean:
	$(RM) $(libeabi) $(eabiobjs)