MLBEDSW-3458: Added command stream size check.

If the command stream size exceeds a certain threshold,
a VelaError will now be raised.

Signed-off-by: erik.andersson@arm.com <erik.andersson@arm.com>
Change-Id: I9b9383f4c298a778b160cd527374e9244e4cae26
diff --git a/ethosu/vela/driver_actions.py b/ethosu/vela/driver_actions.py
index 5a85df0..317b2a6 100644
--- a/ethosu/vela/driver_actions.py
+++ b/ethosu/vela/driver_actions.py
@@ -24,6 +24,7 @@
 from .architecture_features import Accelerator
 from .architecture_features import ArchitectureFeatures
 from .architecture_features import create_default_arch
+from .errors import VelaError
 from .ethos_u55_regs.ethos_u55_regs import ARCH_VER
 from .ethos_u55_regs.ethos_u55_regs import config_r
 from .ethos_u55_regs.ethos_u55_regs import id_r
@@ -120,6 +121,12 @@
     da_list: List[int] = []
     emit_fourcc(da_list, "COP1")
     emit_config(da_list, 0, 1, arch)
+    if len(register_command_stream) >= 1 << 24:
+        raise VelaError(
+            "The command stream exceeds the driver size limit of 64 MiB. "
+            f"The current stream size is {4*len(register_command_stream)/2**20:.2F} MiB"
+        )
+
     emit_cmd_stream_header(da_list, len(register_command_stream))
 
     # Append command stream words