Commit Graph

18 Commits (85ea6f0b32b3ff1291bc950235f336b367f3ca98)

Author SHA1 Message Date
pca006132 85ea6f0b32 runtime: use &CSlice for lists 2022-03-10 16:09:19 +08:00
pca006132 8788d6458e runtime/rpc: fixes alignment and size problem 2022-01-04 18:25:53 +08:00
mwojcik 827c6c1306 runtime: switch to libio/libboard_artiq, add DRTIO mastering support
Reviewed-on: M-Labs/artiq-zynq#137
Co-authored-by: mwojcik <mw@m-labs.hk>
Co-committed-by: mwojcik <mw@m-labs.hk>
2021-10-06 13:05:45 +08:00
pca006132 faa335461d runtime: modified protocols to use device endian 2021-01-22 13:36:38 +08:00
pca006132 35204d4716 fixed new compiler warnings 2021-01-15 17:55:58 +08:00
pca006132 d474cf58a5 runtime/rpc: optimizations for list and arrays
Requires https://github.com/m-labs/artiq/pull/1510
This is the commit producing the result in the table.
2020-08-26 13:47:41 +08:00
David Nadlinger 9f898dd2b8 runtime/rpc: Support new TArray layout (ndarrays)
This is a port of the respective commit in the main ARTIQ
repository.
2020-08-09 19:17:38 +01:00
pca006132 84630d66e3 rpc: added `#[repr(C)]` for structs. 2020-07-16 15:48:17 +08:00
pca006132 4457af7277 rpc: Fixed alignment problem.
Fixes issue #42.

Previously there was no fix for the variable alignment.
We calculate the position of the variable based on the size
of the previous variable, so we could break the alignment requirement
for variables. For example, having a `i64` after `bool` could break
the alignment required for `i64` and trigger DataAbort or data
corruption.

However, this requires the same data layout and LLVM type for the
variables. If this cannot be maintained, this would break the alignment
on the other side of the RPC, either from host to kernel or kernel to
host.
2020-07-16 14:06:39 +08:00
Sebastien Bourdeauducq de8da59e56 adjust logging levels 2020-07-05 23:46:23 +08:00
Sebastien Bourdeauducq 06915ec25d rpc: make alloc async 2020-06-07 21:47:36 +08:00
Sebastien Bourdeauducq 7df6ab2149 rpc: use async-recursion 2020-06-07 21:30:33 +08:00
Sebastien Bourdeauducq f0588c49ed rpc: make receive async 2020-06-07 20:24:41 +08:00
Sebastien Bourdeauducq ef4bdbb668 rpc: enable logging 2020-06-07 20:23:43 +08:00
Sebastien Bourdeauducq ed21457f28 replace libio with core_io
* based on https://github.com/jethrogb/rust-core_io but could not get the packaging scripts to work
  and the repos is unmaintained anyway, so just copied the result
* more features and more up-to-date
* compatible with the fatfs crate
2020-06-05 17:14:36 +08:00
Sebastien Bourdeauducq d65df2f454 rpc: revert to libio
* Recursive async fns in Rust are a mess and not usable.
* When doing ARTIQ async RPCs, it is simpler to encode the buffer on the kernel CPU and pass that to the comms CPU,
  instead of tracking when kernel CPU memory with the RPC values can be freed.
2020-06-03 11:17:49 +08:00
Sebastien Bourdeauducq cb24b82e68 rpc: strings 2020-06-01 18:21:04 +08:00
Sebastien Bourdeauducq 7aa9a95c21 add RPC protocol module (WIP) 2020-06-01 18:02:21 +08:00