35 lines
1.1 KiB
Makefile
35 lines
1.1 KiB
Makefile
SRC_ALL=$(wildcard src/**/*.sv src/*.sv)
|
|
SRC_MODULE=$(filter-out %_top.sv,$(filter-out %_tb.sv,$(SRC_ALL)))
|
|
DEF_MODULE=$(wildcard src/*.svh)
|
|
|
|
FIRMWARE_SRC=firmware/src/entry.S \
|
|
firmware/src/main.rs \
|
|
firmware/link.ld \
|
|
firmware/Cargo.toml
|
|
|
|
MAIN_TOP=src/rvx0_soc_top.sv
|
|
|
|
all: obj_dir/rvx0
|
|
|
|
obj_dir/apb0_memory.hex: obj_dir/firmware.bin tool/makebin.py
|
|
./tool/makebin.py obj_dir/firmware.bin $@
|
|
|
|
obj_dir/firmware.bin: firmware/target/riscv32i-unknown-none-elf/release/firmware
|
|
mkdir -p obj_dir
|
|
llvm-objcopy -O binary $< $@
|
|
|
|
firmware/target/riscv32i-unknown-none-elf/release/firmware: $(FIRMWARE_SRC)
|
|
cd firmware && cargo build --release
|
|
|
|
obj_dir/rvx0: $(SRC_MODULE) $(DEF_MODULE) $(MAIN_TOP) obj_dir/apb0_memory.hex
|
|
mkdir -p obj_dir
|
|
verilator -Wno-fatal --assert --binary -Isrc -o rvx0 $(MAIN_TOP) $(SRC_MODULE)
|
|
#
|
|
# obj_dir/firmware.elf: $(FIRMWARE_OBJ) src/firmware.ld
|
|
#
|
|
# obj_dir/apb0_memory.hex: src/apb0_memory.S tool/makebin.py
|
|
# mkdir -p obj_dir
|
|
# riscv64-elf-gcc -c -o obj_dir/apb0_memory.o src/apb0_memory.S
|
|
# llvm-objcopy -O binary obj_dir/apb0_memory.o obj_dir/apb0_memory.bin
|
|
# ./tool/makebin.py obj_dir/apb0_memory.bin $@
|