diff --git a/artiq/firmware/runtime/kern_hwreq.rs b/artiq/firmware/runtime/kern_hwreq.rs index a9c67178b..d1e8d2f5c 100644 --- a/artiq/firmware/runtime/kern_hwreq.rs +++ b/artiq/firmware/runtime/kern_hwreq.rs @@ -319,7 +319,7 @@ pub fn process_kern_hwreq(io: &Io, request: &kern::Message) -> io::Result match request { &kern::RtioInitRequest => { info!("resetting RTIO"); - rtio_mgt::init_core(); + rtio_mgt::init_core(false); kern_acknowledge() } diff --git a/artiq/firmware/runtime/rtio_mgt.rs b/artiq/firmware/runtime/rtio_mgt.rs index ce89d18a2..6bfef150d 100644 --- a/artiq/firmware/runtime/rtio_mgt.rs +++ b/artiq/firmware/runtime/rtio_mgt.rs @@ -244,14 +244,16 @@ pub fn startup(io: &Io) { } drtio::startup(io); - init_core(); + init_core(true); io.spawn(4096, async_error_thread); } -pub fn init_core() { +pub fn init_core(phy: bool) { unsafe { csr::rtio_core::reset_write(1); - csr::rtio_core::reset_phy_write(1); + if phy { + csr::rtio_core::reset_phy_write(1); + } } drtio::init() }