diff --git a/emulation/betrusted.repl b/emulation/betrusted.repl index db09043ff..7814e844e 100644 --- a/emulation/betrusted.repl +++ b/emulation/betrusted.repl @@ -19,7 +19,7 @@ app_uart: UART.LiteX_UART @ { -> cpu@1004 timer0: Timers.LiteX_Timer_32 @ { - sysbus 0xF0021000 + sysbus 0xF0022000 } frequency: 100000000 -> cpu@1001 @@ -41,12 +41,12 @@ fbmem: Memory.MappedMemory @ sysbus 0xB0000000 memlcd: Video.BetrustedLCD @ sysbus 0xF000B000 -keyboard: Input.BetrustedKbd @ sysbus 0xF0014000 +keyboard: Input.BetrustedKbd @ sysbus 0xF0015000 -> cpu @ 1010 -trng_kernel: Miscellaneous.BetrustedRNGKernel @ sysbus 0xF0019000 +trng_kernel: Miscellaneous.BetrustedRNGKernel @ sysbus 0xF001A000 -trng_server: Miscellaneous.BetrustedRNGServer @ sysbus 0xF001A000 +trng_server: Miscellaneous.BetrustedRNGServer @ sysbus 0xF001B000 // This peripheral doesn't actually exist, but is required // in order to keep the CPU running. diff --git a/services/gam/src/status.rs b/services/gam/src/status.rs index 753862708..6f136640d 100644 --- a/services/gam/src/status.rs +++ b/services/gam/src/status.rs @@ -116,7 +116,6 @@ pub fn status_thread(canvas_gid_0: usize, canvas_gid_1: usize, canvas_gid_2: usi let mut rtc = rtc::Rtc::new(&xns).unwrap(); - #[cfg(target_os = "none")] rtc.clear_wakeup_alarm().unwrap(); // clear any wakeup alarm state, if it was set rtc.hook_rtc_callback(dt_callback).unwrap(); diff --git a/services/rtc/src/main.rs b/services/rtc/src/main.rs index 4c842fe29..779d653a4 100644 --- a/services/rtc/src/main.rs +++ b/services/rtc/src/main.rs @@ -658,12 +658,15 @@ fn xmain() -> ! { }), Some(Opcode::ClearWakeupAlarm) => msg_blocking_scalar_unpack!(msg, _, _, _, _, { rtc.clear_wakeup_alarm(); // blocks until transaction is finished + xous::return_scalar(msg.sender, 0).expect("couldn't return to caller"); }), Some(Opcode::SetRtcAlarm) => msg_blocking_scalar_unpack!(msg, delay, _, _, _, { rtc.rtc_alarm(delay as u8); // this will block until finished, no callbacks used + xous::return_scalar(msg.sender, 0).expect("couldn't return to caller"); }), Some(Opcode::ClearRtcAlarm) => msg_blocking_scalar_unpack!(msg, _, _, _, _, { rtc.clear_rtc_alarm(); // blocks until transaction is finished + xous::return_scalar(msg.sender, 0).expect("couldn't return to caller"); }), None => { log::error!("unknown opcode received, exiting");