|
@@ -34,7 +34,9 @@
|
|
|
#include "target/riscv/cpu.h"
|
|
|
#include "migration/vmstate.h"
|
|
|
|
|
|
-REG32(CTRL, 0x00)
|
|
|
+REG32(ALERT_TEST, 0x00)
|
|
|
+ FIELD(ALERT_TEST, FATAL_FAULT, 0, 1)
|
|
|
+REG32(CTRL, 0x04)
|
|
|
FIELD(CTRL, ACTIVE, 0, 1)
|
|
|
REG32(CFG0, 0x100)
|
|
|
FIELD(CFG0, PRESCALE, 0, 12)
|
|
@@ -142,6 +144,10 @@ static uint64_t ibex_timer_read(void *opaque, hwaddr addr,
|
|
|
uint64_t retvalue = 0;
|
|
|
|
|
|
switch (addr >> 2) {
|
|
|
+ case R_ALERT_TEST:
|
|
|
+ qemu_log_mask(LOG_GUEST_ERROR,
|
|
|
+ "Attempted to read ALERT_TEST, a write only register");
|
|
|
+ break;
|
|
|
case R_CTRL:
|
|
|
retvalue = s->timer_ctrl;
|
|
|
break;
|
|
@@ -186,6 +192,9 @@ static void ibex_timer_write(void *opaque, hwaddr addr,
|
|
|
uint32_t val = val64;
|
|
|
|
|
|
switch (addr >> 2) {
|
|
|
+ case R_ALERT_TEST:
|
|
|
+ qemu_log_mask(LOG_UNIMP, "Alert triggering not supported");
|
|
|
+ break;
|
|
|
case R_CTRL:
|
|
|
s->timer_ctrl = val;
|
|
|
break;
|