Add an asm dump with source to the coldboot makefile
[ls2.git] / coldboot / Makefile
1 ARCH = $(shell uname -m)
2 ifneq ("$(ARCH)", "ppc64")
3 ifneq ("$(ARCH)", "ppc64le")
4 CROSS_COMPILE ?= powerpc64le-linux-gnu-
5 endif
6 endif
7
8 # a multiplier factor on sleep loops. this allows simulations to run
9 # at much shorter intervals
10 LONG_TIMER_MULT = 10000
11 SHORT_TIMER_MULT = 100
12 #LONG_TIMER_MULT = 1
13 #SHORT_TIMER_MULT = 1
14
15 # SPI boot address 0x1000_0000, main SRAM boot would be 0x0000_0000
16 # but remember to recompile external_core_top.v with a matching
17 # --pc_reset=0xNNNNNNNN
18 BOOT_INIT_BASE ?= 0x10000000
19 # BOOT_INIT_BASE ?= 0x0
20
21 LIBGRAMDIR = ../libgram
22 LIBGRAMINC = ../libgram/include
23
24 GRAMOBJS := $(LIBGRAMDIR)/src/init.o \
25 $(LIBGRAMDIR)/src/dfii.o \
26 $(LIBGRAMDIR)/src/calibration.o
27
28 CC = $(CROSS_COMPILE)gcc
29 LD = $(CROSS_COMPILE)ld
30 OBJCOPY = $(CROSS_COMPILE)objcopy
31
32 CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string \
33 -mno-multiple -mno-vsx -mno-altivec -mlittle-endian \
34 -fno-stack-protector -mstrict-align -ffreestanding \
35 -fdata-sections -ffunction-sections -I../include \
36 -I $(LIBGRAMINC) \
37 -DLONG_TIMER_MULT=$(LONG_TIMER_MULT) \
38 -DBOOT_INIT_BASE=$(BOOT_INIT_BASE) \
39 -DSHORT_TIMER_MULT=$(SHORT_TIMER_MULT)
40 ASFLAGS = $(CFLAGS)
41 LDFLAGS = -T powerpc.lds
42
43 all: coldboot.hex coldboot.S
44
45 console.o: ../lib/console.c
46 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
47
48 init.o: ../libgram/src/init.c
49 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
50
51 dfii.o: ../libgram/src/dfii.c
52 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
53
54 calibration.o: ../libgram/src/calibration.c
55 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
56
57 powerpc.lds: powerpc.lds.S
58 $(CC) $(CFLAGS) -P -E powerpc.lds.S -o powerpc.lds
59
60 coldboot.elf: coldboot.o head.o ../lib/console.o $(GRAMOBJS) powerpc.lds
61 $(LD) $(LDFLAGS) -o $@ coldboot.o head.o ../lib/console.o $(GRAMOBJS)
62
63 coldboot.bin: coldboot.elf
64 $(OBJCOPY) -O binary $^ $@
65
66 coldboot.hex: coldboot.bin
67 ../scripts/bin2hex.py $^ > $@
68 powerpc64le-linux-gnu-objdump -D coldboot.elf > coldboot.as
69
70 coldboot.S: coldboot.elf
71 objdump -S coldboot.elf > coldboot.S
72
73
74 clean:
75 @rm -f ../lib/*.o ../libgram/src/*.o *.o coldboot.elf coldboot.bin coldboot.hex coldboot.as coldboot.S powerpc.lds
76 distclean: clean
77 rm -f *~
78