summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: eb972b0dba3b6b2b895e085f42a7b6517df202ee (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
PROJ=pong

SRCS=$(wildcard *.vhd *.v *.qsf *.qpf )
SRCS += $(shell find DM9000A -type f -print )
SRCS += $(shell find GPU -type f -print )

BSP_DIR=bsp

QSYS=pong_mcu
SOPC_FILE=${QSYS}.sopcinfo
BSP_TYPE=hal
NIOS2_BSP_ARGS=""
CPU_NAME=

ELF=src/${PROJ}.elf
SOF=${PROJ}.sof

default: load_elf.stamp

sta.stamp:asm.stamp
	tools/wrap quartus_sta ${PROJ} -c ${PROJ}
	touch $@

asm.stamp:fit.stamp
	tools/wrap quartus_asm --read_settings_files=off --write_settings_files=off ${PROJ} -c ${PROJ}
	touch $@

${SOF}:asm.stamp

fit.stamp: ans.stamp
	tools/wrap quartus_fit --read_settings_files=off --write_settings_files=off ${PROJ} -c ${PROJ}
	touch $@

ans.stamp: source.stamp
	tools/wrap quartus_map --read_settings_files=on --write_settings_files=off ${PROJ} -c ${PROJ}
	touch $@

${SOPC_FILE}:ans.stamp

source.stamp:${SRCS}
	touch source.stamp

${ELF}: src/Makefile
	tools/wrap make -C src

elf.stamp:${ELF}
	touch $@
	
src/Makefile: bsp.stamp
	tools/wrap nios2-app-generate-makefile --bsp-dir bsp --src-rdir src --app-dir src --elf-name ${PROJ}.elf

bsp.stamp:${SOPC_FILE}
	/bin/rm -rf ${BSP_DIR}
	mkdir -p ${BSP_DIR}
	tools/wrap nios2-bsp ${BSP_TYPE} ${BSP_DIR} ${SOPC_FILE} ${NIOS2_BSP_ARGS} ${CPU_NAME}
	tools/wrap make -C ${BSP_DIR}
	touch $@

load_elf.stamp:${ELF} load_sof.stamp
	tools/wrap nios2-download ${ELF} -g

load_sof.stamp: ${SOF}
	tools/wrap quartus_pgm -m JTAG -o "p;${SOF}"
	touch $@

sof.flash: ${SOF}
	tools/wrap sof2flash --input=$< --output=$@ --epcs --verbose 

elf.flash: ${ELF} sof.flash
	tools/wrap elf2flash --input=${ELF} --output=$@ --epcs --after=sof.flash --verbose 

qsys:
	tools/wrap qsys-edit ${QSYS}.qsys --project-dir=${PWD} --system-info=DEVICE_FAMILY="Cyclone II" --system-info=DEVICE=EP2C8Q208C8 --system-info=DEVICE_SPEEDGRADE=8 --host-controller

${BSP_DIR}/system.h:bsp.stamp

flash: load_sof.stamp sof.flash elf.flash ${BSP_DIR}/system.h
	BASE=` grep EPCS_FLASH_CONTROLLER_0_BASE ${BSP_DIR}/system.h | awk '{print $$3}' ` && \
	tools/wrap nios2-flash-programmer sof.flash --base=$${BASE} --epcs --accept-bad-sysid --device=1 --instance=0 --program --verbose && \
	tools/wrap nios2-flash-programmer elf.flash --base=$${BASE} --epcs --accept-bad-sysid --device=1 --instance=0  --program --verbose -g

clean:
	/bin/rm -rf ${BSP_DIR} db incremental_db src/obj
	/bin/rm -f ${SOPC_FILE} src/Makefile elf.flash sof.flash *.stamp ${SOF} ${ELF} *.rpt *.html *.summary *.pin *.jdi *.qws *.pof
	/bin/rm -f src/${PROJ}.objdump src/${PROJ}.map 
	/bin/rm -f sopc_builder_log.txt