summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv8/g12b/firmware/scp_task/Makefile
blob: 0ba7577e3fba9d68f808c72280b7bdc514ade93f (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# ------------------------------------------------------------
# Makefile for BL301 SCP User Task
# ------------------------------------------------------------
include $(buildsrc)/config.mk
include $(buildtree)/include/autoconf.mk
include $(buildtree)/.config

# Select ARMv7-m bare-metal toolchain
CROSS_COMPILE=arm-none-eabi-
ASM=$(CROSS_COMPILE)as
CC=$(CROSS_COMPILE)gcc
CPP=$(CROSS_COMPILE)cpp
LD=$(CROSS_COMPILE)ld
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump

ARM_ARCH=armv7-m
ARM_CPU=cortex-m3
CFLAGS_WARN=-Wall -Werror -Wundef -Wstrict-prototypes -Wno-trigraphs      \
            -fno-strict-aliasing -fno-common -fomit-frame-pointer         \
            -Werror-implicit-function-declaration -Wno-format-security    \
            -fno-delete-null-pointer-checks -Wdeclaration-after-statement \
            -Wno-pointer-sign -fno-strict-overflow -fconserve-stack
CFLAGS_DEBUG=-g

# CPU specific compilation flags
CFLAGS_CPU=-march=$(ARM_ARCH) -mcpu=$(ARM_CPU) -mthumb -Os -mno-sched-prolog

# FPU compilation flags
CFLAGS_FPU-$(CONFIG_FPU)=-mfpu=fpv4-sp-d16 -mfloat-abi=hard

CFLAGS_INCLUDE=-I$(buildsrc)/build/include/ \
               -I$(buildsrc)/include/ \
               -I$(buildsrc)/arch/arm/include/ \
               -I. \
               -I./include \
               -I./build

#VPATH_LIST=     $(buildsrc)/board/$(BOARDDIR)
VPATH_LIST=     $(buildsrc)/$(BOARDDIR)

VPATH_LIST:=$(VPATH_LIST:%=%/firmware/scp_task/)

CFLAGS=$(CFLAGS_CPU) $(CFLAGS_WARN) $(VPATH_LIST:%=-I%) $(CFLAGS_INCLUDE) $(CFLAGS_FPU-y)
ASFLAGS= -gdwarf2 -mcpu=$(ARM_CPU)
DUMP_FLAGS = -D -x

ifdef CONFIG_ODROID_COMMON
CFLAGS += -DCONFIG_ODROID_COMMON
endif
ifdef CONFIG_ODROID_N2L
CFLAGS += -DCONFIG_SYS_LED
endif

LDFLAGS=-Bstatic
#LDFLAGS+=$(LD_LIB_PATH_ARM:%=-L%) -lm -lc -lgcc

# Output directory for build objects
obj=$(buildtree)/scp_task

vpath %.lds ./
vpath %.S ./
vpath %.c $(VPATH_LIST)
vpath %.c ./

#OBJS = user_task_entry.o
OBJS = task_entry.o
OBJS += user_task.o
OBJS += misc.o
OBJS += uart.o
OBJS += suspend.o
OBJS += lib/string.o
OBJS += lib/delay.o

OBJS := $(OBJS:%=$(obj)/%)

.NOTPARALLEL : all

all : clean $(obj)/bl301.out $(obj)/bl301.bin

$(obj)/bl301.bin: $(obj)/bl301.out
	@echo "	OBJCOPY $@"
	@$(OBJCOPY)  --gap-fill=0xff -O binary $< $@

$(obj)/bl301.out: Makefile $(OBJS)
	@echo "	LD $@"
	@echo "	OBJDUMP $(obj)/bl301.dis"
	@$(LD) $(OBJS) $(LDFLAGS) -T $(obj)/user_task.lds -Map $(obj)/bl301.map -o $@
	@$(OBJDUMP) $(DUMP_FLAGS) $@ > $(obj)/bl301.dis

$(OBJS): $(obj)/user_task.lds

$(obj)/%.o : %.c
	@echo "	CC $(subst $(obj)/,,$@)"
	@mkdir -p $(@D)
	@$(CC) $(CFLAGS) -MD  -c $< -o $@

$(obj)/misc.s:	misc.S
	@mkdir -p $(@D)
	@echo "	CPP $(subst $(obj)/,,$@)"
	@$(CPP) -D__ASSEMBLY__ -E $< -o $@

$(obj)/task_entry.s:  task_entry.S
	@mkdir -p $(@D)
	@echo "	CPP $(subst $(obj)/,,$@)"
	@$(CPP) -D__ASSEMBLY__ -E $< -o $@

$(obj)/misc.o:	$(obj)/misc.s
	@echo "	CC $(subst $(obj)/,,$@)"
	@mkdir -p $(@D)
	@$(CC) $(CFLAGS) -MD  -c $< -o $@

$(obj)/task_entry.o:	$(obj)/task_entry.s
	@echo "	CC $(subst $(obj)/,,$@)"
	@mkdir -p $(@D)
	@$(CC) $(CFLAGS) -MD  -c $< -o $@

$(obj)/user_task.lds : user_task.lds
	@mkdir -p $(@D)
	@echo "	CPP $(subst $(obj)/,,$@)"
	@$(CPP) $(CFLAGS) -P $< $@

clean:
	@-rm -rf $(obj)/
	@-rm -rf $(OBJS)

-include $(wildcard $(obj)/*.d)