forked from M-Labs/artiq
firmware: wait for serwb to be ready before proceeding further
This commit is contained in:
parent
33f053cff8
commit
2b2b345eb9
@ -25,6 +25,8 @@ pub mod spi;
|
|||||||
#[cfg(has_si5324)]
|
#[cfg(has_si5324)]
|
||||||
pub mod si5324;
|
pub mod si5324;
|
||||||
|
|
||||||
|
#[cfg(has_serwb_phy)]
|
||||||
|
pub mod serwb;
|
||||||
#[cfg(has_ad9516)]
|
#[cfg(has_ad9516)]
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
mod ad9516_reg;
|
mod ad9516_reg;
|
||||||
|
18
artiq/firmware/libboard/serwb.rs
Normal file
18
artiq/firmware/libboard/serwb.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
use csr;
|
||||||
|
|
||||||
|
pub fn wait_init() {
|
||||||
|
info!("waiting for AMC/RTM serwb bridge to be ready...");
|
||||||
|
unsafe {
|
||||||
|
while csr::serwb_phy::control_ready_read() != 0 {}
|
||||||
|
}
|
||||||
|
info!("done.");
|
||||||
|
|
||||||
|
// Try reading the identifier register on the other side of the bridge.
|
||||||
|
let rtm_identifier = unsafe {
|
||||||
|
csr::rtm_identifier::identifier_read()
|
||||||
|
};
|
||||||
|
if rtm_identifier != 0x5352544d {
|
||||||
|
error!("incorrect RTM identifier: 0x{:08x}", rtm_identifier);
|
||||||
|
// proceed anyway
|
||||||
|
}
|
||||||
|
}
|
@ -63,6 +63,9 @@ fn startup() {
|
|||||||
info!("software version {}", include_str!(concat!(env!("OUT_DIR"), "/git-describe")));
|
info!("software version {}", include_str!(concat!(env!("OUT_DIR"), "/git-describe")));
|
||||||
info!("gateware version {}", board::ident(&mut [0; 64]));
|
info!("gateware version {}", board::ident(&mut [0; 64]));
|
||||||
|
|
||||||
|
#[cfg(has_serwb_phy)]
|
||||||
|
board::serwb::wait_init();
|
||||||
|
|
||||||
let t = board::clock::get_ms();
|
let t = board::clock::get_ms();
|
||||||
info!("press 'e' to erase startup and idle kernels...");
|
info!("press 'e' to erase startup and idle kernels...");
|
||||||
while board::clock::get_ms() < t + 1000 {
|
while board::clock::get_ms() < t + 1000 {
|
||||||
|
@ -195,6 +195,9 @@ fn startup() {
|
|||||||
info!("software version {}", include_str!(concat!(env!("OUT_DIR"), "/git-describe")));
|
info!("software version {}", include_str!(concat!(env!("OUT_DIR"), "/git-describe")));
|
||||||
info!("gateware version {}", board::ident(&mut [0; 64]));
|
info!("gateware version {}", board::ident(&mut [0; 64]));
|
||||||
|
|
||||||
|
#[cfg(has_serwb_phy)]
|
||||||
|
board::serwb::wait_init();
|
||||||
|
|
||||||
#[cfg(has_ad9516)]
|
#[cfg(has_ad9516)]
|
||||||
board::ad9516::init().expect("cannot initialize AD9516");
|
board::ad9516::init().expect("cannot initialize AD9516");
|
||||||
#[cfg(has_hmc830_7043)]
|
#[cfg(has_hmc830_7043)]
|
||||||
|
Loading…
Reference in New Issue
Block a user