mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-08 04:56:43 +00:00
emulation: engine: always update registers on write
These registers get reset when the hardware is reset, however the engine may still be running. Ensure it's not running when the device is reset. Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
3f1593e56e
commit
d248ab3cc7
1 changed files with 10 additions and 4 deletions
|
|
@ -480,15 +480,15 @@ namespace Antmicro.Renode.Peripherals.Miscellaneous
|
|||
private void DefineRegisters()
|
||||
{
|
||||
Registers.WINDOW.Define(this)
|
||||
.WithValueField(0, 4, name: "WINDOW", valueProviderCallback: (_) => this.window, changeCallback: (_, value) => this.window = (byte)(value & 0xf))
|
||||
.WithValueField(0, 4, name: "WINDOW", valueProviderCallback: (_) => this.window, writeCallback: (_, value) => this.window = (byte)(value & 0xf))
|
||||
;
|
||||
|
||||
Registers.MPSTART.Define(this)
|
||||
.WithValueField(0, 11, name: "MPSTART", valueProviderCallback: (_) => this.mpstart, changeCallback: (_, value) => this.mpstart = (UInt16)(value & 0x7ff))
|
||||
.WithValueField(0, 11, name: "MPSTART", valueProviderCallback: (_) => this.mpstart, writeCallback: (_, value) => this.mpstart = (UInt16)(value & 0x7ff))
|
||||
;
|
||||
|
||||
Registers.MPLEN.Define(this)
|
||||
.WithValueField(0, 11, name: "MPLEN", valueProviderCallback: _ => this.mplen, changeCallback: (_, value) => this.mplen = (UInt16)(value & 0x7ff))
|
||||
.WithValueField(0, 11, name: "MPLEN", valueProviderCallback: _ => this.mplen, writeCallback: (_, value) => this.mplen = (UInt16)(value & 0x7ff))
|
||||
;
|
||||
|
||||
Registers.CONTROL.Define(this)
|
||||
|
|
@ -510,7 +510,7 @@ namespace Antmicro.Renode.Peripherals.Miscellaneous
|
|||
;
|
||||
|
||||
Registers.MPRESUME.Define(this)
|
||||
.WithValueField(0, 11, name: "MPRESUME", valueProviderCallback: _ => this.mpresume, changeCallback: (_, value) => { this.mpresume = (UInt16)(value & 0x7ff); })
|
||||
.WithValueField(0, 11, name: "MPRESUME", valueProviderCallback: _ => this.mpresume, writeCallback: (_, value) => { this.mpresume = (UInt16)(value & 0x7ff); })
|
||||
;
|
||||
|
||||
Registers.POWER.Define(this)
|
||||
|
|
@ -578,6 +578,12 @@ namespace Antmicro.Renode.Peripherals.Miscellaneous
|
|||
this.mplen = 0;
|
||||
this.mpresume = 0;
|
||||
this.mpc = 0;
|
||||
if (this.engineExecution != null) {
|
||||
if (this.engineExecution.IsAlive) {
|
||||
this.engineExecution.Abort();
|
||||
}
|
||||
this.engineExecution = null;
|
||||
}
|
||||
if (this.powerIsOn != null)
|
||||
{
|
||||
this.powerIsOn.Value = false;
|
||||
|
|
|
|||
Loading…
Reference in a new issue