diff options
Diffstat (limited to 'big-little/Makefile')
-rwxr-xr-x | big-little/Makefile | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/big-little/Makefile b/big-little/Makefile new file mode 100755 index 0000000..db3d0c6 --- /dev/null +++ b/big-little/Makefile @@ -0,0 +1,191 @@ + # $Copyright: + # ---------------------------------------------------------------- + # This confidential and proprietary software may be used only as + # authorised by a licensing agreement from ARM Limited + # (C) COPYRIGHT 2008-2011 ARM Limited + # ALL RIGHTS RESERVED + # The entire notice above must be reproduced on all authorised + # copies and copies may only be made to the extent permitted + # by a licensing agreement from ARM Limited. + # ---------------------------------------------------------------- + # File: Makefile + # ---------------------------------------------------------------- + # $ + +# 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 +SYSBENCH ?= FALSE + +#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 ve_reset_handler.o tube.o helpers.o +SECURE_ASFLAGS = --apcs /inter --cpu=Eagle --keep --fpu=none --pd "SYSBENCH SETL {$(SYSBENCH)}" +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) -DSYSBENCH=$(SYSBENCH) -DTUBE=$(TUBE) -DFLUSH_L2_FIX=$(FLUSH_L2_FIX) +SECURE_LDFLAGS = --verbose --map --fpu=none --symbols --noremove --datacompressor=off \ + --entry $(SECURE_ENTRY_POINT) --scatter $(SECURE_MAPFILE) + +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) \ + -DSYSBENCH=$(SYSBENCH) \ + -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 + +all: bl.axf bl_sec.axf + +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) + +bl.ar: $(OBJS) + @echo " AR $@" + $(Q)$(AR) -r $@ $(OBJS) + +%.bin: %.axf + fromelf --bin $< --output $@ + +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) + + |