1 ARCH
= $(shell uname
-m
)
2 ifneq ("$(ARCH)", "ppc64")
3 ifneq ("$(ARCH)", "ppc64le")
4 CROSS_COMPILE ?
= powerpc64le-linux-gnu-
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
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
21 LIBGRAMDIR
= ..
/libgram
22 LIBGRAMINC
= ..
/libgram
/include
24 GRAMOBJS
:= $(LIBGRAMDIR
)/src
/init.o \
25 $(LIBGRAMDIR
)/src
/dfii.o \
26 $(LIBGRAMDIR
)/src
/calibration.o
28 CC
= $(CROSS_COMPILE
)gcc
29 LD
= $(CROSS_COMPILE
)ld
30 OBJCOPY
= $(CROSS_COMPILE
)objcopy
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 \
37 -DLONG_TIMER_MULT
=$(LONG_TIMER_MULT
) \
38 -DBOOT_INIT_BASE
=$(BOOT_INIT_BASE
) \
39 -DSHORT_TIMER_MULT
=$(SHORT_TIMER_MULT
)
41 LDFLAGS
= -T powerpc.lds
43 all: coldboot.hex coldboot.S
45 console.o
: ..
/lib
/console.c
46 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -c
$< -o
$@
48 init.o
: ..
/libgram
/src
/init.c
49 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -c
$< -o
$@
51 dfii.o
: ..
/libgram
/src
/dfii.c
52 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -c
$< -o
$@
54 calibration.o
: ..
/libgram
/src
/calibration.c
55 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -c
$< -o
$@
57 powerpc.lds
: powerpc.lds.S
58 $(CC
) $(CFLAGS
) -P
-E powerpc.lds.S
-o powerpc.lds
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
)
63 coldboot.bin
: coldboot.elf
64 $(OBJCOPY
) -O binary
$^
$@
66 coldboot.hex
: coldboot.bin
67 ..
/scripts
/bin2hex.py
$^
> $@
68 powerpc64le-linux-gnu-objdump
-D coldboot.elf
> coldboot.
as
70 coldboot.S
: coldboot.elf
71 objdump
-S coldboot.elf
> coldboot.S
75 @
rm -f ..
/lib
/*.o ..
/libgram
/src
/*.o
*.o coldboot.elf coldboot.bin coldboot.hex coldboot.
as coldboot.S powerpc.lds