summaryrefslogtreecommitdiffstats
path: root/debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py')
-rw-r--r--debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py b/debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py
index a2d2c6a..852536e 100644
--- a/debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py
+++ b/debug/risc-v-gsp-rm-vm/greeneye/sim_backend.py
@@ -313,6 +313,7 @@ def launch_native(
*,
kernel: str | None = None,
memory_mb: int = 256,
+ ram_base: int = 0x80000000,
record=None,
symbols: SymbolDB | None = None,
name: str = "session",
@@ -324,6 +325,7 @@ def launch_native(
unknown_mmio: str = "fault",
learn_mmio: bool = False,
bias: int = 0,
+ cycle_model=None,
) -> Session:
"""Boot the native simulator and return a ready Session.
@@ -340,6 +342,11 @@ def launch_native(
``learn_mmio=True`` writes the observed values back into the map.
``bias`` relocates PT_LOAD segments and the entry for images linked for
GPU physical addresses (e.g. ``0x80000000`` for the real GSP fwimage).
+
+ ``cycle_model`` selects the modeled instruction-class cycle accounting
+ (:mod:`sim.cycles`): ``None`` (default) uses the default table, ``False``
+ disables it (``machine.cycles`` stays 0), or pass a ``CycleModel``. The
+ model never changes execution.
"""
try:
tracer = make_trace(trace)
@@ -353,14 +360,17 @@ def launch_native(
device_map = DeviceMap.load(os.fspath(device_map))
machine = Machine(
memory_mb=memory_mb,
+ ram_base=ram_base,
device_map=device_map,
unknown_mmio=unknown_mmio,
learn_mmio=learn_mmio,
bias=bias,
+ cycle_model=cycle_model,
)
target = SimTarget(
machine,
memory_mb=memory_mb,
+ ram_base=ram_base,
sim_ips=sim_ips,
keep_alive=keep_alive,
trace=tracer,