From dc78868109de2fcaf6f51277da2ea183f0c0cd53 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 11 Jun 2020 17:36:23 +0800 Subject: [PATCH] update dependencies and add fatfs --- default.nix | 2 +- src/Cargo.lock | 47 +++++++++++++++++++++++++--------------- src/runtime/Cargo.toml | 1 + src/runtime/src/comms.rs | 19 +++------------- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/default.nix b/default.nix index e0534fb..65dc039 100644 --- a/default.nix +++ b/default.nix @@ -15,7 +15,7 @@ let version = "0.1.0"; src = ./src; - cargoSha256 = "03ax0bzkn7w0bxvq99n1h5b7x4vs1xk7z5r1701c6dz27qg78fn1"; + cargoSha256 = "0iaw4zgyajyy6swk9jlq2ky1g4ffj2230j6vli7cjl2spzkhi4sz"; nativeBuildInputs = [ pkgs.gnumake diff --git a/src/Cargo.lock b/src/Cargo.lock index 8a96b87..e434f98 100644 --- a/src/Cargo.lock +++ b/src/Cargo.lock @@ -93,6 +93,18 @@ dependencies = [ "void", ] +[[package]] +name = "fatfs" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d1df9e4503954f60504a5ee4fc435cd65cc42e98b2081f7f421be5f2e68e7d" +dependencies = [ + "bitflags", + "byteorder", + "core_io", + "log", +] + [[package]] name = "futures" version = "0.3.5" @@ -172,7 +184,7 @@ dependencies = [ [[package]] name = "libasync" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#40d5eb8232de1bec19e8bb81ad09351537926a06" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#d3b488bfb35f752dd93d316fba6d54ce1a71e398" dependencies = [ "embedded-hal", "libcortex_a9", @@ -184,7 +196,7 @@ dependencies = [ [[package]] name = "libboard_zynq" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#40d5eb8232de1bec19e8bb81ad09351537926a06" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#d3b488bfb35f752dd93d316fba6d54ce1a71e398" dependencies = [ "bit_field", "embedded-hal", @@ -200,7 +212,7 @@ dependencies = [ [[package]] name = "libcortex_a9" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#40d5eb8232de1bec19e8bb81ad09351537926a06" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#d3b488bfb35f752dd93d316fba6d54ce1a71e398" dependencies = [ "bit_field", "libregister", @@ -209,7 +221,7 @@ dependencies = [ [[package]] name = "libregister" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#40d5eb8232de1bec19e8bb81ad09351537926a06" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#d3b488bfb35f752dd93d316fba6d54ce1a71e398" dependencies = [ "bit_field", "vcell", @@ -219,7 +231,7 @@ dependencies = [ [[package]] name = "libsupport_zynq" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#40d5eb8232de1bec19e8bb81ad09351537926a06" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#d3b488bfb35f752dd93d316fba6d54ce1a71e398" dependencies = [ "compiler_builtins", "libboard_zynq", @@ -246,9 +258,9 @@ dependencies = [ [[package]] name = "managed" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdcec5e97041c7f0f1c5b7d93f12e57293c831c646f4cc7a5db59460c7ea8de6" +checksum = "c75de51135344a4f8ed3cfe2720dc27736f7711989703a0b43aadf3753c55577" [[package]] name = "memchr" @@ -284,18 +296,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a1acf4a3e70849f8a673497ef984f043f95d2d8252dcdf74d54e6a1e47e8a" +checksum = "e75373ff9037d112bb19bc61333a06a159eaeb217660dcfbea7d88e1db823919" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194e88048b71a3e02eb4ee36a6995fed9b8236c11a7bb9f7247a9d9835b3f265" +checksum = "10b4b44893d3c370407a1d6a5cfde7c41ae0478e31c516c85f67eb3adc51be6d" dependencies = [ "proc-macro2", "quote", @@ -316,9 +328,9 @@ checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" [[package]] name = "proc-macro-nested" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" +checksum = "0afe1bd463b9e9ed51d0e0f0b50b6b146aec855c56fd182bb242388710a9b6de" [[package]] name = "proc-macro2" @@ -331,9 +343,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ "proc-macro2", ] @@ -353,6 +365,7 @@ dependencies = [ "core_io", "cslice", "dyld", + "fatfs", "futures", "libasync", "libboard_zynq", @@ -377,9 +390,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2" +checksum = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6" dependencies = [ "proc-macro2", "quote", diff --git a/src/runtime/Cargo.toml b/src/runtime/Cargo.toml index 624fc16..e32ef42 100644 --- a/src/runtime/Cargo.toml +++ b/src/runtime/Cargo.toml @@ -24,3 +24,4 @@ libsupport_zynq = { git = "https://git.m-labs.hk/M-Labs/zc706.git" } libcortex_a9 = { git = "https://git.m-labs.hk/M-Labs/zc706.git" } libasync = { git = "https://git.m-labs.hk/M-Labs/zc706.git" } dyld = { path = "../libdyld" } +fatfs = { version = "0.3", features = ["core_io", "alloc"], default-features = false } diff --git a/src/runtime/src/comms.rs b/src/runtime/src/comms.rs index 05a77f5..07fa583 100644 --- a/src/runtime/src/comms.rs +++ b/src/runtime/src/comms.rs @@ -1,4 +1,3 @@ -use core::mem::transmute; use core::fmt; use core::cell::RefCell; use core::str::Utf8Error; @@ -249,25 +248,13 @@ const IPADDR: IpAddress = IpAddress::Ipv4(Ipv4Address([192, 168, 1, 52])); pub fn main(timer: GlobalTimer) { let eth = zynq::eth::Eth::default(HWADDR.clone()); const RX_LEN: usize = 8; - let mut rx_descs = (0..RX_LEN) - .map(|_| zynq::eth::rx::DescEntry::zeroed()) - .collect::>(); - let mut rx_buffers = vec![zynq::eth::Buffer::new(); RX_LEN]; // Number of transmission buffers (minimum is two because with // one, duplicate packet transmission occurs) const TX_LEN: usize = 8; - let mut tx_descs = (0..TX_LEN) - .map(|_| zynq::eth::tx::DescEntry::zeroed()) - .collect::>(); - let mut tx_buffers = vec![zynq::eth::Buffer::new(); TX_LEN]; - let eth = eth.start_rx(&mut rx_descs, &mut rx_buffers); - let mut eth = eth.start_tx( - // HACK - unsafe { transmute(tx_descs.as_mut_slice()) }, - unsafe { transmute(tx_buffers.as_mut_slice()) }, - ); - let ethernet_addr = EthernetAddress(HWADDR); + let eth = eth.start_rx(RX_LEN); + let mut eth = eth.start_tx(TX_LEN); + let ethernet_addr = EthernetAddress(HWADDR); let mut ip_addrs = [IpCidr::new(IPADDR, 24)]; let mut routes_storage = vec![None; 4]; let routes = Routes::new(&mut routes_storage[..]);