Compare commits

..

10 Commits

Author SHA1 Message Date
MorganTL 5279358640 - runtime: replace block_sync with r#yield
- runtime: chagne cfg that uses has_drtio
- satman: chagne cfg that uses has_drtio
2023-08-18 13:34:25 +08:00
MorganTL e8617e1b82 - io_expander: modify function to take i2c
- io_expander: remove i2c in struct
- io_expander: rename variable
- satman: create ioexpander object earlier in main
- runtime: create ioexpander object earlier in main
- runtime: rename async io_expander_service & takes in refcell
- runtime: inline wait function in block_async parameter
2023-08-18 13:32:38 +08:00
MorganTL eef01ea836 add "hw_rev" rustc_cfg 2023-08-18 13:32:38 +08:00
MorganTL 16e9d94afc -runtime main: rename function
- satman: change i2c0..1 to use raw pointer
- add reverted SFP LED commit
2023-08-18 13:32:38 +08:00
MorganTL 29b624a3c9 - inline i2c0..1 into io_expander
- remove redundant i2c.init
2023-08-18 13:32:38 +08:00
MorganTL f15ad8fb0b - remove debug message
- save 1 csr call
2023-08-18 13:32:38 +08:00
MorganTL b5f2c0349f rust format 2023-08-18 13:32:38 +08:00
MorganTL e58dcd0831 fix SPF LED stay on after removal 2023-08-18 13:32:38 +08:00
MorganTL c2600c47d9 use csr::virtual_leds for SFP0..3 LED indication 2023-08-18 13:32:38 +08:00
Sebastien Bourdeauducq dc08c382a2 satman: wait longer for PLL lock (#246) 2023-08-13 13:52:12 +08:00
2 changed files with 6 additions and 21 deletions

View File

@ -104,29 +104,14 @@ async fn report_async_rtio_errors() {
}
}
#[cfg(all(feature = "target_kasli_soc", has_drtio))]
static mut LAST_VIRTUAL_LED_STATUS: u8 = 0;
#[cfg(all(feature = "target_kasli_soc", has_drtio))]
#[cfg(feature = "target_kasli_soc")]
async fn io_expanders_service(
i2c_bus: RefCell<&mut libboard_zynq::i2c::I2c>,
io_expander0: RefCell<io_expander::IoExpander>,
io_expander1: RefCell<io_expander::IoExpander>,
) {
loop {
let _ = block_async!((|| -> nb::Result<(), Void> {
unsafe {
let current = pl::csr::virtual_leds::status_read();
if current != LAST_VIRTUAL_LED_STATUS {
LAST_VIRTUAL_LED_STATUS = current;
Ok(())
} else {
Err(nb::Error::WouldBlock)
}
}
})())
.await;
task::r#yield().await;
io_expander0
.borrow_mut()
.service(&mut i2c_bus.borrow_mut())
@ -192,7 +177,7 @@ pub fn main_core0() {
task::spawn(report_async_rtio_errors());
#[cfg(all(feature = "target_kasli_soc", has_drtio))]
#[cfg(feature = "target_kasli_soc")]
task::spawn(io_expanders_service(
RefCell::new(i2c_bus),
RefCell::new(io_expander0),

View File

@ -640,7 +640,7 @@ pub extern "C" fn main_core0() -> i32 {
unsafe {
csr::drtio_transceiver::stable_clkin_write(1);
}
timer.delay_us(20_000); // wait for CPLL/QPLL/MMCM lock
timer.delay_us(50_000); // wait for CPLL/QPLL/MMCM lock
let clk = unsafe { csr::sys_crg::current_clock_read() };
if clk == 1 {
info!("SYS CLK switched successfully");
@ -671,7 +671,7 @@ pub extern "C" fn main_core0() -> i32 {
for mut rep in repeaters.iter_mut() {
rep.service(&routing_table, rank, &mut timer);
}
#[cfg(all(feature = "target_kasli_soc", has_drtio))]
#[cfg(feature = "target_kasli_soc")]
{
io_expander0
.service(&mut i2c)
@ -717,7 +717,7 @@ pub extern "C" fn main_core0() -> i32 {
for mut rep in repeaters.iter_mut() {
rep.service(&routing_table, rank, &mut timer);
}
#[cfg(all(feature = "target_kasli_soc", has_drtio))]
#[cfg(feature = "target_kasli_soc")]
{
io_expander0
.service(&mut i2c)