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