Commit Graph

99 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 2e05a1bd0d Revert "Upgrade smoltcp 0.6.0 -> 0.8.0"
This reverts commit c60de48a30.
2022-07-08 17:58:13 +08:00
Michael Birtwell c60de48a30 Upgrade smoltcp 0.6.0 -> 0.8.0
Main changes:
Deal with interfaces now being generic over mediums, update interface name
and initialisation.
Interfaces now own their sockets. So we store a reference to the Interface
instead of the SocketSet in Scheduler and IO.
Sockets are no longer reference counted. We never called the function to
increase the socket's reference count, so now we just remove it where it
was previously released. This will result in the socket being dropped at
a different time, but I think that should be fine.

Tested firmware upload to the bootloader and spamming artiq_coremgmt log
calls to download the log from the firmware.

Signed-off-by: Michael Birtwell <michael.birtwell@oxionics.com>
2022-04-24 10:09:27 +08:00
pca006132 4132c450a5 firmware: runtime changes for exception
Ported from:
M-Labs/artiq-zynq#162

This includes new API for exception handling, some refactoring to avoid
code duplication for exception structures, and modified protocols to
send nested exceptions and avoid string allocation.
2022-01-26 07:16:54 +08:00
occheung d5fa3d131a cargo.lock: update libc version for libfringe 2021-10-16 17:42:24 +08:00
occheung 46326716fd runtime: bump libfringe, impl ecall abi
See libfringe PR: M-Labs/libfringe#1
2021-10-16 17:42:24 +08:00
occheung 4fab267593 cargo: std dependency hack 2021-09-10 13:25:12 +08:00
occheung 70507e1b72 Cargo.lock: update 2021-09-10 13:25:12 +08:00
Sebastien Bourdeauducq bfcbffcd8d update smoltcp
This disables the 'log' features which does not compile, and may break net_trace. To be investigated later.
2020-01-21 13:58:23 +08:00
Sebastien Bourdeauducq 4e77be0511 firmware: add Cargo.lock header that newer cargo wants 2019-09-17 15:22:14 +08:00
Sebastien Bourdeauducq 390f05f762 firmware: use smoltcp release 2019-01-23 16:15:05 +08:00
whitequark 0e7419450e firmware: update smoltcp.
This adds TCP window scaling support.
2018-08-20 00:26:40 +00:00
whitequark 2648b1b7a1 firmware: migrate to Rust 1.28.0.
This also updates / is a prerequisite for updating smoltcp.

Rationale for changes made:
  * compiler_builtins is now shipped in the rust prefix.
  * rustc's libpanic_unwind no longer works for us because it
    has a hard dependency on Box (and it's a horrible hack);
    fortunately, we only ever needed a personality function
    from it.
  * panic and oom handlers are now set in a completely different
    way.
  * allocators are quite different (and finally stable).
  * NLL caused internal compiler errors in runtime, so code using
    NLL was rewritten to not rely on it and it was turned off.
2018-08-12 19:17:45 +00:00
Sebastien Bourdeauducq e71cbe53a6 firmware: cleanup Cargo.lock 2018-07-18 10:37:43 +08:00
Sebastien Bourdeauducq b27fa8964b add variant in identifier string
Also add without-sawg suffixes on Sayma.

Closes #1060
Closes #1059
2018-07-15 17:21:17 +08:00
whitequark 8128a814f6 firmware: update dependencies. 2018-05-15 18:17:32 +00:00
whitequark 1b0384c513 firmware: fix satman build. 2018-05-15 16:35:05 +00:00
whitequark 9347f6e00c firmware: use a dedicated error type in the scheduler.
After this commit, error handling does not normally allocate
(session::Error::{Load,Unexpected} still allocate, but those two
are very rare).

Good riddance to libstd_artiq.
2018-05-15 14:19:44 +00:00
whitequark 479cb9a857 firmware: use dedicated error types for every protocol and thread.
Good riddance to io::Error::Unrecognized.
2018-05-15 13:27:23 +00:00
whitequark ce0593315b firmware: move {ProtoRead,ProtoWrite} to the root of libio. 2018-05-15 08:16:09 +00:00
whitequark 4416c04ae1 firmware: use the failure crate in libio. 2018-05-15 07:40:13 +00:00
whitequark d93aa13fd6 firmware: use upstream compiler_builtins again.
I've fixed i128 in LLVM, so there is no need in our fork anymore.
2018-05-14 19:11:57 +00:00
whitequark 5ead27f2e1 firmware: eliminate uses of std_artiq::io::{Read,Write} from runtime. 2018-05-14 19:11:57 +00:00
whitequark ae50196186 firmware: rename libproto to libproto_artiq.
libproto_artiq only has ARTIQ-specific protocols.
2018-05-14 18:09:44 +00:00
whitequark 02b8426f60 firmware: rename libboard to libboard_misoc.
By analogy with libbuild_misoc. Hopefully one day it actually gets
moved to misoc...
2018-05-14 18:09:44 +00:00
whitequark 1ff42683d9 firmware: merge libamp into libboard_artiq.
All gateware interfaces live in libboard_artiq, but libamp predates
libboard_artiq.
2018-05-14 17:33:25 +00:00
whitequark 764386c9e3 firmware: split libdrtioaux into libproto and libboard_artiq modules.
All other protocol code lives in libproto, and all other gateware
interfaces live in libboard_artiq.
2018-05-14 17:26:59 +00:00
whitequark 6a10d54432 firmware: migrate rpc_proto to new libio.
This closes an old and horrible issue in that some code in ksupport
may implicitly try to allocate and we'll never know until it crashes
at runtime inside liballoc_stub.

This also removes liballoc_stub.
This also removes ReadExt and WriteExt from libproto.
Hooray!
2018-05-14 17:26:59 +00:00
whitequark 2999756493 firmware: impl std_artiq::io::{Read,Write} for io::{Read,Write}. 2018-05-14 12:51:59 +00:00
whitequark 56a29b91fc firmware: implement ConsoleLogger, use it in satman. 2018-05-14 10:45:11 +00:00
whitequark 5d43d457d2 satman: eliminate heap. 2018-05-14 10:05:02 +00:00
whitequark 46c8afc56c firmware: implement libio and use in in drtioaux. 2018-05-14 10:02:39 +00:00
whitequark d543c9aa63 firmware: backtrace_artiq → unwind_backtrace.
This crate isn't ARTIQ-specific.
2018-05-14 07:33:00 +00:00
whitequark 4f29d9134f firmware: update log_buffer.
Fixes #986.
2018-05-05 01:18:59 +00:00
whitequark b1d349cc1b firmware: implement a sampling profiler.
Does not yet support constructing call graphs.
2018-05-05 00:44:40 +00:00
whitequark 623614f835 Update LLVM to 6.0.0 and Rust to 1.25.0. 2018-05-01 08:57:37 +00:00
Robert Jördens 0c49201be7 firmware: add slave fpga serial load support
based on whitequark's work in f95fb27

m-labs/artiq#813
2018-02-28 19:27:52 +01:00
whitequark 96f697ec96 firmware: update compiler_builtins to unbreak __gtdf2.
Fixes #883.
2018-02-21 15:21:48 +00:00
whitequark 807eb1155b Update smoltcp.
Fixes #902.
2018-01-30 03:29:08 +00:00
whitequark 3a3f44af53 firmware: update smoltcp. 2018-01-08 21:41:53 +00:00
whitequark b7f38b123b frimware: update to log 0.4. 2018-01-01 11:45:55 +00:00
whitequark e1253db0e8 firmware: update crc dependency, use it in libdrtioaux. 2017-12-31 09:16:11 +00:00
whitequark b8f3d28bc0 firmware: update compiler_builtins dependency and move it to libboard.
This is so that we only specify it once.
2017-12-31 09:16:11 +00:00
whitequark 3505878176 bootloader: add basic network support. 2017-12-28 15:26:12 +00:00
whitequark acd13837ff firmware: implement the new bootloader. 2017-12-28 13:18:51 +00:00
whitequark b9754e7108 firmware: deduplicate libbuild_misoc and libbuild_artiq. 2017-12-28 13:18:51 +00:00
whitequark d94db1de5d Revert accidentally committed parts of 1b9b5602. 2017-12-28 08:23:34 +00:00
whitequark 1b9b560242 firmware: use libbuild_misoc in libdrtioaux. NFC. 2017-12-28 08:20:23 +00:00
whitequark 3b18ece3b7 satman: update for changes in firmware elsewhere. 2017-12-28 07:36:33 +00:00
whitequark d3066e5044 firmware: oops, misoc #[cfg]s were missing from libboard_artiq. 2017-12-28 07:36:33 +00:00
whitequark ca419aa3c2 firmware: split out libboard_artiq from libboard. 2017-12-28 07:07:00 +00:00