bancha: package the soundstream model for loading from SPI
Bypass-Presubmit-Reason: checked as part of topic
Change-Id: I887f2e0461a140a92aeec0957c8c7ef7462e7ce8
diff --git a/platforms/bancha/cantrip_builtins.mk b/platforms/bancha/cantrip_builtins.mk
index f85e941..40b8afa 100644
--- a/platforms/bancha/cantrip_builtins.mk
+++ b/platforms/bancha/cantrip_builtins.mk
@@ -15,7 +15,13 @@
# Placeholder until the top-level cantrip_builtins.mk is cleaned up.
CANTRIP_APPS_RELEASE :=
+# Builtins are loaded from SPI flash which is 16M by default
+ifneq ("$(wildcard $(ROOTDIR)/ml/ml-models)", "")
+CANTRIP_MODEL_RELEASE := $(OUT)/kelvin/sw/bazel_out/soundstream_encoder_non_streaming.elf
+else
+# TODO(sleffler): fallback to IREE version
CANTRIP_MODEL_RELEASE :=
+endif
CANTRIP_APPS_DEBUG :=
CANTRIP_MODEL_DEBUG :=
diff --git a/platforms/bancha/sim.mk b/platforms/bancha/sim.mk
index 5da3432..5c0dab2 100644
--- a/platforms/bancha/sim.mk
+++ b/platforms/bancha/sim.mk
@@ -65,11 +65,15 @@
tar -C $(TMP_DEBUG) -cvhf $@ matcha-tock-bundle.bin kernel
ext_flash_debug: $(EXT_FLASH_DEBUG)
-$(EXT_FLASH_RELEASE): $(CHERIOT_FIRMWARE_RELEASE) | $(TMP_RELEASE)
+$(EXT_FLASH_RELEASE): $(CHERIOT_FIRMWARE_RELEASE) ${CANTRIP_MODEL_RELEASE} | $(TMP_RELEASE)
cp -f $(CHERIOT_FIRMWARE_RELEASE) $(TMP_RELEASE)/cheriot-firmware
${C_PREFIX}strip $(TMP_RELEASE)/cheriot-firmware
${C_PREFIX}objcopy -O binary -g $(TMP_RELEASE)/cheriot-firmware $(TMP_RELEASE)/cheriot-firmware.bin
tar -C $(TMP_RELEASE) -cvhf $@ cheriot-firmware.bin
+ if [[ -f "${CANTRIP_MODEL_RELEASE}" ]]; then \
+ ${C_PREFIX}objcopy -O binary -g ${CANTRIP_MODEL_RELEASE} $(TMP_RELEASE)/kelvin.bin; \
+ tar -C $(TMP_RELEASE) -uvf $@ kelvin.bin; \
+ fi
ext_flash_release: $(EXT_FLASH_RELEASE)
# Renode commands to issue before the initial start of a simulation.