Add matcha FPGA test target based on Kelvin SW binaraies Exclude them from `m matcha_sw_all` so other targets will not depend on kelvin_sw Change-Id: I97fd2ad84b9dd69c121e273444fe2bc302539e25
diff --git a/platforms/nexus/matcha_hw.mk b/platforms/nexus/matcha_hw.mk index 7adce78..3338b49 100644 --- a/platforms/nexus/matcha_hw.mk +++ b/platforms/nexus/matcha_hw.mk
@@ -16,6 +16,8 @@ MATCHA_OUT_DIR := $(OUT)/matcha/hw MATCHA_VERILATOR_TB := $(MATCHA_OUT_DIR)/sim-verilator/Vchip_sim_tb MATCHA_TESTLOG_DIR := $(MATCHA_OUT_DIR)/test-log +MATCHA_FPGA_BINARY_DIR := $(MATCHA_OUT_DIR)/fpga_tests +MATCHA_FPGA_KELVIN_BINARY_DIR := $(MATCHA_FPGA_BINARY_DIR)/kelvin $(MATCHA_OUT_DIR): mkdir -p $(MATCHA_OUT_DIR) @@ -71,7 +73,31 @@ # matcha_sw_all: cd $(MATCHA_SRC_DIR) && \ - bazel build --define DISABLE_VERILATOR_BUILD=true //sw/device/... + bazel build --define DISABLE_VERILATOR_BUILD=true --build_tag_filters="-kelvin_fpga" \ + //sw/device/... + + +$(MATCHA_FPGA_KELVIN_BINARY_DIR): + mkdir -p "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + + +## Build Matcha Kelvin SW FPGA test artifacts +# +# Build kelvin artifacts and package it in a tarball and ready for use on the FPGA +# The output is at out/matcha/hw/fpga_tests/kelvin +# +matcha_kelvin_fpga_tarballs: kelvin_sw | $(MATCHA_FPGA_KELVIN_BINARY_DIR) + cd $(MATCHA_SRC_DIR) && \ + bazel build --define DISABLE_VERILATOR_BUILD=true \ + //sw/device/tests/kelvin/fpga_tests/... +# Copy the tarballs and sc binary to out/. + cd $(MATCHA_SRC_DIR) && \ + find "bazel-out/" -type f -wholename "*fastbuild-*/sw/device/tests/kelvin/fpga_tests/*.bin" |\ + xargs -I {} cp -f {} "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + cd $(MATCHA_SRC_DIR) && \ + find "bazel-bin/sw/device/tests/kelvin/fpga_tests" -name "*.tar" |\ + xargs -I {} cp -f {} "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + ## Build opentitantool for matcha FPGA tests opentitantool_pkg: | $(MATCHA_OUT_DIR) @@ -98,4 +124,4 @@ .PHONY:: matcha_hw_verilator_sim matcha_hw_clean matcha_hw_verilator_tests .PHONY:: matcha_sw_all opentitantool_pkg -.PHONY:: matcha_hw_fpga_nexus +.PHONY:: matcha_hw_fpga_nexus matcha_kelvin_fpga_tarballs
diff --git a/platforms/shodan/matcha_hw.mk b/platforms/shodan/matcha_hw.mk index 7adce78..8031092 100644 --- a/platforms/shodan/matcha_hw.mk +++ b/platforms/shodan/matcha_hw.mk
@@ -16,6 +16,8 @@ MATCHA_OUT_DIR := $(OUT)/matcha/hw MATCHA_VERILATOR_TB := $(MATCHA_OUT_DIR)/sim-verilator/Vchip_sim_tb MATCHA_TESTLOG_DIR := $(MATCHA_OUT_DIR)/test-log +MATCHA_FPGA_BINARY_DIR := $(MATCHA_OUT_DIR)/fpga_tests +MATCHA_FPGA_KELVIN_BINARY_DIR := $(MATCHA_FPGA_BINARY_DIR)/kelvin $(MATCHA_OUT_DIR): mkdir -p $(MATCHA_OUT_DIR) @@ -71,7 +73,31 @@ # matcha_sw_all: cd $(MATCHA_SRC_DIR) && \ - bazel build --define DISABLE_VERILATOR_BUILD=true //sw/device/... + bazel build --define DISABLE_VERILATOR_BUILD=true --build_tag_filters="-kelvin_fpga" \ + //sw/device/... + + +$(MATCHA_FPGA_KELVIN_BINARY_DIR): + mkdir -p "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + + +## Build Matcha Kelvin SW FPGA test artifacts +# +# Build kelvin artifacts and package it in a tarball and ready for use on the FPGA +# The output is at out/matcha/hw/fpga_tests/kelvin +# +matcha_kelvin_fpga_tarballs: kelvin_sw | $(MATCHA_FPGA_KELVIN_BINARY_DIR) + cd $(MATCHA_SRC_DIR) && \ + bazel build --define DISABLE_VERILATOR_BUILD=true \ + //sw/device/tests/kelvin/fpga_tests/... +# Copy the tarballs and sc binary to out/. + cd $(MATCHA_SRC_DIR) && \ + find "bazel-out/" -type f -wholename "*fastbuild-*/sw/device/tests/kelvin/fpga_tests/kelvin_test_sc_extflash_fpga_nexus.bin" |\ + xargs -I {} cp -f {} "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + cd $(MATCHA_SRC_DIR) && \ + find "bazel-bin/sw/device/tests/kelvin/fpga_tests" -name "*.tar" |\ + xargs -I {} cp -f {} "$(MATCHA_FPGA_KELVIN_BINARY_DIR)" + ## Build opentitantool for matcha FPGA tests opentitantool_pkg: | $(MATCHA_OUT_DIR) @@ -98,4 +124,4 @@ .PHONY:: matcha_hw_verilator_sim matcha_hw_clean matcha_hw_verilator_tests .PHONY:: matcha_sw_all opentitantool_pkg -.PHONY:: matcha_hw_fpga_nexus +.PHONY:: matcha_hw_fpga_nexus matcha_kelvin_fpga_tarballs