From b963bbbf778106358ce50c3d26d3dd51ccb11ac8 Mon Sep 17 00:00:00 2001 From: mwojcik Date: Fri, 23 Jul 2021 14:14:07 +0200 Subject: [PATCH] satman: replaced ident with the one from runtime --- src/satman/main.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/satman/main.rs b/src/satman/main.rs index c1179e08..a59992ad 100644 --- a/src/satman/main.rs +++ b/src/satman/main.rs @@ -5,7 +5,7 @@ extern crate log; use core::convert::TryFrom; -use board_misoc::{ident, i2c}; // <- port, use libboard_zynq +use board_misoc::{i2c}; // <- port, use libboard_zynq use libboard_zynq::timer::GlobalTimer; #[cfg(has_si5324)] use libboard_artiq::si5324; @@ -14,6 +14,19 @@ use libboard_artiq::{pl::csr, drtio_routing, drtioaux, logger}; mod repeater; +fn identifier_read(buf: &mut [u8]) -> &str { + unsafe { + pl::csr::identifier::address_write(0); + let len = pl::csr::identifier::data_read(); + let len = cmp::min(len, buf.len() as u8); + for i in 0..len { + pl::csr::identifier::address_write(1 + i); + buf[i as usize] = pl::csr::identifier::data_read(); + } + str::from_utf8_unchecked(&buf[..len as usize]) + } +} + fn drtiosat_reset(reset: bool) { unsafe { csr::drtiosat::reset_write(if reset { 1 } else { 0 }); @@ -416,7 +429,7 @@ pub extern fn main() -> i32 { info!("ARTIQ satellite manager starting..."); info!("software ident {}", csr::CONFIG_IDENTIFIER_STR); - info!("gateware ident {}", ident::read(&mut [0; 64])); + info!("gateware ident {}", identifier_read(&mut [0; 64])); #[cfg(has_i2c)] i2c::init().expect("I2C initialization failed"); // port