Updated renode C# files to support gdb server connections. PiperOrigin-RevId: 673064149 Change-Id: Iff81309d15cf9881749a0291aa14b8f41cd97ecb
diff --git a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs b/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs index 8abf5cc..a2107e8 100644 --- a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs +++ b/mpact/sim/util/renode/renode_cs/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,10 @@ 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) {
diff --git a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs index ca93625..12fa0cd 100644 --- a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs +++ b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
@@ -45,7 +45,8 @@ // The MpactRiscvCPU class. This class derives from BaseCPU, which implements // a CPU in ReNode. It is the interface between ReNode and the mpact_riscv32/64 // simulator libraries. -public class MpactRiscVCPU : MpactBaseCPU, ICpuSupportingGdb { +public class MpactRiscVCPU : MpactBaseCPU, ICluster<MpactRiscVCPU>, + ICpuSupportingGdb { public MpactRiscVCPU(uint id, UInt64 memoryBase, UInt64 memorySize, string cpuType, IMachine machine, @@ -53,6 +54,7 @@ CpuBitness bitness = CpuBitness.Bits32) : base(id, memoryBase, memorySize, cpuType, machine, endianness, bitness) { + Clustered = new MpactRiscVCPU[] { this }; } ~MpactRiscVCPU() { @@ -133,6 +135,10 @@ public void RemoveHooksAt(ulong addr) { /* empty */ } public void RemoveAllHooks() { /* empty */ } + // ICluster methods. + public new IEnumerable<ICluster<MpactRiscVCPU>> Clusters {get; } = new List<ICluster<MpactRiscVCPU>>(0); + public new IEnumerable<MpactRiscVCPU> Clustered {get; } + // ICPUSupportingGdb methods. public void EnterSingleStepModeSafely(HaltArguments args) {