diff --git a/sw/device/cheriot/soundstream/soundstream.cc b/sw/device/cheriot/soundstream/soundstream.cc
index 45dd2a9..6d6c06f 100644
--- a/sw/device/cheriot/soundstream/soundstream.cc
+++ b/sw/device/cheriot/soundstream/soundstream.cc
@@ -14,19 +14,6 @@
  * limitations under the License.
  */
 
-// Data structures that hold audio samples are allocated on the heap
-// because they are too big (for now) for .data/.bss. We use calloc
-// for this and need to override the default quota (4K) to satisfy our
-// large'ish requests.
-//#define kSamples (5 * 16000)
-#define kSamples (5000) // NB: reduced sample count for slow renode
-#define kFilterSamples (256)
-#define roundup(a, b) (((a) + (b) - 1) / (b)) * (b)
-#define MALLOC_QUOTA                                                         \
-  roundup(                                                                   \
-      (kSamples * sizeof(int32_t)) + 2 * (kFilterSamples * sizeof(int16_t)), \
-      4096)
-
 #include "soundstream.h"
 
 #include <fail-simulator-on-error.h>
@@ -39,10 +26,12 @@
 /// Expose debugging features unconditionally for this compartment.
 using Debug = ConditionalDebug<true, "SOUNDSTREAM">;
 
-#include "compat.h"
-
 #define ABS(x) (x > 0 ? x : -x)
 
+//#define kSamples (5 * 16000)
+#define kSamples (2000) // NB: reduced sample count for slow renode
+#define kFilterSamples (256)
+
 void __cheri_compartment("soundstream") entry(void) {
   Debug::log("soundstream (Thread {})", thread_id_get());
 
@@ -54,29 +43,15 @@
   i2s_irq_acknowledge_all();
   i2s_irq_set_enabled(kI2sIrqRxWatermark, /*enabled=*/true);
 
-  // NB: sample buffers are temporarily allocated from the heap because
-  // the toolchain does not support large'ish data structures. Support
-  // has been committed upstream but not yet brought in.
-
-  // XXX calloc returns 0xffffffff (v:0 0xfffffe00-0xfffffe00 l:0x0 o:0x0 p: -
-  // ------ -- ---) on failure so cannot check against NULL
-  //  int16_t samples_left[kFilterSamples] = {0};
-  //  int16_t samples_right[kFilterSamples] = {0};
-  int16_t* samples_left = (int16_t*)calloc(sizeof(int16_t), kFilterSamples);
-  Debug::Assert(__builtin_cheri_length_get(samples_left) > 0,
-                "samples_left allocation failed {}", samples_left);
-  int16_t* samples_right = (int16_t*)calloc(sizeof(int16_t), kFilterSamples);
-  Debug::Assert(__builtin_cheri_length_get(samples_right) > 0,
-                "samples_right allocation failed {}", samples_right);
+  // NB: the stack is 4KiB so this uses 1/4 of it
+  int16_t samples_left[kFilterSamples] = {0};
+  int16_t samples_right[kFilterSamples] = {0};
   size_t index_left = 0;
   size_t index_right = 0;
   int32_t total_left = 0;
   int32_t total_right = 0;
 
-  //  static int32_t samples[kSamples];
-  int32_t* samples = (int32_t*)calloc(sizeof(int32_t), kSamples);
-  Debug::Assert(__builtin_cheri_length_get(samples) > 0,
-                "Sample allocation failed {}", samples);
+  static int32_t samples[kSamples];
   memset(samples, 0xa5, sizeof(int32_t) * kSamples);
 
   Debug::log("Setup complete");
@@ -190,7 +165,7 @@
       ml_top_wait_for_finish();
 
       ml_top_get_output_header(&header);
-      CHECK(header.length == sizeof(result_buffer), "Unexpected ML result size");
+      Debug::Assert(header.length == sizeof(result_buffer), "Unexpected ML result size");
       ml_top_get_output_data(&header, result_buffer);
 
       encode((const unsigned char*)result_buffer, sizeof(result_buffer),
diff --git a/sw/device/cheriot/soundstream/xmake.lua b/sw/device/cheriot/soundstream/xmake.lua
index 5ab5325..0872683 100644
--- a/sw/device/cheriot/soundstream/xmake.lua
+++ b/sw/device/cheriot/soundstream/xmake.lua
@@ -68,6 +68,7 @@
     add_files("soundstream.cc", "encode.cc")
     add_files(path.join(matcha_dir, "hw/top_matcha/sw/autogen/top_matcha.c"));
     add_includedirs(matcha_dir, matcha_gen_dir, opentitan_dir)
+    add_defines("CHERIOT_NO_AMBIENT_MALLOC")
 
 -- Firmware image.
 firmware("soundstream-firmware")
