diff --git a/src/libboard_artiq/Cargo.toml.tpl b/src/libboard_artiq/Cargo.toml.tpl index 995fc05..ab8270f 100644 --- a/src/libboard_artiq/Cargo.toml.tpl +++ b/src/libboard_artiq/Cargo.toml.tpl @@ -10,6 +10,7 @@ name = "libboard_artiq" [features] target_zc706 = ["libboard_zynq/target_zc706", "libconfig/target_zc706"] target_kasli_soc = ["libboard_zynq/target_kasli_soc", "libconfig/target_kasli_soc"] +target_ebaz4205 = ["libboard_zynq/target_ebaz4205", "libconfig/target_ebaz4205"] calibrate_wrpll_skew = [] [build-dependencies] diff --git a/src/libksupport/src/kernel/api.rs b/src/libksupport/src/kernel/api.rs index ef77e43..c5c1104 100644 --- a/src/libksupport/src/kernel/api.rs +++ b/src/libksupport/src/kernel/api.rs @@ -11,7 +11,10 @@ use super::{cache, core1::rtio_get_destination_status, dma, linalg, rpc::{rpc_recv, rpc_send, rpc_send_async}}; -use crate::{eh_artiq, i2c, rtio}; + +use crate::{eh_artiq, rtio}; +#[cfg(not(feature = "target_ebaz4205"))] +use crate::i2c; extern "C" { fn vsnprintf_(buffer: *mut c_char, count: size_t, format: *const c_char, va: VaList) -> c_int; @@ -109,11 +112,17 @@ pub fn resolve(required: &[u8]) -> Option { api!(cache_put = cache::put), // i2c + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_start = i2c::start), + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_restart = i2c::restart), + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_stop = i2c::stop), + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_write = i2c::write), + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_read = i2c::read), + #[cfg(not(feature = "target_ebaz4205"))] api!(i2c_switch_select = i2c::switch_select), // subkernel diff --git a/src/libksupport/src/lib.rs b/src/libksupport/src/lib.rs index 630f19e..78a2f1d 100644 --- a/src/libksupport/src/lib.rs +++ b/src/libksupport/src/lib.rs @@ -21,6 +21,7 @@ pub use pl::csr::rtio_core; use void::Void; pub mod eh_artiq; +#[cfg(not(feature = "target_ebaz4205"))] pub mod i2c; pub mod irq; pub mod kernel; diff --git a/src/runtime/Cargo.toml.tpl b/src/runtime/Cargo.toml.tpl index 9f539e0..c844131 100644 --- a/src/runtime/Cargo.toml.tpl +++ b/src/runtime/Cargo.toml.tpl @@ -8,6 +8,7 @@ edition = "2018" [features] target_zc706 = ["libboard_zynq/target_zc706", "libsupport_zynq/target_zc706", "libconfig/target_zc706", "libboard_artiq/target_zc706"] target_kasli_soc = ["libboard_zynq/target_kasli_soc", "libsupport_zynq/target_kasli_soc", "libconfig/target_kasli_soc", "libboard_artiq/target_kasli_soc"] +target_ebaz4205 = ["libboard_zynq/target_ebaz4205", "libsupport_zynq/target_ebaz4205", "libconfig/target_ebaz4205", "libboard_artiq/target_ebaz4205"] default = ["target_zc706"] [build-dependencies] diff --git a/src/runtime/src/main.rs b/src/runtime/src/main.rs index dd24e25..ecfd1c2 100644 --- a/src/runtime/src/main.rs +++ b/src/runtime/src/main.rs @@ -100,6 +100,7 @@ pub fn main_core0() { info!("gateware ident: {}", identifier_read(&mut [0; 64])); + #[cfg(not(feature = "target_ebaz4205"))] ksupport::i2c::init(); #[cfg(feature = "target_kasli_soc")] { diff --git a/src/runtime/src/rtio_clocking.rs b/src/runtime/src/rtio_clocking.rs index 06918b2..42cb215 100644 --- a/src/runtime/src/rtio_clocking.rs +++ b/src/runtime/src/rtio_clocking.rs @@ -69,7 +69,7 @@ fn get_rtio_clock_cfg(cfg: &Config) -> RtioClock { res } -#[cfg(not(has_drtio))] +#[cfg(not(any(has_drtio, feature = "target_ebaz4205")))] fn init_rtio(timer: &mut GlobalTimer) { info!("Switching SYS clocks..."); unsafe { @@ -429,7 +429,7 @@ pub fn init(timer: &mut GlobalTimer, cfg: &Config) { #[cfg(has_drtio)] init_drtio(timer); - #[cfg(not(has_drtio))] + #[cfg(not(any(has_drtio, feature = "target_ebaz4205")))] init_rtio(timer); #[cfg(all(has_si549, has_wrpll))]