Commit Graph

180 Commits

Author SHA1 Message Date
whitequark
fd8b11532f compiler, firmware: use Pascal strings everywhere.
This removes a large amount of very ugly code, and also simplifies
the compiler and runtime.
2017-02-03 11:53:27 +00:00
whitequark
f48cf9d9a0 firmware: use libcompiler_builtins to build satman. 2017-02-03 08:11:42 +00:00
whitequark
9c93c760fc firmware: do not use PIC in Rust code.
This fixes test_pulse_rate and test_pulse_rate_dds by making
rtio_output slightly faster.
2017-02-02 12:22:55 +00:00
whitequark
259319e456 firmware: use compiler_builtins crate instead of our compiler-rt.
This cannot be done for ksupport yet because compiler_builtins
misses most soft-float operations.
2017-02-02 10:55:35 +00:00
whitequark
44a9a79f96 firmware: port allocator to Rust. 2017-02-02 10:55:35 +00:00
whitequark
3b54736c02 firmware: port flash storage management to Rust. 2017-02-02 05:26:06 +00:00
whitequark
c2cf60e7f6 firmware: use the cslice crate to get rid of unsafe code in ksupport. 2017-02-02 00:51:58 +00:00
whitequark
f3b2610ffc Fix bc22d1c. 2017-02-01 01:56:39 +00:00
whitequark
bc22d1c009 firmware: libksupport → ksupport.
The idea is that support libraries are called lib*, and the final
products that linked into an executable are not.
2017-01-31 22:24:37 +00:00
43aad0914e python3.5 -> python3
Many things also work with Python 3.6.
2017-01-30 09:24:43 +08:00
whitequark
15ba6f36ba runtime: reduce the amount of noise during build. 2017-01-23 13:59:34 +00:00
whitequark
527b1e986c firmware: integrate smoltcp instead of lwip. 2017-01-23 13:59:34 +00:00
whitequark
0253e0a89d firmware: remove false dependency from runtime to ksupport.
This significantly speeds up no-change builds.
2017-01-23 13:57:08 +00:00
5c0d402ef3 firmware: runtime.ld formatting 2017-01-18 17:09:49 -06:00
whitequark
c2d86c4f67 firmware: apply build flags globally, move --cfg handling to build.rs. 2017-01-03 20:12:56 +00:00
whitequark
aed91292e2 firmware: remove cargo profiles.
These are specified per-workspace, and anyhow are mostly overridden
by our Makefile, so specify everything in it.
2016-12-29 13:06:40 +00:00
9967dfc5ca runtime: reorganize to support DRTIO satellite firmware 2016-12-16 19:11:19 +08:00
whitequark
4c94873560 runtime: upgrade lwip to release 2.0.0. 2016-12-05 04:35:02 +00:00
whitequark
18b7ccea4e runtime: rewrite i2c support code in Rust. 2016-11-21 18:25:43 +00:00
whitequark
a825584ac0 runtime: rewrite rtio support code in Rust. 2016-11-21 17:13:09 +00:00
whitequark
f4b7666768 coredevice.dds: reimplement fully in ARTIQ Python.
This commit also drops AD9858 support from software.
2016-11-21 15:13:26 +00:00
whitequark
18c394976e runtime: disable the Nagle algorithm entirely.
See also commit feed91d; that commit fixed the test_rpc_timing test,
but caused frequent hangs elsewhere, which were also caused by buggy
Nagle implementation. Just disable this entirely, as with our
explicit buffering it provides no benefit anyway.
2016-11-13 00:33:24 +00:00
whitequark
798a5f70df Revert "runtime: remove some redundant libm functions copied inline."
This reverts commit fee75bd50f.

LLVM does not have lround as a libcall and this inhibits LICM.
2016-11-08 11:54:17 +00:00
453e8b7eb3 runtime: support configurations without moninj, log or dds 2016-11-06 23:53:10 +08:00
whitequark
6fcd57a41a runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
whitequark
898a716b91 runtime: work around mor1kx ignoring low bits of reset address.
Fixes #599.
2016-10-31 18:13:15 +00:00
whitequark
2ac85cd40f runtime: implement prototype background RPCs. 2016-10-29 21:34:25 +00:00
whitequark
6da1f39670 runtime: fix use of $(realpath) in Makefile. 2016-10-17 00:11:02 +00:00
whitequark
a8c017bfcc runtime: port ksupport to Rust. 2016-10-16 16:32:43 +00:00
whitequark
fee75bd50f runtime: remove some redundant libm functions copied inline. 2016-10-16 16:25:29 +00:00
whitequark
4d790b452c runtime: discard unnecessary sections. 2016-10-07 08:30:14 +00:00
whitequark
ef10344b3e runtime: rewrite isr() in Rust. 2016-10-07 06:27:10 +00:00
whitequark
8be60cc223 runtime: fix KERNELCPU_LAST_ADDRESS after layout change. 2016-10-07 05:53:55 +00:00
whitequark
b52ecda1d5 runtime: make memory map saner. 2016-10-06 18:05:38 +00:00
whitequark
5428a866b3 runtime: the Rust runtime is now just the runtime. 2016-10-06 15:38:45 +00:00
whitequark
e92f20546a Rust: implement exceptional RPC replies. 2016-10-06 14:08:02 +00:00
whitequark
226fa723bb Rust: implement exceptional kernel termination.
This also adjusts the way backtraces are serialized by kloader.
2016-10-06 13:42:35 +00:00
whitequark
b590c6c7d8 Rust: import --cfg flags generated by misoc. 2016-10-04 08:15:13 +00:00
whitequark
0e2cd38135 Rust: set the SOF_KEEPALIVE flag on session sockets. 2016-10-04 06:42:09 +00:00
whitequark
999290fe52 runtime: link ksupport with libm, not runtime.
We need libm for the %g format specifier.
2016-10-01 16:10:09 +00:00
whitequark
d3dcb4b8a2 runtime: remove useless copy of flush_cpu_dcache().
ksupport used to not link to libbase, I think.
2016-10-01 16:10:09 +00:00
whitequark
b3b1ea71c5 Rust: implement basic communication with kernel CPU. 2016-10-01 04:20:27 +00:00
whitequark
1cbb187136 runtime: eliminate va_list from kernel interface. 2016-09-30 03:07:27 +00:00
whitequark
7cfa667d98 runtime: eliminate struct dyld_info from kernel interface. 2016-09-30 03:03:35 +00:00
whitequark
55b2535477 Rust: print git commit during startup. 2016-09-29 22:04:52 +00:00
whitequark
9c18f1b555 Rust: port clock, rtio_crg routines. 2016-09-29 20:42:40 +00:00
whitequark
83940ae4a6 Rust: add support for artiq_coreconfig. 2016-09-29 18:54:08 +00:00
whitequark
1e392cca64 runtime: remove "test mode" functionality. 2016-09-29 14:48:26 +00:00
whitequark
b100770e05 runtime: expose strlen (implicitly required for comparing strings).
Fixes #557.
2016-09-10 00:13:44 +00:00
whitequark
bf863053b3 Rust: implement bindings for lwip TCP/UDP stacks. 2016-09-06 16:49:49 +00:00