forked from M-Labs/artiq-zynq
downconn fw: update csr & add doc
This commit is contained in:
parent
cbd3058c83
commit
ef5b06b187
|
@ -24,9 +24,9 @@ pub fn loopback_testing(channel: usize, timer: &mut GlobalTimer, speed: cxp_phys
|
|||
while (CXP[channel].downconn_rx_ready_read)() != 1 {}
|
||||
info!("rx ready!");
|
||||
|
||||
(CXP[channel].downconn_tx_stb_write)(1);
|
||||
cxp_proto::downconn_send_test_packet(channel);
|
||||
|
||||
// FIXME: why test + trig ack doesn't work well for rx??
|
||||
cxp_proto::downconn_debug_send_trig_ack(channel);
|
||||
|
||||
const DATA_MAXSIZE: usize = 253;
|
||||
|
@ -51,17 +51,22 @@ pub fn loopback_testing(channel: usize, timer: &mut GlobalTimer, speed: cxp_phys
|
|||
.expect("loopback gtx tx error");
|
||||
|
||||
timer.delay_us(1000); // wait packet has arrive at RX async fifo
|
||||
(CXP[channel].downconn_tx_stb_write)(0);
|
||||
|
||||
info!("trig ack = {}", (CXP[channel].downconn_trigger_ack_read)());
|
||||
(CXP[channel].downconn_trigger_ack_write)(1);
|
||||
info!("after clr trig ack = {}", (CXP[channel].downconn_trigger_ack_read)());
|
||||
if (CXP[channel].downconn_trigger_ack_read)() == 1 {
|
||||
(CXP[channel].downconn_trigger_ack_write)(1);
|
||||
info!("trig ack and cleared");
|
||||
}
|
||||
|
||||
if (CXP[channel].downconn_bootstrap_decoder_err_read)() == 1 {
|
||||
info!("!!!!!!!DECODER ERROR!!!!!!! and cleared");
|
||||
(CXP[channel].downconn_bootstrap_decoder_err_write)(1);
|
||||
}
|
||||
|
||||
if (CXP[channel].downconn_bootstrap_test_err_read)() == 1 {
|
||||
info!("!!!!!!!TEST ERROR!!!!!!! and cleared");
|
||||
(CXP[channel].downconn_bootstrap_test_err_write)(1);
|
||||
}
|
||||
|
||||
info!(
|
||||
"decoder error = {}",
|
||||
(CXP[channel].downconn_bootstrap_decoder_err_read)()
|
||||
);
|
||||
info!("test error = {}", (CXP[channel].downconn_bootstrap_test_err_read)());
|
||||
info!("packet type = {:#06X}", (CXP[channel].downconn_packet_type_read)());
|
||||
|
||||
cxp_proto::receive(channel).expect("loopback gtx rx error");
|
||||
|
@ -82,6 +87,8 @@ pub fn loopback_testing(channel: usize, timer: &mut GlobalTimer, speed: cxp_phys
|
|||
break;
|
||||
}
|
||||
}
|
||||
cxp_proto::print_packetu32(&pak_arr, &k_arr);
|
||||
|
||||
info!("rx ready = {}", (CXP[channel].downconn_rx_ready_read)());
|
||||
// cxp_proto::print_packetu32(&pak_arr, &k_arr);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue