Files
rvx0/Makefile
T
2025-09-03 17:22:00 +03:00

34 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
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 --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 $@