sencha/bancha: fix gdb server support to track upstream changes
Note this only enables the renode service to run; gdb functionality is
still missing for CHERIoT.
Change-Id: I17e4183a62d7c78afc1a7c931bcde924b134f6ee
diff --git a/bancha.resc b/bancha.resc
index 09e14ad..6a106a0 100644
--- a/bancha.resc
+++ b/bancha.resc
@@ -90,7 +90,7 @@
$vector_core_mips ?= 1000
sysbus.cpu2 PerformanceInMips $vector_core_mips
-# TOOD: enable for soundstream until model is properly packaged
+# NB: model is normally loaded from SPI
#$kelvin_bin?=@out/cheriot/sim/kelvin.bin
#sysbus LoadBinary $kelvin_bin 0x5A000000
@@ -99,7 +99,7 @@
# cpu2 does not support GDB. Please follow docs/KelvinIssDebugging.md to debug
# Kelvin programs.
$gdb_port?=3333
-#machine StartGdbServer $gdb_port false cpu0
+machine StartGdbServer $gdb_port false cpu0
cpu0 IsHalted true
cpu2 IsHalted true
diff --git a/sencha.resc b/sencha.resc
index 15fc07f..b3ed67c 100644
--- a/sencha.resc
+++ b/sencha.resc
@@ -104,7 +104,7 @@
$gdb_port?=3333
machine StartGdbServer $gdb_port false cpu0
# TODO(sleffler) temp disable due to breakage
-#machine StartGdbServer $gdb_port false cpu1
+machine StartGdbServer $gdb_port false cpu1
cpu0 IsHalted true
cpu1 IsHalted true
diff --git a/shodan_infrastructure/MpactCheriotCPU.cs b/shodan_infrastructure/MpactCheriotCPU.cs
index 8abf5cc..fd4f858 100644
--- a/shodan_infrastructure/MpactCheriotCPU.cs
+++ b/shodan_infrastructure/MpactCheriotCPU.cs
@@ -51,7 +51,8 @@
// The MpactCheriotCPU class. This class derives from BaseCPU, which implements
// a CPU in ReNode. It is the interface between ReNode and the mpact_cheriot
// simulator library.
-public class MpactCheriotCPU : MpactBaseCPU, ICpuSupportingGdb {
+public class MpactCheriotCPU : MpactBaseCPU, ICluster<MpactCheriotCPU>,
+ ICpuSupportingGdb {
public MpactCheriotCPU(uint id, UInt64 memoryBase, UInt64 memorySize,
UInt64 revocationMemoryBase, string cpuType,
@@ -60,6 +61,7 @@
: base(id, memoryBase, memorySize, cpuType, machine, endianness,
bitness) {
revocationMemBase = revocationMemoryBase;
+ Clustered = new MpactCheriotCPU[] { this };
}
~MpactCheriotCPU() {
@@ -133,6 +135,9 @@
public void RemoveHooksAt(ulong addr) { /* empty */ }
public void RemoveAllHooks() { /* empty */ }
+ // ICluster methods.
+ public new IEnumerable<ICluster<MpactCheriotCPU>> Clusters {get; } = new List<ICluster<MpactCheriotCPU>>(0);
+ public new IEnumerable<MpactCheriotCPU> Clustered {get; }
// ICPUSupportingGdb methods.
public void EnterSingleStepModeSafely(HaltArguments args) {