Merge "Add m target for matcha fpga tests"
diff --git a/platforms/nexus/matcha_hw.mk b/platforms/nexus/matcha_hw.mk
index 8b5cd09..e1dd7cb 100644
--- a/platforms/nexus/matcha_hw.mk
+++ b/platforms/nexus/matcha_hw.mk
@@ -12,11 +12,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-MATCHA_SRC_DIR := $(ROOTDIR)/hw/matcha
-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_SRC_DIR := $(ROOTDIR)/hw/matcha
+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_MATCHA_BINARY_DIR := $(MATCHA_FPGA_BINARY_DIR)/matcha
MATCHA_FPGA_KELVIN_BINARY_DIR := $(MATCHA_FPGA_BINARY_DIR)/kelvin
$(MATCHA_OUT_DIR):
@@ -76,6 +77,24 @@
bazel build --define DISABLE_VERILATOR_BUILD=true --build_tag_filters="-kelvin_fpga" \
//sw/device/...
+$(MATCHA_FPGA_MATCHA_BINARY_DIR):
+ mkdir -p $(MATCHA_FPGA_MATCHA_BINARY_DIR)
+
+## Build test binaries that run on FPGA
+matcha_fpga_tests: | $(MATCHA_FPGA_MATCHA_BINARY_DIR)
+ cd $(MATCHA_SRC_DIR) && \
+ bazel query //sw/device/tests/... \
+ | grep 'fpga_nexus' \
+ | egrep '_bin$$' \
+ | grep -v '/smc:' \
+ | grep -v 'kelvin' \
+ | grep -v 'example_test_from_rom_rom_prog_fpga_nexus_bin' \
+ | xargs bazel build
+ cd $(MATCHA_SRC_DIR) && \
+ find 'bazel-out/' \
+ -type f \
+ \( -wholename "*ST-*/*fpga_nexus.elf" -o -wholename "*ST-*/*fpga_nexus.bin" \) \
+ -exec cp -f '{}' "$(MATCHA_FPGA_MATCHA_BINARY_DIR)" \;
$(MATCHA_FPGA_KELVIN_BINARY_DIR):
mkdir -p "$(MATCHA_FPGA_KELVIN_BINARY_DIR)"