sencha: add WaitForCli property Change-Id: I3618cb99969d189d30a749d701242c8db4463574
diff --git a/sencha.resc b/sencha.resc index ce9b76f..b77b779 100644 --- a/sencha.resc +++ b/sencha.resc
@@ -63,6 +63,7 @@ # Override cli_port to enable the command line interface on the specified port. $cli_port?= -1 sysbus.cpu1 CliPort $cli_port +sysbus.cpu1 WaitForCli true # Setup ram_smc to coordinate with cpu1 sysbus.ram_smc CpuLibraryPath $cheriotLibrary
diff --git a/shodan_infrastructure/MpactCheriotCPU.cs b/shodan_infrastructure/MpactCheriotCPU.cs index 281d260..072ddaa 100644 --- a/shodan_infrastructure/MpactCheriotCPU.cs +++ b/shodan_infrastructure/MpactCheriotCPU.cs
@@ -119,12 +119,14 @@ config_values.Add("0x" + memorySize.ToString("X")); config_values.Add("0x" + revocationMemBase.ToString("X")); config_values.Add("0x" + clintBase.ToString("X")); + if (cli_port != -1) { config_names.Add("cliPort"); config_values.Add("0x" + cli_port.ToString("X")); config_names.Add("waitForCLI"); - config_values.Add("0x1"); + config_values.Add("0x" + Convert.ToInt32(wait_for_cli).ToString("X")); } + Int32 cfg_res = set_config(mpact_id, config_names.ToArray(), config_values.ToArray(), config_names.Count); if (cfg_res < 0) { LogAndThrowRE("Failed to set configuration information"); @@ -181,6 +183,11 @@ } public int CliPort { get => cli_port; set => cli_port = value; } + public bool WaitForCli + { + get => wait_for_cli; + set => wait_for_cli = value; + } public override ulong ExecutedInstructions => totalExecutedInstructions; @@ -494,6 +501,7 @@ private string cpuLibraryPath; private bool cpuLibraryRegistered; private int cli_port = -1; + private bool wait_for_cli = false; private NativeBinder binder; private readonly object nativeLock; private readonly Int32 maxStringLen = 32;