# Project config
PROJ=ice40-usbtrace

PROJ_DEPS :=  no2ice40 no2misc no2usb no2qpimem
PROJ_RTL_SRCS := $(addprefix rtl/, \
	dfu_helper.v \
	memif_arb.v \
	picorv32_ice40_regs.v \
	picorv32.v \
	soc_bram.v \
	soc_picorv32_base.v \
	soc_picorv32_bridge.v \
	soc_usb_buf_bridge.v \
	soc_spram.v \
	sysmgr.v \
	ut_dma_rd.v \
	ut_dma_wr.v \
	ut_pkt.v \
	ut_pkt_stream.v \
	ut_pkt_xclk.v \
	ut_top.v \
)
PROJ_TESTBENCHES=\
	ut_pkt_tb \
	$(NULL)
PROJ_PREREQ = \
	$(BUILD_TMP)/boot.hex \
	$(NULL)
PROJ_TOP_SRC := rtl/top.v
PROJ_TOP_MOD := top

# Target config
BOARD ?= ice40-usbtrace
DEVICE := up5k
PACKAGE := sg48

# Toolchain options
NEXTPNR_SEED ?= 15
NEXTPNR_ARGS := --no-promote-globals --seed $(NEXTPNR_SEED)

# Include default rules
NO2BUILD_DIR ?= build
include $(NO2BUILD_DIR)/project-rules.mk

# Custom rules
fw_boot_build:

../firmware/boot/boot.hex: fw_boot_build
	make -C ../firmware/boot boot.hex

$(BUILD_TMP)/boot.hex: ../firmware/boot/boot.hex
	cp $< $@

.PHONY: fw_boot_build
