diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..d7ea53bd --- /dev/null +++ b/Makefile @@ -0,0 +1,71 @@ +all: help + +.PHONY: help +help: + @echo "This is a short hand for running popular tasks." + @echo "Please check the documentation on how to get started" + @echo "or how to set-up the different environments." + +# Use a parallel run (make -j N) for a faster build +build-all: build-riscv-compliance build-simple-system build-arty + + +# RISC-V compliance +.PHONY: build-riscv-compliance +build-riscv-compliance: + fusesoc --cores-root=. run --target=sim --setup --build \ + lowrisc:ibex:ibex_riscv_compliance + + +# Simple system +# Use the following targets: +# - "build-simple-system" +# - "run-simple-system" +.PHONY: build-simple-system +build-simple-system: + fusesoc --cores-root=. run --target=sim --setup --build \ + lowrisc:ibex:ibex_simple_system + +simple-system-program = examples/sw/simple_system/hello_test/hello_test.vmem +sw-simple-hello: $(simple-system-program) + +.PHONY: $(simple-system-program) +$(simple-system-program): + make -C examples/sw/simple_system/hello_test + +Vibex_simple_system = \ + build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system +$(Vibex_simple_system): + @echo "$@ not found" + @echo "Run \"make build-simple-system\" to created the dependency" + @false + +run-simple-system: sw-simple-hello | $(Vibex_simple_system) + build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system \ + --raminit=$(simple-system-program) + + +# Arty A7 100T +# Use the following targets: +# - "build-arty" +# - "program-arty" +arty-sw-program = examples/sw/led/led.vmem +sw-led: $(arty-sw-program) + +.PHONY: $(arty-sw-program) +$(arty-sw-program): + make -C examples/sw/led + +build-arty: sw-led + fusesoc --cores-root=. run --target=synth --setup --build \ + lowrisc:ibex:top_artya7_100 + +.PHONY: program-arty +program-arty: + fusesoc --cores-root=. pgm lowrisc:ibex:top_artya7_100 + + +# Lint check +.PHONY: lint-core-tracing +lint-core-tracing: + fusesoc --cores-root . run --target=lint lowrisc:ibex:ibex_core_tracing