summaryrefslogtreecommitdiff
path: root/big-little/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'big-little/Makefile')
-rwxr-xr-xbig-little/Makefile227
1 files changed, 227 insertions, 0 deletions
diff --git a/big-little/Makefile b/big-little/Makefile
new file mode 100755
index 0000000..7800148
--- /dev/null
+++ b/big-little/Makefile
@@ -0,0 +1,227 @@
+#
+# Copyright (c) 2011, ARM Limited. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with
+# or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above
+# copyright notice, this list of conditions and the
+# following disclaimer.
+#
+# Redistributions in binary form must reproduce the
+# above copyright notice, this list of conditions and
+# the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# Neither the name of ARM nor the names of its
+# contributors may be used to endorse or promote products
+# derived from this software without specific prior written
+# permission.
+#
+
+# Decrease the verbosity of the make script
+# can be made verbose by passing V=1 at the make command line
+ifdef V
+ KBUILD_VERBOSE = $(V)
+else
+ KBUILD_VERBOSE = 0
+endif
+
+ifeq "$(KBUILD_VERBOSE)" "0"
+ Q=@
+else
+ Q=
+endif
+
+HIBASE?=0x8ff
+DEBUG=TRUE
+
+###############################################################################################################
+# Shared/External Virtual GIC defines
+SVGIC_OBJS += sh_vgic.o
+###############################################################################################################
+# Switcher defines
+SWITCHER ?= TRUE
+ASYNC ?= TRUE
+HYP_TIMERS ?= TRUE
+RAND_ASYNC ?= FALSE
+HOST_CLUSTER ?= 1
+FLUSH_OB_L2 ?= TRUE
+FLUSH_L2_FIX ?= FALSE
+TUBE ?= FALSE
+FM_BETA ?= TRUE
+
+ifeq ($(SWITCHER), TRUE)
+ifeq ($(ASYNC), FALSE)
+HYP_TIMERS = FALSE
+endif
+
+vpath %.c switcher switcher/trigger switcher/context common/ lib/ secure_world/ ../acsr
+vpath %.s switcher switcher/trigger switcher/context common/ lib/ secure_world/ ../acsr
+
+SWITCHER_OBJS = ns_context.o hyp_setup.o pagetable_setup.o virt_helpers.o sync_switchover.o \
+ vgiclib.o vgic_handle.o uart.o v7.o gic.o handle_switchover.o tube.o \
+ virt_events.o bakery.o vgic_setup.o async_switchover.o hyp_vectors.o helpers.o
+
+SECURE_ENTRY_POINT = monmode_vector_table
+
+SECURE_OBJS += secure_context.o monmode_vectors.o flat_pagetable.o virt_helpers.o virt_events.o \
+ secure_resets.o bakery.o tube.o helpers.o
+
+SECURE_ASFLAGS = --apcs /inter --cpu=Eagle --keep --fpu=none --pd "FM_BETA SETL {$(FM_BETA)}"
+
+SECURE_CFLAGS = -Iinclude -I. -Isecure_world -I../acsr --cpu=Eagle --fpu=none -O2 \
+ -DHOST_CLUSTER=$(HOST_CLUSTER) -DSWITCHER=$(SWITCHER) \
+ -DFLUSH_OB_L2=$(FLUSH_OB_L2) -DTUBE=$(TUBE) -DFLUSH_L2_FIX=$(FLUSH_L2_FIX) -DFM_BETA=$(FM_BETA)
+
+SECURE_LDFLAGS = --verbose --map --fpu=none --symbols --noremove --datacompressor=off \
+ --entry $(SECURE_ENTRY_POINT) --scatter $(SECURE_MAPFILE) --predefine="-DFM_BETA=$(FM_BETA)"
+
+SWITCHER_ASFLAGS += --pd "ASYNC_SWITCH SETL {$(ASYNC)}" \
+ --pd "RAND_ASYNC SETL {$(RAND_ASYNC)}" \
+ --pd "HOST_CLUSTER SETA $(HOST_CLUSTER)" \
+ --pd "USE_HYP_TIMERS SETL {$(HYP_TIMERS)}" \
+ --pd "SWITCHER SETL {$(SWITCHER)}"
+
+SWITCHER_CFLAGS += -DASYNC_SWITCH=$(ASYNC) \
+ -DRAND_ASYNC=$(RAND_ASYNC) \
+ -DHOST_CLUSTER=$(HOST_CLUSTER) \
+ -DUSE_HYP_TIMERS=$(HYP_TIMERS) \
+ -DFLUSH_OB_L2=$(FLUSH_OB_L2) \
+ -DTUBE=$(TUBE) \
+ -DFLUSH_L2_FIX=$(FLUSH_L2_FIX) \
+ -DSWITCHER=$(SWITCHER)
+endif
+
+###############################################################################################################
+# Virtualisor defines
+CMOP_DEBUG ?= FALSE
+VIRTUALISOR_CFLAGS += -DCMOP_DEBUG=$(CMOP_DEBUG)
+VIRTUALISOR_ASFLAGS += --pd "CMOP_DEBUG SETL {$(CMOP_DEBUG)}"
+
+vpath %.c virtualisor virtualisor/cpus/a15 virtualisor/cpus/a7
+
+VIRTUALISOR_OBJS += virt_handle.o virt_setup.o virt_context.o cache_geom.o mem_trap.o vgic_trap_handler.o \
+ a7.o a15.o
+
+###############################################################################################################
+
+OBJS += cci.o
+
+ASFLAGS = --apcs /inter --cpu=Eagle --keep --fpu=none \
+ $(SWITCHER_ASFLAGS) \
+ $(VIRTUALISOR_ASFLAGS)
+
+CFLAGS = -Iinclude -I. -Ivirtualisor/include -Ivirtualisor/cpus/a7/include \
+ -Ivirtualisor/cpus/a15/include -I../acsr \
+ --cpu=Eagle --fpu=none -O2 $(SWITCHER_CFLAGS) $(VIRTUALISOR_CFLAGS)
+
+ifdef DEBUG
+CFLAGS += -g -O0
+ASFLAGS += -g
+SECURE_CFLAGS += -g -O0
+SECURE_ASFLAGS += -g
+endif
+
+LDFLAGS = --verbose --map --fpu=none --symbols --noremove --datacompressor=off --entry $(ENTRY_POINT) --scatter $(MAPFILE)
+OBJS += $(SWITCHER_OBJS) $(VIRTUALISOR_OBJS) $(SVGIC_OBJS)
+ENTRY_POINT = bl_setup
+LISTFILE = bl_syms.txt
+SECURE_LISTFILE = bl_sec_syms.txt
+MAPFILE = bl.scf
+SECURE_MAPFILE = bl-sec.scf
+
+CC = armcc
+AS = armasm
+AR = armar
+LD = armlink
+
+
+ifeq ($(FM_BETA), FALSE)
+all: bl.axf bl_sec.axf wboot.bin
+else
+all: bl.axf bl_sec.axf
+endif
+
+clean:
+ @echo " CLEAN"
+ $(Q)rm -rf *.zi
+ $(Q)rm -rf *.dump
+ $(Q)rm -rf *.bin
+ $(Q)rm -f *.axf
+ $(Q)rm -f *.o
+ $(Q)rm -f *.ar
+ $(Q)rm -f *.map
+ $(Q)rm -f *.scf
+ $(Q)rm -f $(LISTFILE)
+ $(Q)rm -f $(SECURE_LISTFILE)
+
+dump:
+ @echo " OBJDUMP"
+ fromelf --text -c bl.axf > bl.dump
+ fromelf --text -c bl_sec.axf > bl_sec.dump
+
+%.o: %.s
+ @echo " AS $<"
+ $(Q)$(AS) $(ASFLAGS) $< -o $@
+
+%.o: %.c
+ @echo " CC $<"
+ $(Q)$(CC) $(CFLAGS) -c $< -o $@
+
+bl.axf: $(OBJS)
+ $(Q)cat $(MAPFILE).template > $(MAPFILE)
+ $(Q)sed -i -e "s/HIBASE/${HIBASE}/g" $(MAPFILE)
+ @echo " LD $@"
+ $(Q)$(LD) $(LDFLAGS) --symdefs=bl_symdef.o $(OBJS) -o $@ > $(LISTFILE)
+
+ifeq ($(FM_BETA), FALSE)
+wboot.axf: ve_reset_handler.o
+ @echo " LD $@"
+ $(Q)$(LD) --ro-base=0x0 $< -o $@ > $(LISTFILE)
+
+wboot.bin: wboot.axf
+ @echo " BIN $@"
+ $(Q)fromelf --bin $< --output $@
+else
+SECURE_OBJS += ve_reset_handler.o
+wboot.bin:
+endif
+
+bl.ar: $(OBJS)
+ @echo " AR $@"
+ $(Q)$(AR) -r $@ $(OBJS)
+
+%.bin: %.axf
+ fromelf --bin $< --output $@
+
+ve_reset_handler.o: ve_reset_handler.s
+ @echo " AS $<"
+ $(Q)$(AS) $(SECURE_ASFLAGS) $< -o $@
+
+secure_resets.o: secure_resets.c
+ @echo " CC $<"
+ $(Q)$(CC) $(SECURE_CFLAGS) -c $< -o $@
+
+monmode_vectors.o: monmode_vectors.s
+ @echo " AS $<"
+ $(Q)$(AS) $(SECURE_ASFLAGS) $< -o $@
+
+flat_pagetable.o: flat_pagetable.s
+ @echo " AS $<"
+ $(Q)$(AS) $(SECURE_ASFLAGS) $< -o $@
+
+secure_context.o: secure_context.c
+ @echo " CC $<"
+ $(Q)$(CC) $(SECURE_CFLAGS) -c $< -o $@
+
+bl_sec.axf: $(SECURE_OBJS)
+ $(Q)cat $(SECURE_MAPFILE).template > $(SECURE_MAPFILE)
+ $(Q)sed -i -e "s/HIBASE/${HIBASE}/g" $(SECURE_MAPFILE)
+ $(Q)$(LD) $(SECURE_LDFLAGS) --symdefs=bl_sec_symdef.o $(SECURE_OBJS) -o $@ > $(SECURE_LISTFILE)
+
+bl_sec.ar: $(SECURE_OBJS)
+ $(Q)$(AR) -r $@ $(SECURE_OBJS)
+
+