From 963083303398c6bf0b1e36063520a27ac0939dd6 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Wed, 28 Mar 2018 10:51:07 +0800 Subject: [PATCH] runtime: do not reset RTIO PHY on core.reset(). Closes #971 --- artiq/firmware/runtime/kern_hwreq.rs | 2 +- artiq/firmware/runtime/rtio_mgt.rs | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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() }